Created
April 26, 2016 16:14
-
-
Save NoxMortem/712df7eecfa6c0ad05e704efa8d23387 to your computer and use it in GitHub Desktop.
[SR 5] Custom Script Supported: Wandlers Charactersheet v0.1
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* Reset */ | |
{} | |
div.sheet-wrapper{ | |
margin-left: -25px !important; | |
margin-top: -25px !important; | |
width: 108% !important; | |
} | |
.sheet-wrapper input { | |
font-size: 0.9em; | |
} | |
/* Rows and Columns */ | |
.sheet-row{ | |
margin-bottom: 3px; | |
} | |
.sheet-row,.sheet-row div{ | |
display:inline-block; | |
} | |
/* Labels and Input */ | |
.sheet-labels{ | |
font-weight: bold; | |
} | |
.sheet-buttoninput{ | |
height: 20px !important; | |
text-align: center; | |
width: 26px; | |
margin: 0; | |
margin-left: -5px; | |
border-top-left-radius: 0; | |
border-bottom-left-radius: 0; | |
border-top-right-radius: 0; | |
border-bottom-right-radius: 0; | |
padding: 0; | |
} | |
button.sheet-buttoninput{ | |
height:35px; | |
margin:0px; | |
padding:0px; | |
} | |
input[type=checkbox].sheet-buttoninput{ | |
height:17px !important; | |
width:17px; | |
} | |
.sheet-buttoninput-left{ | |
border-top-left-radius: 3px; | |
border-bottom-left-radius: 3px; | |
border-top-right-radius: 0; | |
border-bottom-right-radius: 0; | |
} | |
.sheet-buttoninput-center{ | |
border-top-left-radius: 0; | |
border-bottom-left-radius: 0; | |
border-top-right-radius: 0; | |
border-bottom-right-radius: 0; | |
margin-left: -5px !important; | |
} | |
.sheet-buttoninput-right{ | |
border-top-left-radius: 0; | |
border-bottom-left-radius: 0; | |
border-top-right-radius: 3px; | |
border-bottom-right-radius: 3px; | |
margin-left: -5px !important; | |
} | |
.sheet-buttoninput-left{ | |
border-top-left-radius: 3px; | |
border-bottom-left-radius: 3px; | |
border-top-right-radius: 0; | |
border-bottom-right-radius: 0; | |
} | |
.sheet-buttoninput-both{ | |
border-radius: 3px; | |
margin-right:5px; | |
} | |
button.sheet-buttoninput-center + input.sheet-buttoninput { | |
margin-left: -8px !important; | |
} | |
.sheet-buttoninput-right + .sheet-buttoninput-left{ | |
margin-left:0px; | |
} | |
.sheet-trigger-select{ | |
margin-left:-8px !important; | |
} | |
/* TABS */ | |
.sheet-tab{ | |
float: left; | |
} | |
input.sheet-tab{ | |
width: 80px; | |
height: 20px; | |
cursor: pointer; | |
z-index: 1; | |
opacity: 0; | |
margin-bottom: 10px; | |
float: left; | |
} | |
input.sheet-tab + span::before{ | |
content: attr(title); | |
text-align: center; | |
display: inline-block; | |
width: 80px; | |
height: 20px; | |
font-size: 18px; | |
top: -3px; | |
font-size: 0.9em; | |
font-weight: bold; | |
color: black; | |
border-top:2px solid black; | |
border-bottom:2px solid black; | |
} | |
input.sheet-tab:checked + span::before{ | |
color:darkred; | |
border-top:2px solid darkred; | |
border-bottom:2px solid darkred; | |
font-size: 1.1em; | |
} | |
.sheet-tab-sub{ | |
margin-top:-8px; | |
font-style:italic; | |
display:none; | |
} | |
.sheet-tab-sub-menu{ | |
font-size:0.8em; | |
} | |
div.sheet-tab{ | |
display:none; | |
} | |
label.sheet-tab{ | |
cursor:default; | |
} | |
input.sheet-tab + span{ | |
float: left; | |
margin-left: -80px; | |
z-index: 10; | |
} | |
input.sheet-tab-basis:checked ~ div.sheet-tab-basis, | |
input.sheet-tab-combat:checked ~ div.sheet-tab-combat, | |
input.sheet-tab-magic:checked ~ div.sheet-tab-magic, | |
input.sheet-tab-matrix:checked ~ div.sheet-tab-matrix, | |
input.sheet-tab-skills:checked ~ div.sheet-tab-skills, | |
input.sheet-tab-technomancer:checked ~ div.sheet-tab-technomancer, | |
input.sheet-tab-social:checked ~ div.sheet-tab-social, | |
input.sheet-tab-equipment:checked ~ div.sheet-tab-equipment{ | |
display:block; | |
} | |
input.sheet-tab-knowledgekills:checked ~ div.sheet-tab-skills-knowledgekills, | |
input.sheet-tab-actionskills:checked ~ div.sheet-tab-skills-actionskills{ | |
display:block; | |
} | |
/* Sub Menus */ | |
input.sheet-tab-basis:checked ~ .sheet-tab-sub-basis, | |
input.sheet-tab-skills:checked ~ .sheet-tab-sub-skills, | |
input.sheet-tab-magic:checked ~ .sheet-tab-sub-magic, | |
input.sheet-tab-matrix:checked ~ .sheet-tab-sub-matrix, | |
input.sheet-tab-technomancer:checked ~ .sheet-tab-sub-technomancer, | |
input.sheet-tab-social:checked ~ .sheet-tab-sub-social, | |
input.sheet-tab-equipment:checked ~ .sheet-tab-sub-equipment{ | |
display:block; | |
} | |
/* submenu:basis*/ | |
input.sheet-tab-character:checked ~ div .sheet-tab-basis-character, | |
input.sheet-tab-attributes:checked ~ div .sheet-tab-basis-attributes, | |
input.sheet-tab-qualities:checked ~ div .sheet-tab-basis-qualities, | |
input.sheet-tab-description:checked ~ div .sheet-tab-basis-description, | |
input.sheet-tab-advancement:checked ~ div .sheet-tab-basis-advancement, | |
input.sheet-tab-settings:checked ~ div .sheet-tab-basis-settings{ | |
display:block; | |
} | |
/* submenu:skills*/ | |
input.sheet-tab-actionskills:checked ~ div .sheet-tab-skills-actionskills, | |
input.sheet-tab-knowledgeskills:checked ~ div .sheet-tab-skills-knowledgeskills{ | |
display:block; | |
} | |
/* submenu:magic*/ | |
input.sheet-tab-spellcasting:checked ~ .sheet-tab-magic-spellcasting, | |
input.sheet-tab-alchemy:checked ~ .sheet-tab-magic-alchemy, | |
input.sheet-tab-summoning:checked ~ .sheet-tab-magic-summoning, | |
input.sheet-tab-rituals:checked ~ .sheet-tab-magic-rituals, | |
input.sheet-tab-adeptpowers:checked ~ .sheet-tab-magic-adeptpowers, | |
input.sheet-tab-tradition:checked ~ .sheet-tab-magic-tradition{ | |
display:block; | |
} | |
/* submenu:matrix*/ | |
input.sheet-tab-matrixequipment:checked ~ div .sheet-tab-matrix-matrixequipment, | |
input.sheet-tab-programs:checked ~ div .sheet-tab-matrix-programs, | |
input.sheet-tab-matrixactions:checked ~ div .sheet-tab-matrix-matrixactions{ | |
display:block; | |
} | |
/* submenu:technomancer*/ | |
input.sheet-tab-livingpersona:checked ~ div .sheet-tab-technomancer-livingpersona, | |
input.sheet-tab-complexforms:checked ~ div .sheet-tab-technomancer-complexforms, | |
input.sheet-tab-sprites:checked ~ div .sheet-tab-technomancer-sprites{ | |
display:block; | |
} | |
/* submenu:social*/ | |
input.sheet-tab-sinlicense:checked ~ div .sheet-tab-social-sinlicense, | |
input.sheet-tab-lifestyles:checked ~ div .sheet-tab-social-lifestyles, | |
input.sheet-tab-connections:checked ~ div .sheet-tab-social-connections{ | |
display:block; | |
} | |
/* submenu:equipment*/ | |
input.sheet-tab-equipment-equipment:checked ~ div .sheet-tab-equipment-equipment, | |
input.sheet-tab-augmentations:checked ~ div .sheet-tab-equipment-augmentations, | |
input.sheet-tab-ammunition:checked ~ div .sheet-tab-equipment-ammunition, | |
input.sheet-tab-vehicles:checked ~ div .sheet-tab-equipment-vehicles, | |
input.sheet-tab-drones:checked ~ div .sheet-tab-equipment-drones, | |
input.sheet-tab-orders:checked ~ div .sheet-tab-equipment-orders{ | |
display:block; | |
} | |
/* SETTINGS */ | |
div.sheet-is-mage, | |
div.sheet-show-matrix, | |
div.sheet-is-technomancer{ | |
display:none; | |
} | |
.sheet-tab-matrix, .sheet-tab-matrix + span{display:none;} | |
input.sheet-settings-show-matrix:checked ~ input.sheet-tab-matrix, | |
input.sheet-settings-show-matrix:checked ~ input.sheet-tab-matrix + span, | |
input.sheet-settings-show-matrix:checked ~ div .sheet-show-matrix{ | |
display:block; | |
} | |
.sheet-tab-technomancer, .sheet-tab-technomancer + span{display:none;} | |
input.sheet-settings-is-technomancer:checked ~ input.sheet-tab-technomancer, | |
input.sheet-settings-is-technomancer:checked ~ input.sheet-tab-technomancer + span, | |
input.sheet-settings-is-technomancer:checked ~ div .sheet-is-technomancer, | |
input.sheet-settings-is-technomancer:checked ~ div .sheet-show-matrix{ | |
display:block; | |
} | |
.sheet-tab-magic, .sheet-tab-magic + span, | |
.sheet-tab-sub-magic, .sheet-tab-sub-magic + span{ | |
display:none; | |
} | |
input.sheet-settings-is-mage:checked ~ input.sheet-tab-magic, | |
input.sheet-settings-is-mage:checked ~ input.sheet-tab-magic + span, | |
input.sheet-settings-is-mage:checked ~ input.sheet-tab-sub-magic, | |
input.sheet-settings-is-mage:checked ~ input.sheet-tab-sub-magic + span, | |
input.sheet-settings-is-mage:checked ~ div .sheet-is-mage{ | |
display:block; | |
} | |
.sheet-tab-tradition,.sheet-tab-tradition + span{ | |
display:block; | |
} | |
.sheet-tab-spellcasting, .sheet-tab-spellcasting + span{display:none;} | |
input.sheet-settings-has-spellcasting:checked ~ div.sheet-tab-sub-magic input.sheet-tab-spellcasting, | |
input.sheet-settings-has-spellcasting:checked ~ div.sheet-tab-sub-magic input.sheet-tab-spellcasting + span{ | |
display:block; | |
} | |
.sheet-tab-alchemy, .sheet-tab-alchemy + span{display:none;} | |
input.sheet-settings-has-alchemy:checked ~ div.sheet-tab-sub-magic input.sheet-tab-alchemy, | |
input.sheet-settings-has-alchemy:checked ~ div.sheet-tab-sub-magic input.sheet-tab-alchemy + span{ | |
display:block; | |
} | |
.sheet-tab-rituals, .sheet-tab-rituals + span{display:none;} | |
input.sheet-settings-has-rituals:checked ~ div.sheet-tab-sub-magic input.sheet-tab-rituals, | |
input.sheet-settings-has-rituals:checked ~ div.sheet-tab-sub-magic input.sheet-tab-rituals + span{ | |
display:block; | |
} | |
.sheet-tab-summoning, .sheet-tab-summoning + span{display:none;} | |
input.sheet-settings-has-summoning:checked ~ div.sheet-tab-sub-magic input.sheet-tab-summoning, | |
input.sheet-settings-has-summoning:checked ~ div.sheet-tab-sub-magic input.sheet-tab-summoning + span{ | |
display:block; | |
} | |
.sheet-tab-adeptpowers, .sheet-tab-adeptpowers + span{display:none;} | |
input.sheet-settings-has-adeptpowers:checked ~ div.sheet-tab-sub-magic input.sheet-tab-adeptpowers, | |
input.sheet-settings-has-adeptpowers:checked ~ div.sheet-tab-sub-magic input.sheet-tab-adeptpowers + span{ | |
display:block; | |
} | |
/* Show Details */ | |
.charsheet textarea{ | |
resize:vertical; | |
} | |
div.sheet-details{ | |
display:none; | |
margin-top: 5px; | |
margin-left: 9px; | |
} | |
input.sheet-show-details{ | |
opacity:0; | |
} | |
input.sheet-show-details + span:after{ | |
content: "►"; | |
margin-left: -20px; | |
} | |
input.sheet-show-details:checked + span:after{ | |
content: "▼"; | |
margin-left: -20px; | |
} | |
input.sheet-show-details:checked ~ .sheet-details{ | |
display:block; | |
} | |
/* CHARACTER SHEET TYPE */ | |
input.sheet-type{ | |
width: 60px; | |
height: 20px; | |
cursor: pointer; | |
z-index: 1; | |
opacity: 0; | |
margin-bottom: 10px; | |
position:absolute; | |
top:5px; | |
right:5px; | |
} | |
input.sheet-type + span::before{ | |
content: attr(title); | |
text-align: center; | |
display: inline-block; | |
width: 60px; | |
height: 20px; | |
font-size: 18px; | |
font-size: 0.9em; | |
font-weight: bold; | |
border: 2px solid black; | |
position: absolute; | |
top: 5px; | |
right: 5px; | |
background: darkred; | |
color: white; | |
} | |
input.sheet-type:checked + span::before{ | |
border-top:2px solid darkred; | |
border-bottom:2px solid darkred; | |
font-size: 1.1em; | |
} | |
input.sheet-type, | |
input.sheet-type + span, | |
input.sheet-type + span::before { | |
display:none; | |
} | |
input.sheet-type-sc, | |
span.sheet-type-sc::before { | |
display:block; | |
} | |
input.sheet-type-sc:checked ~ input.sheet-type-nsc, | |
input.sheet-type-sc:checked ~ span.sheet-type-sc, | |
input.sheet-type-sc:checked ~ span.sheet-type-sc::before { | |
display: block; | |
} | |
input.sheet-type-nsc:checked ~ input.sheet-type-other, | |
input.sheet-type-nsc:checked ~ span.sheet-type-nsc, | |
input.sheet-type-nsc:checked ~ span.sheet-type-nsc::before { | |
display: block; | |
} | |
input.sheet-type-other:checked ~ input.sheet-type-sc, | |
input.sheet-type-other:checked ~ span.sheet-type-other, | |
input.sheet-type-other:checked ~ span.sheet-type-other::before { | |
display: block; | |
} | |
/* Verletzung ON/OFF */ | |
input.sheet-injury{ | |
width: 75px; | |
height: 20px; | |
cursor: pointer; | |
z-index: 1; | |
opacity: 0; | |
margin-bottom: 10px; | |
position:absolute; | |
top:5px; | |
right:70px; | |
} | |
input.sheet-injury + span.sheet-injury::before{ | |
content: attr(title); | |
text-align: center; | |
display: inline-block; | |
width: 75px; | |
height: 20px; | |
font-size: 18px; | |
font-size: 0.9em; | |
font-weight: bold; | |
border: 2px solid grey; | |
position: absolute; | |
top: 5px; | |
right: 70px; | |
background: darkgrey; | |
color: grey; | |
} | |
input.sheet-injury:checked + span.sheet-injury::before{ | |
border-color:black; | |
background: darkred; | |
color: white; | |
} | |
/* Edge ON/OFF */ | |
input.sheet-use-edge{ | |
width: 75px; | |
height: 20px; | |
cursor: pointer; | |
z-index: 1; | |
opacity: 0; | |
margin-bottom: 10px; | |
position:absolute; | |
top:5px; | |
right:150px; | |
} | |
input.sheet-use-edge + span.sheet-use-edge::before{ | |
content: attr(title); | |
text-align: center; | |
display: inline-block; | |
width: 75px; | |
height: 20px; | |
font-size: 18px; | |
font-size: 0.9em; | |
font-weight: bold; | |
border: 2px solid grey; | |
position: absolute; | |
top: 5px; | |
right: 150px; | |
background: darkgrey; | |
color: grey; | |
} | |
input.sheet-use-edge:checked + span.sheet-use-edge::before{ | |
border-color:black; | |
background: darkred; | |
color: white; | |
} | |
/* Hide Rolls ON/OFF */ | |
input.sheet-hide-rolls{ | |
width: 30px; | |
height: 20px; | |
cursor: pointer; | |
z-index: 1; | |
opacity: 0; | |
margin-bottom: 10px; | |
position:absolute; | |
top:5px; | |
right:230px; | |
} | |
input.sheet-hide-rolls + span.sheet-hide-rolls::before{ | |
content: attr(title); | |
text-align: center; | |
display: inline-block; | |
width: 30px; | |
height: 20px; | |
font-size: 18px; | |
font-size: 0.9em; | |
font-weight: bold; | |
border: 2px solid grey; | |
position: absolute; | |
top: 5px; | |
right: 230px; | |
background: darkgrey; | |
color: grey; | |
} | |
input.sheet-hide-rolls:checked + span.sheet-hide-rolls::before{ | |
border-color:black; | |
background: darkred; | |
color: white; | |
} | |
/* INITIATIVE ACTIVE */ | |
input.sheet-ini_active{ | |
width: 40px; | |
cursor: pointer; | |
z-index: 1; | |
opacity: 0; | |
} | |
span.sheet-ini_active{ | |
width: 40px; | |
float: left; | |
margin-top: -18px; | |
} | |
input.sheet-ini_active + span::before{ | |
content: attr(title); | |
text-align: center; | |
display: inline-block; | |
width: 40px; | |
} | |
input.sheet-ini_active:checked + span::before{ | |
font-weight:bold; | |
} | |
/* FLOAT */ | |
.sheet-float{ | |
float:left; | |
} | |
.sheet-clear{ | |
clear:both; | |
} | |
/* CARD */ | |
.sheet-card{ | |
-webkit-box-shadow: 4px 4px 6px 0px rgba(56, 56, 56, 0.8); | |
-moz-box-shadow: 4px 4px 6px 0px rgba(56, 56, 56, 0.8); | |
box-shadow: 4px 4px 6px 0px rgba(56, 56, 56, 0.8); | |
margin-right: 15px; | |
margin-bottom: 10px; | |
} | |
/* Rolltemplates */ | |
/* Template: gm-menu*/ | |
.sheet-rolltemplate-gm-menu{ | |
text-align: center; | |
border: 1px solid black; | |
padding-bottom: 5px; | |
} | |
.sheet-rolltemplate-gm-menu .sheet-menu-title{ | |
text-align: center; | |
color: white; | |
font-weight: bold; | |
background: black; | |
} | |
.sheet-rolltemplate-gm-menu a[href^="!"] { | |
padding: 5px; | |
font-size: 0.9em; | |
background-color: hsla(354,90%,30%,1); | |
font-weight: bold; | |
border: 1px solid black; | |
margin: 1px; | |
color: whitesmoke; | |
} | |
.sheet-rolltemplate-gm-menu .sheet-menu-row:nth-child(even) { | |
background: rgb(250, 244, 233); | |
} | |
.sheet-rolltemplate-gm-menu.sheet-menu-row:nth-child(odd) { | |
background: rgb(250, 244, 233); | |
} | |
/* Template: ROLL*/ | |
.sheet-rolltemplate-roll{ | |
width: 100%; | |
} | |
.sheet-rolltemplate-roll .sheet-box { | |
border: 1px solid black; | |
border-collapse: inherit; | |
margin: 0 auto; | |
padding: 0; | |
border-radius: 5px; | |
} | |
.sheet-rolltemplate-roll .sheet-text{ | |
display: table-cell; | |
background: black; | |
padding: 5px; | |
color: white; | |
font-style: normal; | |
font-weight: bold; | |
text-align: center; | |
} | |
.sheet-rolltemplate-roll .sheet-erfolge{ | |
background: rgb(250, 244, 233); | |
border-radius: 5px; | |
padding: 5px; | |
color:black; | |
text-align: center; | |
font-style: italic; | |
min-width: 35px; | |
} | |
.sheet-rolltemplate-roll .sheet-note{ | |
background: rgb(250, 244, 233); | |
border-bottom-left-radius: 5px; | |
border-bottom-right-radius: 5px; | |
font-style: italic; | |
font-size: 12px; | |
color: black; | |
font-weight: normal; | |
line-height: 12px; | |
padding-top: 2px; | |
padding-bottom: 2px; | |
} | |
.sheet-rolltemplate-roll .inlinerollresult, | |
.sheet-rolltemplate-roll .userscript-inlinerollresult{ | |
background:none; | |
border:none; | |
font-weight: bold; | |
font-size: 1.1em; | |
} | |
.sheet-rolltemplate-roll .inlinerollresult.importantroll, | |
.sheet-rolltemplate-roll .inlinerollresult.fullcrit, | |
.sheet-rolltemplate-roll .inlinerollresult.fullfail, | |
.sheet-rolltemplate-roll .userscript-inlinerollresult.userscript-importantroll, | |
.sheet-rolltemplate-roll .userscript-inlinerollresult.userscript-fullcrit, | |
.sheet-rolltemplate-roll .userscript-inlinerollresult.userscript-fullfail{ | |
border:none; | |
} | |
.sheet-rolltemplate-roll .inlinerollresult.importantroll, | |
.sheet-rolltemplate-roll .userscript-inlinerollresult.userscript-importantroll{ | |
color: #4A57ED; | |
} | |
.sheet-rolltemplate-roll .inlinerollresult.fullcrit, | |
.sheet-rolltemplate-roll .userscript-inlinerollresult.userscript-fullcrit{ | |
color: #3FB315; | |
} | |
.sheet-rolltemplate-roll .inlinerollresult.fullfail, | |
.sheet-rolltemplate-roll .userscript-inlinerollresult.userscript-fullfail{ | |
color: #B31515; | |
} | |
.sheet-rolltemplate-roll table{ | |
margin:0 auto; | |
} | |
.sheet-rolltemplate-roll .sheet-pool{ | |
/*color: #333;*/ | |
font-size: 10px; | |
line-height: 10px; | |
font-style: normal; | |
} | |
.sheet-rolltemplate-roll .sheet-pool .inlinerollresult, | |
.sheet-rolltemplate-roll .sheet-pool .userscript-inlinerollresult{ | |
font-size: 10px; | |
margin: 0; | |
padding: 0; | |
} | |
.sheet-rolltemplate-roll .sheet-erfolge{ | |
position:relative; | |
} | |
.sheet-rolltemplate-roll .sheet-injurymod{ | |
font-size: 10px; | |
position: absolute; | |
top: -3px; | |
color: darkred; | |
font-style: normal; | |
} | |
.sheet-rolltemplate-roll .sheet-limit{ | |
font-size: 10px; | |
position: absolute; | |
top: -3px; | |
color: darkred; | |
font-style: normal; | |
right: 1px; | |
} | |
.sheet-rolltemplate-roll .sheet-border-top{ | |
border-top: 1px solid black; | |
} | |
/* Color for rolltemplate-roll*/ | |
/* PINK */ | |
.sheet-rolltemplate-roll .sheet-box.sheet-pink{ | |
border: 1px solid rgb(239, 138, 242); | |
} | |
.sheet-rolltemplate-roll .sheet-box.sheet-pink .sheet-text { | |
background: rgb(239, 138, 242); | |
} | |
/* BROWN */ | |
.sheet-rolltemplate-roll .sheet-box.sheet-brown{ | |
border: 1px solid brown; | |
} | |
.sheet-rolltemplate-roll .sheet-box.sheet-brown .sheet-text { | |
background: brown; | |
} | |
/* DARKGREEN */ | |
.sheet-rolltemplate-roll .sheet-box.sheet-darkgreen{ | |
border: 1px solid #0A420A; | |
} | |
.sheet-rolltemplate-roll .sheet-box.sheet-darkgreen .sheet-text { | |
background: #0A420A; | |
} | |
/* PURPLE */ | |
.sheet-rolltemplate-roll .sheet-box.sheet-purple{ | |
border: 1px solid rgb(142, 32, 99); | |
} | |
.sheet-rolltemplate-roll .sheet-box.sheet-purple .sheet-text { | |
background: rgb(142, 32, 99); | |
} | |
/* TEAL */ | |
.sheet-rolltemplate-roll .sheet-box.sheet-teal{ | |
border: 1px solid #1499B9; | |
} | |
.sheet-rolltemplate-roll .sheet-box.sheet-teal .sheet-text { | |
background: #1499B9; | |
} | |
/* DARKRED */ | |
.sheet-rolltemplate-roll .sheet-box.sheet-darkred{ | |
border: 1px solid darkred; | |
} | |
.sheet-rolltemplate-roll .sheet-box.sheet-darkred .sheet-text { | |
background: darkred; | |
} | |
/* DARKBLUE */ | |
.sheet-rolltemplate-roll .sheet-box.sheet-darkblue{ | |
border: 1px solid darkblue; | |
} | |
.sheet-rolltemplate-roll .sheet-box.sheet-darkblue .sheet-text { | |
background: darkblue; | |
} | |
/* PURPLEBLUE */ | |
.sheet-rolltemplate-roll .sheet-box.sheet-purpleblue{ | |
border: 1px solid rgb(66, 84, 211); | |
} | |
.sheet-rolltemplate-roll .sheet-box.sheet-purpleblue .sheet-text { | |
background: rgb(66, 84, 211); | |
} | |
/* BLUE */ | |
.sheet-rolltemplate-roll .sheet-box.sheet-blue{ | |
border: 1px solid rgb(1, 79, 168); | |
} | |
.sheet-rolltemplate-roll .sheet-box.sheet-blue .sheet-text { | |
background: rgb(1, 79, 168); | |
} | |
/* LIGHTBLUE */ | |
.sheet-rolltemplate-roll .sheet-box.sheet-lightblue{ | |
border: 1px solid rgb(61, 137, 224); | |
} | |
.sheet-rolltemplate-roll .sheet-box.sheet-lightblue .sheet-text { | |
background: rgb(61, 137, 224); | |
} | |
/* GREEN */ | |
.sheet-rolltemplate-roll .sheet-box.sheet-green{ | |
border: 1px solid rgb(6, 121, 34); | |
} | |
.sheet-rolltemplate-roll .sheet-box.sheet-green .sheet-text { | |
background: rgb(6, 121, 34); | |
} | |
/* ORANGE */ | |
.sheet-rolltemplate-roll .sheet-box.sheet-orange{ | |
border: 1px solid rgb(165, 76, 23); | |
} | |
.sheet-rolltemplate-roll .sheet-box.sheet-orange .sheet-text { | |
background: rgb(165, 76, 23); | |
} | |
/* LIGHTSEAGREEN */ | |
.sheet-rolltemplate-roll .sheet-box.sheet-lightseagreen{ | |
border: 1px solid lightseagreen; | |
} | |
.sheet-rolltemplate-roll .sheet-box.sheet-lightseagreen .sheet-text { | |
background: lightseagreen; | |
} | |
/* BLUEVIOLET */ | |
.sheet-rolltemplate-roll .sheet-box.sheet-blueviolet{ | |
border: 1px solid blueviolet; | |
} | |
.sheet-rolltemplate-roll .sheet-box.sheet-blueviolet .sheet-text { | |
background: blueviolet; | |
} | |
/* Cadetblue */ | |
.sheet-rolltemplate-roll .sheet-box.sheet-cadetblue{ | |
border: 1px solid cadetblue; | |
} | |
.sheet-rolltemplate-roll .sheet-box.sheet-cadetblue .sheet-text { | |
background: cadetblue; | |
} | |
/* Cadetblue */ | |
.sheet-rolltemplate-roll .sheet-box.sheet-cornflowerblue{ | |
border: 1px solid cornflowerblue; | |
} | |
.sheet-rolltemplate-roll .sheet-box.sheet-cornflowerblue .sheet-text { | |
background: cornflowerblue; | |
} | |
/* crimson */ | |
.sheet-rolltemplate-roll .sheet-box.sheet-crimson{ | |
border: 1px solid crimson; | |
} | |
.sheet-rolltemplate-roll .sheet-box.sheet-crimson .sheet-text { | |
background: crimson; | |
} | |
/* darkcyan */ | |
.sheet-rolltemplate-roll .sheet-box.sheet-darkcyan{ | |
border: 1px solid darkcyan; | |
} | |
.sheet-rolltemplate-roll .sheet-box.sheet-darkcyan .sheet-text { | |
background: darkcyan; | |
} | |
/* darkmagenta */ | |
.sheet-rolltemplate-roll .sheet-box.sheet-darkmagenta{ | |
border: 1px solid darkmagenta; | |
} | |
.sheet-rolltemplate-roll .sheet-box.sheet-darkmagenta .sheet-text { | |
background: darkmagenta; | |
} | |
/* darkolivegreen */ | |
.sheet-rolltemplate-roll .sheet-box.sheet-darkolivegreen{ | |
border: 1px solid darkolivegreen; | |
} | |
.sheet-rolltemplate-roll .sheet-box.sheet-darkolivegreen .sheet-text { | |
background: darkolivegreen; | |
} | |
/* darkorange */ | |
.sheet-rolltemplate-roll .sheet-box.sheet-darkorange{ | |
border: 1px solid darkorange; | |
} | |
.sheet-rolltemplate-roll .sheet-box.sheet-darkorange .sheet-text { | |
background: darkorange; | |
} | |
/* darkslateblue */ | |
.sheet-rolltemplate-roll .sheet-box.sheet-darkslateblue{ | |
border: 1px solid darkslateblue; | |
} | |
.sheet-rolltemplate-roll .sheet-box.sheet-darkslateblue .sheet-text { | |
background: darkslateblue; | |
} | |
/* darkslategray */ | |
.sheet-rolltemplate-roll .sheet-box.sheet-darkslategray{ | |
border: 1px solid darkslategray; | |
} | |
.sheet-rolltemplate-roll .sheet-box.sheet-darkslategray .sheet-text { | |
background: darkslategray; | |
} | |
/* deeppink */ | |
.sheet-rolltemplate-roll .sheet-box.sheet-deeppink{ | |
border: 1px solid deeppink; | |
} | |
.sheet-rolltemplate-roll .sheet-box.sheet-deeppink .sheet-text { | |
background: deeppink; | |
} | |
/* deepskyblue */ | |
.sheet-rolltemplate-roll .sheet-box.sheet-deepskyblue{ | |
border: 1px solid deepskyblue; | |
} | |
.sheet-rolltemplate-roll .sheet-box.sheet-deepskyblue .sheet-text { | |
background: deepskyblue; | |
} | |
/* firebrick */ | |
.sheet-rolltemplate-roll .sheet-box.sheet-firebrick{ | |
border: 1px solid firebrick; | |
} | |
.sheet-rolltemplate-roll .sheet-box.sheet-firebrick .sheet-text { | |
background: firebrick; | |
} | |
/* forestgreen */ | |
.sheet-rolltemplate-roll .sheet-box.sheet-forestgreen{ | |
border: 1px solid forestgreen; | |
} | |
.sheet-rolltemplate-roll .sheet-box.sheet-forestgreen .sheet-text { | |
background: forestgreen; | |
} | |
/* hotpink */ | |
.sheet-rolltemplate-roll .sheet-box.sheet-hotpink{ | |
border: 1px solid hotpink; | |
} | |
.sheet-rolltemplate-roll .sheet-box.sheet-hotpink .sheet-text { | |
background: hotpink; | |
} | |
/* indianred */ | |
.sheet-rolltemplate-roll .sheet-box.sheet-indianred{ | |
border: 1px solid indianred; | |
} | |
.sheet-rolltemplate-roll .sheet-box.sheet-indianred .sheet-text { | |
background: indianred; | |
} | |
/* mediumaquamarine */ | |
.sheet-rolltemplate-roll .sheet-box.sheet-mediumaquamarine{ | |
border: 1px solid mediumaquamarine; | |
} | |
.sheet-rolltemplate-roll .sheet-box.sheet-mediumaquamarine .sheet-text { | |
background: mediumaquamarine; | |
} | |
/* mediumorchid */ | |
.sheet-rolltemplate-roll .sheet-box.sheet-mediumorchid{ | |
border: 1px solid mediumorchid; | |
} | |
.sheet-rolltemplate-roll .sheet-box.sheet-mediumorchid .sheet-text { | |
background: mediumorchid; | |
} | |
/* darkgoldenrod */ | |
.sheet-rolltemplate-roll .sheet-box.sheet-darkgoldenrod{ | |
border: 1px solid darkgoldenrod; | |
} | |
.sheet-rolltemplate-roll .sheet-box.sheet-darkgoldenrod .sheet-text { | |
background: darkgoldenrod; | |
} | |
/* mediumorchid */ | |
.sheet-rolltemplate-roll .sheet-box.sheet-mediumorchid{ | |
border: 1px solid mediumorchid; | |
} | |
.sheet-rolltemplate-roll .sheet-box.sheet-mediumorchid .sheet-text { | |
background: mediumorchid; | |
} | |
/* mediumseagreen */ | |
.sheet-rolltemplate-roll .sheet-box.sheet-mediumseagreen{ | |
border: 1px solid mediumseagreen; | |
} | |
.sheet-rolltemplate-roll .sheet-box.sheet-mediumseagreen .sheet-text { | |
background: mediumseagreen; | |
} | |
/* mediumvioletred */ | |
.sheet-rolltemplate-roll .sheet-box.sheet-mediumvioletred{ | |
border: 1px solid mediumvioletred; | |
} | |
.sheet-rolltemplate-roll .sheet-box.sheet-mediumvioletred .sheet-text { | |
background: mediumvioletred; | |
} | |
/* teal */ | |
.sheet-rolltemplate-roll .sheet-box.sheet-teal{ | |
border: 1px solid teal; | |
} | |
.sheet-rolltemplate-roll .sheet-box.sheet-teal .sheet-text { | |
background: teal; | |
} | |
/* Template: Alchemie */ | |
.sheet-rolltemplate-alchemie{ | |
text-align:center; | |
border: 1px solid rgb(66, 84, 211); | |
font-weight: normal; | |
color: black; | |
background: white; | |
font-style: normal; | |
border-radius:3px; | |
} | |
.sheet-rolltemplate-alchemie table { | |
font-size: 0.8em; | |
width: 100%; | |
} | |
.sheet-rolltemplate-alchemie table td{ | |
border-radius:3px; | |
} | |
.sheet-rolltemplate-alchemie .sheet-text{ | |
background: rgb(66, 84, 211); | |
color: white; | |
font-weight: bold; | |
border-top-left-radius: 3px; | |
border-top-right-radius: 3px; | |
} | |
.sheet-rolltemplate-alchemie div:nth-child(even), | |
.sheet-rolltemplate-alchemie table tbody tr:nth-child(even){ | |
background:rgb(250, 244, 233); | |
} | |
.sheet-rolltemplate-alchemie .inlinerollresult, | |
.sheet-rolltemplate-alchemie .userscript-inlinerollresult{ | |
background:none; | |
border:none; | |
font-weight: bold; | |
font-size:1.1em; | |
} | |
.sheet-rolltemplate-alchemie .inlinerollresult.importantroll, | |
.sheet-rolltemplate-alchemie .inlinerollresult.fullcrit, | |
.sheet-rolltemplate-alchemie .inlinerollresult.fullfail{ | |
border:none; | |
} | |
.sheet-rolltemplate-alchemie .inlinerollresult.importantroll, | |
.sheet-rolltemplate-alchemie .userscript-inlinerollresult.userscript-importantroll{ | |
color: #4A57ED; | |
} | |
.sheet-rolltemplate-alchemie .inlinerollresult.fullcrit, | |
.sheet-rolltemplate-alchemie .userscript-inlinerollresult.userscript-fullcrit{ | |
color: #3FB315; | |
} | |
.sheet-rolltemplate-alchemie .inlinerollresult.fullfail, | |
.sheet-rolltemplate-alchemie .userscript-inlinerollresult.userscript-fullfail{ | |
color: #B31515; | |
} | |
.sheet-rolltemplate-alchemie td{ | |
padding-left: 5px; | |
padding-right: 5px; | |
} | |
.sheet-rolltemplate-alchemie td.sheet-italic{ | |
font-style:italic; | |
} | |
.sheet-rolltemplate-alchemie td.sheet-entzugsschaden{ | |
color:black; | |
} | |
.sheet-rolltemplate-alchemie table{ | |
margin:0 auto; | |
} | |
/* Zauber */ | |
.sheet-rolltemplate-zauber{ | |
text-align:center; | |
border: 1px solid darkred; | |
font-weight: normal; | |
color: black; | |
background: white; | |
font-style: normal; | |
border-radius:3px; | |
} | |
.sheet-rolltemplate-zauber table { | |
font-size: 0.8em; | |
width: 100%; | |
} | |
.sheet-rolltemplate-zauber table td{ | |
border-radius:3px; | |
} | |
.sheet-rolltemplate-zauber .sheet-text { | |
background: darkred; | |
color: white; | |
font-weight: bold; | |
border-top-left-radius: 3px; | |
border-top-right-radius: 3px; | |
} | |
.sheet-rolltemplate-zauber .userscript-inlinerollresult{ | |
font-weight:bold; | |
} | |
.sheet-rolltemplate-zauber div:nth-child(even), | |
.sheet-rolltemplate-zauber table tbody tr:nth-child(even){ | |
background:rgb(250, 244, 233); | |
} | |
.sheet-rolltemplate-zauber .inlinerollresult{ | |
background:none; | |
border:none; | |
} | |
.sheet-rolltemplate-zauber .inlinerollresult.importantroll, | |
.sheet-rolltemplate-zauber .inlinerollresult.fullcrit, | |
.sheet-rolltemplate-zauber .inlinerollresult.fullfail{ | |
border:none; | |
} | |
.sheet-rolltemplate-zauber .inlinerollresult.importantroll{ | |
color: #4A57ED; | |
} | |
.sheet-rolltemplate-zauber .inlinerollresult.fullcrit{ | |
color: #3FB315; | |
} | |
.sheet-rolltemplate-zauber .inlinerollresult.fullfail{ | |
color: #B31515; | |
} | |
.sheet-rolltemplate-zauber td{ | |
padding-left: 5px; | |
padding-right: 5px; | |
} | |
.sheet-rolltemplate-zauber td.sheet-w50{ | |
width:50%; | |
} | |
.sheet-rolltemplate-zauber td.sheet-italic{ | |
font-style:italic; | |
} | |
.sheet-rolltemplate-zauber td.sheet-entzugsschaden{ | |
color:black; | |
} | |
.sheet-rolltemplate-zauber table{ | |
margin:0 auto; | |
} | |
/* Komplexe Form */ | |
.sheet-rolltemplate-complex-form{ | |
text-align:center; | |
border: 1px solid darkred; | |
font-weight: normal; | |
color: black; | |
background: white; | |
font-style: normal; | |
border-radius:3px; | |
} | |
.sheet-rolltemplate-complex-form table { | |
font-size: 0.8em; | |
width: 100%; | |
} | |
.sheet-rolltemplate-complex-form table td{ | |
border-radius:3px; | |
} | |
.sheet-rolltemplate-complex-form .sheet-text { | |
background: darkred; | |
color: white; | |
font-weight: bold; | |
border-top-left-radius: 3px; | |
border-top-right-radius: 3px; | |
} | |
.sheet-rolltemplate-complex-form div:nth-child(even), | |
.sheet-rolltemplate-complex-form table tbody tr:nth-child(even){ | |
background:rgb(250, 244, 233); | |
} | |
.sheet-rolltemplate-complex-form .inlinerollresult{ | |
background:none; | |
border:none; | |
} | |
.sheet-rolltemplate-complex-form .inlinerollresult.importantroll, | |
.sheet-rolltemplate-complex-form .inlinerollresult.fullcrit, | |
.sheet-rolltemplate-complex-form .inlinerollresult.fullfail{ | |
border:none; | |
} | |
.sheet-rolltemplate-complex-form .inlinerollresult.importantroll{ | |
color: #4A57ED; | |
} | |
.sheet-rolltemplate-complex-form .inlinerollresult.fullcrit{ | |
color: #3FB315; | |
} | |
.sheet-rolltemplate-complex-form .inlinerollresult.fullfail{ | |
color: #B31515; | |
} | |
.sheet-rolltemplate-complex-form td{ | |
padding-left: 5px; | |
padding-right: 5px; | |
} | |
.sheet-rolltemplate-complex-form td.sheet-w50{ | |
width:50%; | |
} | |
.sheet-rolltemplate-complex-form td.sheet-italic{ | |
font-style:italic; | |
} | |
.sheet-rolltemplate-complex-form td.sheet-entzugsschaden{ | |
color:black; | |
} | |
.sheet-rolltemplate-complex-form table{ | |
margin:0 auto; | |
} | |
/* Template: Kräfte */ | |
.sheet-rolltemplate-kraft{ | |
text-align:center; | |
border: 1px solid rgb(28, 174, 135); | |
font-weight: normal; | |
color: black; | |
background: white; | |
font-style: normal; | |
border-radius:3px; | |
} | |
.sheet-rolltemplate-kraft table { | |
font-size: 0.8em; | |
width: 100%; | |
} | |
.sheet-rolltemplate-kraft table td{ | |
border-radius:3px; | |
} | |
.sheet-rolltemplate-kraft .sheet-text { | |
background: rgb(28, 174, 135); | |
color: white; | |
font-weight: bold; | |
border-top-left-radius: 3px; | |
border-top-right-radius: 3px; | |
} | |
.sheet-rolltemplate-kraft div:nth-child(even), | |
.sheet-rolltemplate-kraft table tbody tr:nth-child(even){ | |
background:rgb(250, 244, 233) | |
} | |
.sheet-rolltemplate-kraft .inlinerollresult{ | |
background:none; | |
border:none; | |
} | |
.sheet-rolltemplate-kraft .inlinerollresult.importantroll, | |
.sheet-rolltemplate-kraft .inlinerollresult.fullcrit, | |
.sheet-rolltemplate-kraft .inlinerollresult.fullfail{ | |
border:none; | |
} | |
.sheet-rolltemplate-kraft .inlinerollresult.importantroll{ | |
color: #4A57ED; | |
} | |
.sheet-rolltemplate-kraft .inlinerollresult.fullcrit{ | |
color: #3FB315; | |
} | |
.sheet-rolltemplate-kraft .inlinerollresult.fullfail{ | |
color: #B31515; | |
} | |
.sheet-rolltemplate-kraft td{ | |
padding-left: 5px; | |
padding-right: 5px; | |
} | |
.sheet-rolltemplate-kraft td.sheet-italic{ | |
font-style:italic; | |
} | |
.sheet-rolltemplate-kraft td.sheet-entzugsschaden{ | |
color:black; | |
} | |
.sheet-rolltemplate-kraft table{ | |
margin:0 auto; | |
} | |
/* Template: Schwächen */ | |
.sheet-rolltemplate-schwaeche{ | |
text-align:center; | |
border: 1px solid rgb(28, 174, 135); | |
font-weight: normal; | |
color: black; | |
background: white; | |
font-style: normal; | |
border-radius:3px; | |
} | |
.sheet-rolltemplate-schwaeche div.sheet-beschreibung { | |
font-size: 0.8em; | |
font-style: italic; | |
} | |
.sheet-rolltemplate-schwaeche .sheet-text { | |
background: rgb(28, 174, 135); | |
color: white; | |
font-weight: bold; | |
border-top-left-radius: 3px; | |
border-top-right-radius: 3px; | |
} | |
.sheet-rolltemplate-schwaeche div:nth-child(even), | |
.sheet-rolltemplate-schwaeche table tbody tr:nth-child(even){ | |
background:rgb(250, 244, 233) | |
} | |
.sheet-rolltemplate-schwaeche .inlinerollresult{ | |
background:none; | |
border:none; | |
} | |
.sheet-rolltemplate-schwaeche .inlinerollresult.importantroll, | |
.sheet-rolltemplate-schwaeche .inlinerollresult.fullcrit, | |
.sheet-rolltemplate-schwaeche .inlinerollresult.fullfail{ | |
border:none; | |
} | |
.sheet-rolltemplate-schwaeche .inlinerollresult.importantroll{ | |
color: #4A57ED; | |
} | |
.sheet-rolltemplate-schwaeche .inlinerollresult.fullcrit{ | |
color: #3FB315; | |
} | |
.sheet-rolltemplate-schwaeche .inlinerollresult.fullfail{ | |
color: #B31515; | |
} | |
.sheet-rolltemplate-schwaeche td{ | |
padding-left: 5px; | |
padding-right: 5px; | |
border-radius:3px; | |
} | |
.sheet-rolltemplate-schwaeche td.sheet-italic{ | |
font-style:italic; | |
} | |
.sheet-rolltemplate-schwaeche td.sheet-entzugsschaden{ | |
color:black; | |
} | |
.sheet-rolltemplate-schwaeche table{ | |
margin:0 auto; | |
} | |
/* Template: Geister */ | |
.sheet-rolltemplate-geist{ | |
text-align:center; | |
border: 1px solid rgb(0, 195, 180); | |
font-weight: normal; | |
color: black; | |
background: white; | |
font-style: normal; | |
border-radius:3px; | |
} | |
.sheet-rolltemplate-geist table { | |
font-size: 0.8em; | |
width: 100%; | |
} | |
.sheet-rolltemplate-geist .sheet-text { | |
background: rgb(0, 195, 180); | |
color: white; | |
font-weight: bold; | |
border-top-left-radius: 3px; | |
border-top-right-radius: 3px; | |
} | |
.sheet-rolltemplate-geist div:nth-child(even), | |
.sheet-rolltemplate-geist table tbody tr:nth-child(even){ | |
background:rgb(250, 244, 233); | |
} | |
.sheet-rolltemplate-geist .inlinerollresult{ | |
background:none; | |
border:none; | |
} | |
.sheet-rolltemplate-geist .inlinerollresult.importantroll, | |
.sheet-rolltemplate-geist .inlinerollresult.fullcrit, | |
.sheet-rolltemplate-geist .inlinerollresult.fullfail{ | |
border:none; | |
} | |
.sheet-rolltemplate-geist .inlinerollresult.importantroll{ | |
color: #4A57ED; | |
} | |
.sheet-rolltemplate-geist .inlinerollresult.fullcrit{ | |
color: #3FB315; | |
} | |
.sheet-rolltemplate-geist .inlinerollresult.fullfail{ | |
color: #B31515; | |
} | |
.sheet-rolltemplate-geist td{ | |
padding-left: 5px; | |
} | |
.sheet-rolltemplate-geist td.sheet-italic{ | |
font-style:italic; | |
} | |
.sheet-rolltemplate-geist td.sheet-entzugsschaden{ | |
color:black; | |
} | |
.sheet-rolltemplate-geist table{ | |
margin:0 auto; | |
} | |
/* Template: Sprites */ | |
.sheet-rolltemplate-sprite{ | |
text-align:center; | |
border: 1px solid rgb(0, 195, 180); | |
font-weight: normal; | |
color: black; | |
background: white; | |
font-style: normal; | |
border-radius:3px; | |
} | |
.sheet-rolltemplate-sprite table { | |
font-size: 0.8em; | |
width: 100%; | |
} | |
.sheet-rolltemplate-sprite table td{ | |
border-radius:3px; | |
} | |
.sheet-rolltemplate-sprite .sheet-text { | |
background: rgb(0, 195, 180); | |
color: white; | |
font-weight: bold; | |
border-top-left-radius: 3px; | |
border-top-right-radius: 3px; | |
} | |
.sheet-rolltemplate-sprite div:nth-child(even), | |
.sheet-rolltemplate-sprite table tbody tr:nth-child(even){ | |
background:rgb(250, 244, 233); | |
} | |
.sheet-rolltemplate-sprite .inlinerollresult{ | |
background:none; | |
border:none; | |
} | |
.sheet-rolltemplate-sprite .inlinerollresult.importantroll, | |
.sheet-rolltemplate-sprite .inlinerollresult.fullcrit, | |
.sheet-rolltemplate-sprite .inlinerollresult.fullfail{ | |
border:none; | |
} | |
.sheet-rolltemplate-sprite .inlinerollresult.importantroll{ | |
color: #4A57ED; | |
} | |
.sheet-rolltemplate-sprite .inlinerollresult.fullcrit{ | |
color: #3FB315; | |
} | |
.sheet-rolltemplate-sprite .inlinerollresult.fullfail{ | |
color: #B31515; | |
} | |
.sheet-rolltemplate-sprite td{ | |
padding-left: 5px; | |
} | |
.sheet-rolltemplate-sprite td.sheet-italic{ | |
font-style:italic; | |
} | |
.sheet-rolltemplate-sprite td.sheet-entzugsschaden{ | |
color:black; | |
} | |
.sheet-rolltemplate-sprite table{ | |
margin:0 auto; | |
} | |
/* Template: Fernkampf */ | |
.sheet-rolltemplate-rangedattack{ | |
text-align:center; | |
border: 1px solid rgb(93, 17, 105); | |
font-weight: normal; | |
color: black; | |
background: white; | |
font-style: normal; | |
border-radius:3px; | |
} | |
.sheet-rolltemplate-rangedattack table { | |
font-size: 0.8em; | |
width: 100%; | |
} | |
.sheet-rolltemplate-rangedattack table td{ | |
border-radius:3px; | |
} | |
.sheet-rolltemplate-rangedattack .sheet-text { | |
background: rgb(93, 17, 105); | |
color: white; | |
font-weight: bold; | |
border-top-left-radius: 3px; | |
border-top-right-radius: 3px; | |
} | |
.sheet-rolltemplate-rangedattack div:nth-child(even), | |
.sheet-rolltemplate-rangedattack table tbody tr:nth-child(even){ | |
background:rgb(250, 244, 233); | |
} | |
.sheet-rolltemplate-rangedattack .inlinerollresult{ | |
background:none; | |
border:none; | |
} | |
.sheet-rolltemplate-rangedattack .inlinerollresult.importantroll, | |
.sheet-rolltemplate-rangedattack .inlinerollresult.fullcrit, | |
.sheet-rolltemplate-rangedattack .inlinerollresult.fullfail{ | |
border:none; | |
} | |
.sheet-rolltemplate-rangedattack .inlinerollresult.importantroll{ | |
color: #4A57ED; | |
} | |
.sheet-rolltemplate-rangedattack .inlinerollresult.fullcrit{ | |
color: #3FB315; | |
} | |
.sheet-rolltemplate-rangedattack .inlinerollresult.fullfail{ | |
color: #B31515; | |
} | |
.sheet-rolltemplate-rangedattack td{ | |
padding-left: 5px; | |
padding-right: 5px; | |
} | |
.sheet-rolltemplate-rangedattack td.sheet-italic{ | |
font-style:italic; | |
} | |
.sheet-rolltemplate-rangedattack table{ | |
margin:0 auto; | |
} | |
/* Template: Nahkampf */ | |
.sheet-rolltemplate-meleeattack{ | |
text-align:center; | |
border: 1px solid rgb(142, 32, 99); | |
font-weight: normal; | |
color: black; | |
background: white; | |
font-style: normal; | |
border-radius:3px; | |
} | |
.sheet-rolltemplate-meleeattack table { | |
font-size: 0.8em; | |
width: 100%; | |
} | |
.sheet-rolltemplate-meleeattack table td{ | |
border-radius:3px; | |
} | |
.sheet-rolltemplate-meleeattack .sheet-text { | |
background: rgb(142, 32, 99); | |
color: white; | |
font-weight: bold; | |
border-top-left-radius: 3px; | |
border-top-right-radius: 3px; | |
} | |
.sheet-rolltemplate-meleeattack div:nth-child(even), | |
.sheet-rolltemplate-meleeattack table tbody tr:nth-child(even){ | |
background:rgb(250, 244, 233); | |
} | |
.sheet-rolltemplate-meleeattack .inlinerollresult{ | |
background:none; | |
border:none; | |
} | |
.sheet-rolltemplate-meleeattack .inlinerollresult.importantroll, | |
.sheet-rolltemplate-meleeattack .inlinerollresult.fullcrit, | |
.sheet-rolltemplate-meleeattack .inlinerollresult.fullfail{ | |
border:none; | |
} | |
.sheet-rolltemplate-meleeattack .inlinerollresult.importantroll, | |
.sheet-rolltemplate-meleeattack .userscript-inlinerollresult.userscript-importantroll{ | |
color: #4A57ED; | |
} | |
.sheet-rolltemplate-meleeattack .inlinerollresult.fullcrit, | |
.sheet-rolltemplate-meleeattack .userscript-inlinerollresult.userscript-fullcrit{ | |
color: #3FB315; | |
} | |
.sheet-rolltemplate-meleeattack .inlinerollresult.fullfail, | |
.sheet-rolltemplate-meleeattack .userscript-inlinerollresult.userscript-fullfail{ | |
color: #B31515; | |
} | |
.sheet-rolltemplate-meleeattack td{ | |
padding-left: 5px; | |
padding-right: 5px; | |
} | |
.sheet-rolltemplate-meleeattack td.sheet-italic{ | |
font-style:italic; | |
} | |
.sheet-rolltemplate-meleeattack table{ | |
margin:0 auto; | |
} | |
.userscript-inlinerollresult { | |
font-weight: bold; | |
font-size: 1.1em; | |
} | |
/* Zustandsmonitor */ | |
.sheet-rolltemplate-zustandsmonitor table{ | |
border: 1px solid black; | |
border-collapse: inherit; | |
margin: 0 auto; | |
padding: 0; | |
border-radius: 5px; | |
} | |
.sheet-rolltemplate-zustandsmonitor tr.sheet-header{ | |
background: black; | |
color: white; | |
font-style: normal; | |
font-weight: bold; | |
text-align: center; | |
} | |
.sheet-rolltemplate-zustandsmonitor tr.sheet-header-white{ | |
background: white; | |
color: black; | |
font-style: normal; | |
font-weight: bold; | |
text-align: center; | |
} | |
.sheet-rolltemplate-zustandsmonitor td.sheet-center{ | |
text-align: center; | |
} | |
.sheet-rolltemplate-zustandsmonitor tr.sheet-header-white td{ | |
border-top-left-radius:5px; | |
border-top-right-radius:5px; | |
} | |
.sheet-rolltemplate-zustandsmonitor td.sheet-roundbottomborder5{ | |
border-bottom-left-radius:5px; | |
border-bottom-right-radius:5px; | |
} | |
.sheet-rolltemplate-zustandsmonitor tr.sheet-header td, | |
.sheet-rolltemplate-zustandsmonitor tr.sheet-header-white td { | |
padding: 5px; | |
} | |
.sheet-rolltemplate-zustandsmonitor tr { | |
background: rgb(250, 244, 233); | |
border-bottom-left-radius: 5px; | |
border-bottom-right-radius: 5px; | |
color: black; | |
font-weight: normal; | |
} | |
.sheet-rolltemplate-zustandsmonitor td.sheet-successes { | |
text-align: center; | |
font-weight: bold; | |
} | |
.sheet-rolltemplate-zustandsmonitor tr.sheet-final td { | |
border-top: 2px solid black; | |
border-bottom-right-radius: 5px; | |
border-bottom-left-radius: 5px; | |
} | |
.sheet-rolltemplate-zustandsmonitor .sheet-successes{ | |
color:blue; | |
} | |
.sheet-rolltemplate-zustandsmonitor .sheet-fullcrit{ | |
color:green; | |
} | |
.sheet-rolltemplate-zustandsmonitor .sheet-fullfail{ | |
color:red; | |
} | |
/* | |
!shadowrun --action extended-test --pool 10 --target 14 --intervall 1h | |
*/ | |
/* API generated outputs */ | |
.sheet-rolltemplate-script table{ | |
border: 1px solid black; | |
border-collapse: inherit; | |
margin: 0 auto; | |
padding: 0; | |
border-radius: 5px; | |
} | |
.sheet-rolltemplate-script tr.userscript-header{ | |
background: black; | |
color: white; | |
font-style: normal; | |
font-weight: bold; | |
text-align: center; | |
} | |
.sheet-rolltemplate-script tr.userscript-header td { | |
padding: 5px; | |
} | |
.sheet-rolltemplate-script tr { | |
background: rgb(250, 244, 233); | |
border-bottom-left-radius: 5px; | |
border-bottom-right-radius: 5px; | |
color: black; | |
font-weight: normal; | |
} | |
.sheet-rolltemplate-script td.userscript-extended-test-successes { | |
text-align: center; | |
font-weight: bold; | |
} | |
.sheet-rolltemplate-script tr.userscript-final td { | |
border-top: 2px solid black; | |
border-bottom-right-radius: 5px; | |
border-bottom-left-radius: 5px; | |
} | |
.sheet-rolltemplate-script .userscript-extended-test-successes{ | |
color:blue; | |
} | |
.sheet-rolltemplate-script .userscript-fullcrit{ | |
color:green; | |
} | |
.sheet-rolltemplate-script .userscript-fullfail{ | |
color:red; | |
} | |
/* Colors */ | |
.sheet-color-darkred{ | |
color:darkred; | |
} | |
.sheet-color-darkblue{ | |
color:darkblue; | |
} | |
.sheet-color-darkgreen{ | |
color:darkgreen; | |
} | |
.sheet-color-blueviolet{ | |
color:blueviolet; | |
} | |
.sheet-color-darkslategray{ | |
color:darkslategray; | |
} | |
/* Aligns */ | |
.sheet-left{ | |
text-align:left; | |
} | |
.sheet-center{ | |
text-align:center; | |
} | |
.sheet-right{ | |
text-align:right; | |
} | |
/* floats */ | |
.sheet-float-left{ | |
float:left; | |
} | |
.sheet-float-center{ | |
float:center; | |
} | |
.sheet-float-right{ | |
float:right; | |
} | |
/* Widths */ | |
.sheet-w5{width:5%;} | |
.sheet-w10{width:10%;} | |
.sheet-w15{width:15%;} | |
.sheet-w20{width:20%;} | |
.sheet-w25{width:25%;} | |
.sheet-w30{width:30%;} | |
.sheet-w35{width:35%;} | |
.sheet-w40{width:40%;} | |
.sheet-w45{width:45%;} | |
.sheet-w50{width:50%;} | |
.sheet-w55{width:55%;} | |
.sheet-w60{width:60%;} | |
.sheet-w65{width:65%;} | |
.sheet-w70{width:70%;} | |
.sheet-w75{width:75%;} | |
.sheet-w80{width:80%;} | |
.sheet-w85{width:85%;} | |
.sheet-w90{width:90%;} | |
.sheet-w95{width:95%;} | |
.sheet-w96{width:96%;} | |
.sheet-w97{width:97%;} | |
.sheet-w98{width:98%;} | |
.sheet-w100{width:100%;} | |
.sheet-w20px{width:20px;} | |
.sheet-w25px{width:25px;} | |
.sheet-w30px{width:30px;} | |
.sheet-w35px{width:35px;} | |
.sheet-w38px{width:38px;} | |
.sheet-w40px{width:40px;} | |
.sheet-w45px{width:45px;} | |
.sheet-w48px{width:48px;} | |
.sheet-w49px{width:49px;} | |
.sheet-w50px{width:50px;} | |
.sheet-w55px{width:55px;} | |
.sheet-w57px{width:57px;} | |
.sheet-w60px{width:60px;} | |
.sheet-w65px{width:65px;} | |
.sheet-w70px{width:70px;} | |
.sheet-w75px{width:75px;} | |
.sheet-w80px{width:80px;} | |
.sheet-w85px{width:85px;} | |
.sheet-w90px{width:90px;} | |
.sheet-w95px{width:95px;} | |
.sheet-w100px{width:100px;} | |
.sheet-w105px{width:105px;} | |
.sheet-w101px{width:101px;} | |
.sheet-w110px{width:110px;} | |
.sheet-w120px{width:120px;} | |
.sheet-w125px{width:125px;} | |
.sheet-w130px{width:130px;} | |
.sheet-w135px{width:135px;} | |
.sheet-w140px{width:140px;} | |
.sheet-w145px{width:145px;} | |
.sheet-w150px{width:150px;} | |
.sheet-w155px{width:155px;} | |
.sheet-w160px{width:160px;} | |
.sheet-w165px{width:165px;} | |
.sheet-w175px{width:175px;} | |
.sheet-w180px{width:180px;} | |
.sheet-w200px{width:200px;} | |
.sheet-w220px{width:220px;} | |
.sheet-w225px{width:225px;} | |
.sheet-w230px{width:230px;} | |
.sheet-w240px{width:240px;} | |
.sheet-w250px{width:250px;} | |
.sheet-w255px{width:255px;} | |
.sheet-w260px{width:260px;} | |
.sheet-w270px{width:270px;} | |
.sheet-w275px{width:275px;} | |
.sheet-w300px{width:300px;} | |
.sheet-w300px{width:400px;} | |
.sheet-w408px{width:408px;} | |
.sheet-wm25px{min-width:25px;} | |
.sheet-wm50px{min-width:50px;} | |
.sheet-wm75px{min-width:75px;} | |
.sheet-wm100px{min-width:100px;} | |
.sheet-wm125px{min-width:125px;} | |
.sheet-wm150px{min-width:150px;} | |
.sheet-wm175px{min-width:175px;} | |
.sheet-wm200px{min-width:200px;} | |
.sheet-wm225px{min-width:225px;} | |
.sheet-wm250px{min-width:250px;} | |
.sheet-wm275px{min-width:275px;} | |
.sheet-wm300px{min-width:300px;} | |
.sheet-wm745px{min-width:745px;} | |
.sheet-wm785px{min-width:785px;} | |
.sheet-wm795px{min-width:795px;} | |
.sheet-wm810px{min-width:810px;} | |
.sheet-h100px{height:100px;} | |
.sheet-h300px{height:300px;} | |
/* Margins */ | |
.sheet-margin-bottom-10{ | |
margin-bottom:10px; | |
} | |
.sheet-margin-right-10{ | |
margin-right:10px; | |
} | |
.sheet-margin-left-25{ | |
margin-left:25px; | |
} | |
/* Display: None */ | |
.sheet-hidden{ | |
display:none; | |
} | |
/* Style repcontrol */ | |
.charsheet .repitem{ | |
float: left; | |
clear: both; | |
} | |
.charsheet .repcontrol { | |
float: left; | |
width: 100%; | |
} | |
.charsheet .repcontrol .btn { | |
font-size: 12px; | |
margin: 0px; | |
padding: 0px; | |
background: darkred; | |
color: white; | |
padding-left: 2px; | |
padding-right: 2px; | |
} | |
.charsheet .itemcontrol .repcontrol_del { | |
background-color: darkred; | |
color: white; | |
font-size: 20px; | |
padding: 0; | |
margin: 0px; | |
padding-left: 7px; | |
padding-right: 7px; | |
background-image: none; | |
} | |
.charsheet .repcontrol .btn.repcontrol_add, | |
.charsheet .repcontrol .btn.repcontrol_edit{ | |
color:darkred; | |
text-shadow:none; | |
} | |
.charsheet .repcontrol .btn.repcontrol_add::after, | |
.charsheet .repcontrol .btn.repcontrol_edit::after{ | |
margin-left: -27px; | |
color: white; | |
padding-right: 5px; | |
font-weight: bold; | |
} | |
[data-groupname=repeating_sins] > button.btn.repcontrol_add::after { | |
content: "+SIN"; | |
} | |
[data-groupname=repeating_sins] > button.btn.repcontrol_edit::after { | |
content: "SINS bearbeiten"; | |
} | |
[data-groupname=repeating_licenses] > button.btn.repcontrol_add::after { | |
content: "+Lizenz"; | |
} | |
[data-groupname=repeating_licenses] > button.btn.repcontrol_edit::after { | |
content: "Lizenzen bearbeiten"; | |
} | |
[data-groupname=repeating_lifestyles] > button.btn.repcontrol_add::after { | |
content: "+Lebensstil"; | |
} | |
[data-groupname=repeating_lifestyles] > button.btn.repcontrol_edit::after { | |
content: "Lebensstile bearbeiten"; | |
} | |
[data-groupname=repeating_positivequalities] > button.btn.repcontrol_add::after { | |
content: "+Vorteil"; | |
} | |
[data-groupname=repeating_positivequalities] > button.btn.repcontrol_edit::after { | |
content: "Vorteile bearbeiten"; | |
} | |
[data-groupname=repeating_negativequalities] > button.btn.repcontrol_add::after { | |
content: "+Nachteil"; | |
} | |
[data-groupname=repeating_negativequalities] > button.btn.repcontrol_edit::after { | |
content: "Nachteile bearbeiten"; | |
} | |
[data-groupname=repeating_advancementkarma] > button.btn.repcontrol_add::after { | |
content: "+Karma"; | |
} | |
[data-groupname=repeating_advancementkarma] > button.btn.repcontrol_edit::after { | |
content: "Karma bearbeiten"; | |
} | |
[data-groupname=repeating_advancementnuyen] > button.btn.repcontrol_add::after { | |
content: "+Nuyen"; | |
} | |
[data-groupname=repeating_advancementnuyen] > button.btn.repcontrol_edit::after { | |
content: "Nuyen bearbeiten"; | |
} | |
[data-groupname=repeating_skillsaction] > button.btn.repcontrol_add::after { | |
content: "+Aktionsfertigkeit"; | |
} | |
[data-groupname=repeating_skillsaction] > button.btn.repcontrol_edit::after { | |
content: "Aktionsfertigkeiten bearbeiten"; | |
} | |
[data-groupname=repeating_skillsknowledge] > button.btn.repcontrol_add::after { | |
content: "+Wissensfertigkeit"; | |
} | |
[data-groupname=repeating_skillsknowledge] > button.btn.repcontrol_edit::after { | |
content: "Wissensfertigkeiten bearbeiten"; | |
} | |
[data-groupname=repeating_weaponsranged] > button.btn.repcontrol_add::after { | |
content: "+Fernkampfwaffe"; | |
} | |
[data-groupname=repeating_weaponsranged] > button.btn.repcontrol_edit::after { | |
content: "Fernkampfwaffen bearbeiten"; | |
} | |
[data-groupname=repeating_weaponsmelee] > button.btn.repcontrol_add::after { | |
content: "+Nahkampfwaffe"; | |
} | |
[data-groupname=repeating_weaponsmelee] > button.btn.repcontrol_edit::after { | |
content: "Nahkampfwaffen bearbeiten"; | |
} | |
[data-groupname=repeating_combatpools] > button.btn.repcontrol_add::after { | |
content: "+Pool"; | |
} | |
[data-groupname=repeating_combatpools] > button.btn.repcontrol_edit::after { | |
content: "Pools bearbeiten"; | |
} | |
[data-groupname=repeating_armor] > button.btn.repcontrol_add::after { | |
content: "+Panzerung"; | |
} | |
[data-groupname=repeating_armor] > button.btn.repcontrol_edit::after { | |
content: "Panzerung bearbeiten"; | |
} | |
[data-groupname=repeating_spellcasting] > button.btn.repcontrol_add::after { | |
content: "+Zauber"; | |
} | |
[data-groupname=repeating_spellcasting] > button.btn.repcontrol_edit::after { | |
content: "Zauber bearbeiten"; | |
} | |
[data-groupname=repeating_alchemyspells] > button.btn.repcontrol_add::after { | |
content: "+Alchemistischer Zauber"; | |
} | |
[data-groupname=repeating_alchemyspells] > button.btn.repcontrol_edit::after { | |
content: "Alchemistische Zauber bearbeiten"; | |
} | |
[data-groupname=repeating_preparations] > button.btn.repcontrol_add::after { | |
content: "+Praeparat"; | |
} | |
[data-groupname=repeating_preparations] > button.btn.repcontrol_edit::after { | |
content: "Praeparate bearbeiten"; | |
} | |
[data-groupname=repeating_summonspirit] > button.btn.repcontrol_add::after { | |
content: "+Geistertyp"; | |
} | |
[data-groupname=repeating_summonspirit] > button.btn.repcontrol_edit::after { | |
content: "Geistertyp bearbeiten"; | |
} | |
[data-groupname=repeating_rituals] > button.btn.repcontrol_add::after { | |
content: "+Ritual"; | |
} | |
[data-groupname=repeating_rituals] > button.btn.repcontrol_edit::after { | |
content: "Rituale bearbeiten"; | |
} | |
[data-groupname=repeating_adeptpowers] > button.btn.repcontrol_add::after { | |
content: "+Adeptenkraft"; | |
} | |
[data-groupname=repeating_adeptpowers] > button.btn.repcontrol_edit::after { | |
content: "Adeptenkraefte bearbeiten"; | |
} | |
[data-groupname=repeating_cyberdecks] > button.btn.repcontrol_add::after { | |
content: "+Cyberdeck"; | |
} | |
[data-groupname=repeating_cyberdecks] > button.btn.repcontrol_edit::after { | |
content: "Cyberdecks bearbeiten"; | |
} | |
[data-groupname=repeating_riggerconsoles] > button.btn.repcontrol_add::after { | |
content: "+Riggerkonsole"; | |
} | |
[data-groupname=repeating_riggerconsoles] > button.btn.repcontrol_edit::after { | |
content: "Riggerkonsolen bearbeiten"; | |
} | |
[data-groupname=repeating_matrixprograms] > button.btn.repcontrol_add::after { | |
content: "+Programm"; | |
} | |
[data-groupname=repeating_matrixprograms] > button.btn.repcontrol_edit::after { | |
content: "Programme bearbeiten"; | |
} | |
[data-groupname=repeating_compilesprite] > button.btn.repcontrol_add::after { | |
content: "+Spriteart"; | |
} | |
[data-groupname=repeating_compilesprite] > button.btn.repcontrol_edit::after { | |
content: "Sprites bearbeiten"; | |
} | |
[data-groupname=repeating_activesprites] > button.btn.repcontrol_add::after { | |
content: "+Aktives Sprite"; | |
} | |
[data-groupname=repeating_activesprites] > button.btn.repcontrol_edit::after { | |
content: "Aktive Sprites bearbeiten"; | |
} | |
[data-groupname=repeating_complexforms] > button.btn.repcontrol_add::after { | |
content: "+Komplexe Form"; | |
} | |
[data-groupname=repeating_complexforms] > button.btn.repcontrol_edit::after { | |
content: "Komplexe Formen bearbeiten"; | |
} | |
[data-groupname=repeating_connections] > button.btn.repcontrol_add::after { | |
content: "+Connection"; | |
} | |
[data-groupname=repeating_connections] > button.btn.repcontrol_edit::after { | |
content: "Connections bearbeiten"; | |
} | |
[data-groupname=repeating_equipment] > button.btn.repcontrol_add::after { | |
content: "+Gegenstand"; | |
} | |
[data-groupname=repeating_equipment] > button.btn.repcontrol_edit::after { | |
content: "Inventar bearbeiten"; | |
} | |
[data-groupname=repeating_augmentations] > button.btn.repcontrol_add::after { | |
content: "+Augmentierung"; | |
} | |
[data-groupname=repeating_augmentations] > button.btn.repcontrol_edit::after { | |
content: "Augmentierungen bearbeiten"; | |
} | |
[data-groupname=repeating_ammunition] > button.btn.repcontrol_add::after { | |
content: "+Munition"; | |
} | |
[data-groupname=repeating_ammunition] > button.btn.repcontrol_edit::after { | |
content: "Munition bearbeiten"; | |
} | |
[data-groupname=repeating_vehicles] > button.btn.repcontrol_add::after { | |
content: "+Fahrzeug"; | |
} | |
[data-groupname=repeating_vehicles] > button.btn.repcontrol_edit::after { | |
content: "Fahrzeuge bearbeiten"; | |
} | |
[data-groupname=repeating_drones] > button.btn.repcontrol_add::after { | |
content: "+Drohne"; | |
} | |
[data-groupname=repeating_drones] > button.btn.repcontrol_edit::after { | |
content: "Drohnen bearbeiten"; | |
} | |
[data-groupname=repeating_orders] > button.btn.repcontrol_add::after { | |
content: "+Bestellung"; | |
} | |
[data-groupname=repeating_orders] > button.btn.repcontrol_edit::after { | |
content: "Bestellungen bearbeiten"; | |
} | |
[data-groupname=repeating_activespirits] > button.btn.repcontrol_add::after { | |
content: "+Geist"; | |
} | |
[data-groupname=repeating_activespirits] > button.btn.repcontrol_edit::after { | |
content: "Geister bearbeiten"; | |
} | |
[data-groupname=repeating_activespirits]{ | |
clear:both; | |
} | |
[data-groupname=repeating_activespirits] > div.repitem{ | |
float:left; | |
clear:none; | |
} | |
a.btn.repcontrol_move{ | |
right: 50px; | |
position: absolute; | |
right: -29px; | |
height: 10px; | |
padding-top: 0px; | |
} | |
.charsheet .editmode + .repcontrol .btn.repcontrol_edit::after { | |
content: "Speichern"; | |
} | |
input[readonly],input[disabled="true"]{ | |
background:#DADADA; | |
font-weight:bold; | |
border-color: #BBB; | |
} | |
.sheet-color-darkred ~ input[readonly], | |
.sheet-color-darkred input[readonly], | |
.sheet-color-darkred ~ input[disabled="true"], | |
.sheet-color-darkred input[disabled="true"]{ | |
color: darkred; | |
} | |
.sheet-color-darkblue ~ input[readonly], | |
.sheet-color-darkblue input[readonly], | |
.sheet-color-darkblue ~ input[disabled="true"], | |
.sheet-color-darkblue input[disabled="true"]{ | |
color: darkblue; | |
} | |
.sheet-color-blueviolet ~ input[readonly], | |
.sheet-color-blueviolet input[readonly], | |
.sheet-color-blueviolet ~ input[disabled="true"], | |
.sheet-color-blueviolet input[disabled="true"]{ | |
color: blueviolet; | |
} | |
.sheet-color-darkgreen ~ input[readonly], | |
.sheet-color-darkgreen input[readonly], | |
.sheet-color-darkgreen ~ input[disabled="true"], | |
.sheet-color-darkgreen input[disabled="true"]{ | |
color: darkgreen; | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<div class="wrapper"> | |
<!--<input name="attr_fixme" type="text" value=""/> | |
<button name="roll_fixme" type="roll" value="!shadowrun --character @{character_id} --action fix-repeating --name @{fixme}">Roll</button>--> | |
<input class="hidden settings-show-matrix" type="checkbox" name="attr_settings_show_matrix" checked="checked" /> | |
<input class="hidden settings-is-technomancer" type="checkbox" name="attr_settings_is_technomancer" checked="checked"/> | |
<input class="hidden settings-is-mage" type="checkbox" name="attr_settings_is_mage" checked="checked" /> | |
<input class="hidden settings-has-spellcasting" type="checkbox" name="attr_settings_has_spellcasting" checked="checked" /> | |
<input class="hidden settings-has-alchemy" type="checkbox" name="attr_settings_has_alchemy" checked="checked" /> | |
<input class="hidden settings-has-summoning" type="checkbox" name="attr_settings_has_summoning" checked="checked" /> | |
<input class="hidden settings-has-rituals" type="checkbox" name="attr_settings_has_rituals" checked="checked" /> | |
<input class="hidden settings-has-adeptpowers" type="checkbox" name="attr_settings_has_adeptpowers" checked="checked" /> | |
<!-- Sheet Worker Helper --> | |
<input class="hidden" type="text" name="attr_cmd_use_edge_token"/> | |
<input class="hidden" type="text" name="attr_cmd_use_edge_text"/> | |
<input class="hidden" type="text" name="attr_cmd_use_edge_mod"/> | |
<input class="hidden" type="text" name="attr_cmd_injury_mod"/> | |
<input class="hidden" type="text" name="attr_cmd_injury_text"/> | |
<!-- First Menu Row --> | |
<input class="tab tab-basis" type="radio" name="attr_tabs" value="0" checked="checked" /> | |
<span class="tab" title="Charakter" ></span> | |
<input class="tab tab-skills" type="radio" name="attr_tabs" value="1"/> | |
<span class="tab" title="Fertigkeiten" ></span> | |
<input class="tab tab-combat" type="radio" name="attr_tabs" value="2"/> | |
<span class="tab" title="Kampf" ></span> | |
<input class="tab tab-magic" type="radio" name="attr_tabs" value="3"/> | |
<span class="tab" title="Magie" ></span> | |
<input class="tab tab-matrix" type="radio" name="attr_tabs" value="4"/> | |
<span class="tab" title="Matrix" ></span> | |
<input class="tab tab-technomancer" type="radio" name="attr_tabs" value="5"/> | |
<span class="tab" title="Technomancer" ></span> | |
<input class="tab tab-social" type="radio" name="attr_tabs" value="6"/> | |
<span class="tab" title="Sozial" ></span> | |
<input class="tab tab-equipment" type="radio" name="attr_tabs" value="7"/> | |
<span class="tab" title="Ausrüstung" ></span> | |
<!-- Charactersheet Menu --> | |
<input class="sheet-type sheet-type-sc" type="radio" name="attr_sheet_type" value="SC" checked="checked"/> | |
<span class="sheet-type sheet-type-sc" title="SC" ></span> | |
<input class="sheet-type sheet-type-nsc" type="radio" name="attr_sheet_type" value="NSC"/> | |
<span class="sheet-type sheet-type-nsc" title="NSC" ></span> | |
<input class="sheet-type sheet-type-other" type="radio" name="attr_sheet_type" value="OTHER"/> | |
<span class="sheet-type sheet-type-other" title="OTHER" ></span> | |
<!-- Settings --> | |
<input class="sheet-injury" type="checkbox" name="attr_use_injury_mod"></input> | |
<span class="sheet-injury" title="Verletzung" ></span> | |
<input class="sheet-use-edge" type="checkbox" name="attr_use_edge"></input> | |
<span class="sheet-use-edge" title="Edge" ></span> | |
<input class="sheet-hidden" type="text" name="attr_hide_rolls_cmd" value="/em "></input> | |
<input class="sheet-hide-rolls" type="checkbox" name="attr_hide_rolls"></input> | |
<span class="sheet-hide-rolls" title="/w" ></span> | |
<div class="clear"></div> | |
<!-- Submenu: Basis --> | |
<input class="tab tab-sub tab-sub-menu tab-sub-basis tab-character" type="radio" name="attr_menu_basis" value="0" checked /> | |
<span class="tab tab-sub tab-sub-menu tab-sub-basis tab-character" title="Charakter" ></span> | |
<input class="tab tab-sub tab-sub-menu tab-sub-basis tab-attributes" type="radio" name="attr_menu_basis" value="1"/> | |
<span class="tab tab-sub tab-sub-menu tab-sub-basis tab-attributes" title="Attribute" ></span> | |
<input class="tab tab-sub tab-sub-menu tab-sub-basis tab-qualities" type="radio" name="attr_menu_basis" value="2"/> | |
<span class="tab tab-sub tab-sub-menu tab-sub-basis tab-qualities" title="Vor/Nachteile" ></span> | |
<input class="tab tab-sub tab-sub-menu tab-sub-basis tab-description" type="radio" name="attr_menu_basis" value="3"/> | |
<span class="tab tab-sub tab-sub-menu tab-sub-basis tab-description" title="Beschreibung" ></span> | |
<input class="tab tab-sub tab-sub-menu tab-sub-basis tab-advancement" type="radio" name="attr_menu_basis" value="4"/> | |
<span class="tab tab-sub tab-sub-menu tab-sub-basis tab-advancement" title="Entwicklung" ></span> | |
<input class="tab tab-sub tab-sub-menu tab-sub-basis tab-settings" type="radio" name="attr_menu_basis" value="5"/> | |
<span class="tab tab-sub tab-sub-menu tab-sub-basis tab-settings" title="Einstellungen" ></span> | |
<!-- Submenu: Skills --> | |
<input class="tab tab-sub tab-sub-menu tab-sub-skills tab-actionskills" type="radio" name="attr_menu_skills" value="0" checked /> | |
<span class="tab tab-sub tab-sub-menu tab-sub-skills tab-actionskills" title="Aktion" ></span> | |
<input class="tab tab-sub tab-sub-menu tab-sub-skills tab-knowledgeskills" type="radio" name="attr_menu_skills" value="1"/> | |
<span class="tab tab-sub tab-sub-menu tab-sub-skills tab-knowledgeskills" title="Wissen" ></span> | |
<!-- Submenu: Magic --> | |
<div class="tab-sub-magic"> | |
<input class="tab tab-sub tab-sub-menu tab-sub-magic tab-spellcasting" type="radio" name="attr_menu_magic" value="0" checked /> | |
<span class="tab tab-sub tab-sub-menu tab-sub-magic tab-spellcasting" title="Spruchzauberei" ></span> | |
<input class="tab tab-sub tab-sub-menu tab-sub-magic tab-alchemy" type="radio" name="attr_menu_magic" value="1"/> | |
<span class="tab tab-sub tab-sub-menu tab-sub-magic tab-alchemy" title="Alchemie" ></span> | |
<input class="tab tab-sub tab-sub-menu tab-sub-magic tab-summoning" type="radio" name="attr_menu_magic" value="2"/> | |
<span class="tab tab-sub tab-sub-menu tab-sub-magic tab-summoning" title="Beschwören" ></span> | |
<input class="tab tab-sub tab-sub-menu tab-sub-magic tab-rituals" type="radio" name="attr_menu_magic" value="3"/> | |
<span class="tab tab-sub tab-sub-menu tab-sub-magic tab-rituals" title="Rituale" ></span> | |
<input class="tab tab-sub tab-sub-menu tab-sub-magic tab-adeptpowers" type="radio" name="attr_menu_magic" value="4"/> | |
<span class="tab tab-sub tab-sub-menu tab-sub-magic tab-adeptpowers" title="Adeptenkräfte" ></span> | |
<input class="tab tab-sub tab-sub-menu tab-sub-magic tab-tradition" type="radio" name="attr_menu_magic" value="5"/> | |
<span class="tab tab-sub tab-sub-menu tab-sub-magic tab-tradition" title="Tradition" ></span> | |
<div class="clear"></div> | |
<div class="tab tab-magic-spellcasting"> | |
<div class="float card"> | |
<div class="row labels color-darkred"> | |
<div class="w155px">Zauber</div> | |
<div class="w45px">Wert</div> | |
<div class="w45px">Mod</div> | |
<div class="w45px">Total</div> | |
</div> | |
<fieldset class="repeating_spellcasting"> | |
<input class="hidden" type="text" name="attr_spellcasting_id" value=""></input> | |
<div class="row"> | |
<input class="show-details" type="checkbox" name="attr_spellcasting_show_details"></input> | |
<span class="show-details color-darkred"></span> | |
<input class="buttoninput buttoninput-left w155px left" type="text" name="attr_spellcasting_name" value="0"></input> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_spellcasting_basis" value="0"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_spellcasting_basis' value='!shadowrun --character @{character_id} --action spellcasting-cast --id @{spellcasting_id} --spellname "@{spellcasting_name}" --basis @{spellcasting_basis} --mod 0 --force ?{Kraftstufe?|1}'></button> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_spellcasting_mod" value="0"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_spellcasting_mod' value='!shadowrun --character @{character_id} --action spellcasting-cast --id @{spellcasting_id} --spellname "@{spellcasting_name}" --basis @{spellcasting_basis} --mod ?{Modifikator?|@{spellcasting_mod}} --force ?{Kraftstufe?|1}'></button> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_spellcasting" value="@{spellcasting_basis}+@{spellcasting_mod}" disabled></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_spellcasting' value='!shadowrun --character @{character_id} --action spellcasting-cast --id @{spellcasting_id} --spellname "@{spellcasting_name}" --basis @{spellcasting_basis} --mod @{spellcasting_mod} --force ?{Kraftstufe?|1}'></button> | |
<div class="details"> | |
<div class="labels color-darkred w100">Notizen</div> | |
<textarea name="attr_spellcasting_note" class="w95 h100px clear"></textarea> | |
</div> | |
</div> | |
<!--pools, dodge, etc--> | |
</div><!--float--> | |
</div><!--submenu:spellcasting--> | |
<div class="tab tab-magic-alchemy"> | |
<div class="float card"> | |
<div class="row labels color-darkred"> | |
<div class="w155px">Zauber</div> | |
<div class="w45px">Pool</div> | |
<div class="w45px">Mod</div> | |
<div class="w45px">Total</div> | |
</div> | |
<fieldset class="repeating_alchemyspells"> | |
<input class="hidden" type="text" name="attr_alchemyspells_id" value=""></input> | |
<div class="row"> | |
<input class="show-details" type="checkbox" name="attr_alchemy_show_details"></input> | |
<span class="show-details color-darkred"></span> | |
<input class="buttoninput buttoninput-left w155px left" type="text" name="attr_alchemy_name" value="0"></input> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_alchemy_basis" value="0"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_alchemy_basis' value='!shadowrun --character @{character_id} --action alchemy-prepare --spell-name "@{alchemy_name}" --basis @{alchemy_basis} --mod 0 --ks ?{Kraftstufe?|1} --trigger @{trigger_entzug}'></button> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_alchemy_mod" value="0"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_alchemy_mod' value='!shadowrun --character @{character_id} --action alchemy-prepare --spell-name "@{alchemy_name}" --basis @{alchemy_basis} --mod ?{Mod|@{alchemy_mod}} --ks ?{Kraftstufe?|1} --trigger @{trigger_entzug}'></button> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_alchemy" value="@{alchemy_basis}+@{alchemy_mod}" disabled="disabled"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_alchemy' value='!shadowrun --character @{character_id} --action alchemy-prepare --spell-name "@{alchemy_name}" --basis @{alchemy_basis} --mod @{alchemy_mod} --ks ?{Kraftstufe?|1} --trigger @{trigger_entzug}'></button> | |
<select name="attr_trigger_entzug" class="buttoninput buttoninput-right trigger-select w110px"> | |
<option value="Befehl">Befehl</option> | |
<option value="Kontakt">Kontakt</option> | |
<option value="Zeitzünder">Zeitzünder</option> | |
<option value="Ver._Befehl">Ver. Befehl</option> | |
<option value="Ver._Kontakt">Ver. Kontakt</option> | |
<option value="Ver._Kontakt_Geschlecht/Metatyp">Ver. Kontakt Geschlecht/Metatyp</option> | |
</select> | |
<div class="details"> | |
<div class="labels color-darkred w100">Notizen</div> | |
<textarea name="attr_alchemy_note" class="w95 h100px clear"></textarea> | |
</div> | |
</div> | |
</fieldset><!--pools, dodge, etc--> | |
</div><!--float--> | |
<div class="float card"> | |
<div class="row labels color-darkred"> | |
<div class="w155px">Präparate</div> | |
<div class="w45px">Wirk.</div> | |
<div class="w45px">KS</div> | |
<div class="w45px">Total</div> | |
</div> | |
<fieldset class="repeating_preparations"> | |
<input class="hidden" type="text" name="attr_preparations_id" value=""></input> | |
<div class="row"> | |
<input class="show-details" type="checkbox" name="attr_preparations_show_details"></input> | |
<span class="show-details color-darkred"></span> | |
<input class="buttoninput buttoninput-left w155px left" type="text" name="attr_preparations_name" value="0"></input> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_preparations_basis" value="0"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_preparations_basis' value='!shadowrun --character @{character_id} --action alchemy-use --id @{preparations_id} --wirksamkeit @{preparations_basis} --force @{preparations_mod}'></button> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_preparations_mod" value="0"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_preparations_mod' value='!shadowrun --character @{character_id} --action alchemy-use --id @{preparations_id} --wirksamkeit @{preparations_basis} --force @{preparations_mod}'></button> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_preparations" value="@{preparations_basis}+@{preparations_mod}" disabled="disabled"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_preparations' value='!shadowrun --character @{character_id} --action alchemy-use --id @{preparations_id} --wirksamkeit @{preparations_basis} --force @{preparations_mod}'></button> | |
<div class="details"> | |
<div class="labels color-darkred w100">Herstellungszeitpunkt</div> | |
<input class="buttoninput buttoninput-both left" type="text" name="attr_preparations_date" value="0"></input> | |
<div class="labels color-darkred w100">Notizen</div> | |
<textarea name="attr_preparations_note" class="w95 h100px clear"></textarea> | |
</div> | |
</div> | |
</fieldset><!--pools, dodge, etc--> | |
</div><!--float--> | |
</div><!--submenu:alchemy--> | |
<div class="tab tab-magic-summoning"> | |
<div class="float card"> | |
<div class="row labels color-darkred"> | |
<div class="w155px">Geist</div> | |
<div class="w45px">Pool</div> | |
<div class="w45px">Mod</div> | |
<div class="w45px">Total</div> | |
</div> | |
<fieldset class="repeating_summonspirit"> | |
<input class="hidden" type="text" name="attr_summonspirit_id" value=""></input> | |
<div class="row"> | |
<input class="show-details" type="checkbox" name="attr_summonspirit_show_details"></input> | |
<span class="show-details color-darkred"></span> | |
<input class="buttoninput buttoninput-left w155px left" type="text" name="attr_summonspirit_name" value="0"></input> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_summonspirit_basis" value="0"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_summonspirit_basis' value='!summon Geister-@{summonspirit_name} T | |
!shadowrun --character @{character_id} --action summon-spirit --spirit-name "@{summonspirit_name}" --basis @{summonspirit_basis} --mod 0 --force ?{Kraftstufe?|1}'></button> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_summonspirit_mod" value="0"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_summonspirit_mod' value='!summon Geister-@{summonspirit_name} T | |
!shadowrun --character @{character_id} --action summon-spirit --spirit-name "@{summonspirit_name}" --basis @{summonspirit_basis} --mod ?{Modifikator?|@{summonspirit_mod}} --force ?{Kraftstufe?|1}'></button> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_summonspirit" value="@{summonspirit_basis}+@{summonspirit_mod}" disabled="disabled"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_summonspirit' value='!summon Geister-@{summonspirit_name} T | |
!shadowrun --character @{character_id} --action summon-spirit --spirit-name "@{summonspirit_name}" --basis @{summonspirit_basis} --mod @{summonspirit_mod} --force ?{Kraftstufe?|1}'></button> | |
<div class="details"> | |
<div class="labels color-darkred w100">Notizen</div> | |
<textarea name="attr_summonspirit_note" class="w95 h100px clear"></textarea> | |
</div> | |
</div> | |
</fieldset><!--pools, dodge, etc--> | |
</div><!--float--> | |
<fieldset class="repeating_activespirits"> | |
<input class="hidden" type="text" name="attr_activespirits_id" value=""></input> | |
<div class="float card"> | |
<div class="row labels color-darkred"> | |
<div class="w155px">Aktive Geister</div> | |
<div class="w45px">Stufe</div> | |
<div class="w45px">Dienste</div> | |
</div> | |
<div class="row"> | |
<input class="show-details" type="checkbox" name="attr_activespirits_show_details"></input> | |
<span class="show-details color-darkred"></span> | |
<input class="buttoninput buttoninput-left w155px left" type="text" name="attr_activespirits_name" value="0"></input> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_activespirits_stufe" value="0"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_activespirits_stufe' value='@{hide_rolls_cmd} Noch nicht implementiert @{activespirits_id}'></button> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_activespirits_dienste" value="0"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_activespirits_dienste' value='@{hide_rolls_cmd} Noch nicht implementiert @{activespirits_id}'></button> | |
<div class="details"> | |
<div class="row labels color-darkred"> | |
<div class="w45px">KON</div> | |
<div class="w45px">STR</div> | |
<div class="w45px">GES</div> | |
<div class="w45px">REA</div> | |
</div> | |
<div class="row labels color-darkred"> | |
<input class="buttoninput buttoninput-left" type="text" name="attr_activespirits_kon" value="0"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_activespirits_kon' value='@{hide_rolls_cmd} Noch nicht implementiert @{activespirits_id}'></button> | |
<input class="buttoninput buttoninput-left" type="text" name="attr_activespirits_str" value="0"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_activespirits_str' value='@{hide_rolls_cmd} Noch nicht implementiert @{activespirits_id}'></button> | |
<input class="buttoninput buttoninput-left" type="text" name="attr_activespirits_ges" value="0"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_activespirits_ges' value='@{hide_rolls_cmd} Noch nicht implementiert @{activespirits_id}'></button> | |
<input class="buttoninput buttoninput-left" type="text" name="attr_activespirits_rea" value="0"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_activespirits_rea' value='@{hide_rolls_cmd} Noch nicht implementiert @{activespirits_id}'></button> | |
</div> | |
<div class="row labels color-darkblue"> | |
<div class="w45px">INT</div> | |
<div class="w45px">LOG</div> | |
<div class="w45px">WIL</div> | |
<div class="w45px">CHA</div> | |
</div> | |
<div class="row labels color-darkblue"> | |
<input class="buttoninput buttoninput-left" type="text" name="attr_activespirits_int" value="0"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_activespirits_int' value='@{hide_rolls_cmd} Noch nicht implementiert @{activespirits_id}'></button> | |
<input class="buttoninput buttoninput-left" type="text" name="attr_activespirits_log" value="0"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_activespirits_log' value='@{hide_rolls_cmd} Noch nicht implementiert @{activespirits_id}'></button> | |
<input class="buttoninput buttoninput-left" type="text" name="attr_activespirits_wil" value="0"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_activespirits_wil' value='@{hide_rolls_cmd} Noch nicht implementiert @{activespirits_id}'></button> | |
<input class="buttoninput buttoninput-left" type="text" name="attr_activespirits_cha" value="0"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_activespirits_cha' value='@{hide_rolls_cmd} Noch nicht implementiert @{activespirits_id}'></button> | |
</div> | |
<div class="row labels color-blueviolet"> | |
<div class="w45px">EDG</div> | |
<div class="w45px">ESS</div> | |
<div class="w45px">MAG</div> | |
</div> | |
<div class="row labels color-blueviolet"> | |
<input class="buttoninput buttoninput-left" type="text" name="attr_activespirits_edg" value="0"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_activespirits_edg' value='@{hide_rolls_cmd} Noch nicht implementiert @{activespirits_id}'></button> | |
<input class="buttoninput buttoninput-left" type="text" name="attr_activespirits_ess" value="0"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_activespirits_ess' value='@{hide_rolls_cmd} Noch nicht implementiert @{activespirits_id}'></button> | |
<input class="buttoninput buttoninput-left" type="text" name="attr_activespirits_mag" value="0"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_activespirits_mag' value='@{hide_rolls_cmd} Noch nicht implementiert @{activespirits_id}'></button> | |
</div> | |
<div class="row labels color-darkred"> | |
<div class="w45px">Fertigkeiten</div> | |
</div> | |
<div class="row labels color-darkred"> | |
<input class="buttoninput buttoninput-left left w150px" type="text" name="attr_activespirits_skill_1_name" value="0"></input> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_activespirits_skill_1_pool" value="0"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_activespirits_skill_1' value='@{hide_rolls_cmd} &{template:roll}{{text=@{activespirits_name} benutzt @{activespirits_skill_1_name}}}{{basis=@{activespirits_skill_1_pool}}}{{mod=?{Modifikator?|0}}}{{pool=[[@{activespirits_skill_1_pool}+?{Modifikator?|0}]]}}{{erfolge=[[[[@{activespirits_skill_1_pool}+?{Modifikator?|0}]]d6sacs5cs6>5]]}}'></button> | |
</div> | |
<div class="row labels color-darkred"> | |
<input class="buttoninput buttoninput-left left w150px" type="text" name="attr_activespirits_skill_2_name" value="0"></input> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_activespirits_skill_2_pool" value="0"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_activespirits_skill_2' value='@{hide_rolls_cmd} &{template:roll}{{text=@{activespirits_name} benutzt @{activespirits_skill_2_name}}}{{basis=@{activespirits_skill_2_pool}}}{{mod=?{Modifikator?|0}}}{{pool=[[@{activespirits_skill_2_pool}+?{Modifikator?|0}]]}}{{erfolge=[[[[@{activespirits_skill_2_pool}+?{Modifikator?|0}]]d6sacs5cs6>5]]}}'></button> | |
</div> | |
<div class="row labels color-darkred"> | |
<input class="buttoninput buttoninput-left left w150px" type="text" name="attr_activespirits_skill_3_name" value="0"></input> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_activespirits_skill_3_pool" value="0"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_activespirits_skill_3' value='@{hide_rolls_cmd} &{template:roll}{{text=@{activespirits_name} benutzt @{activespirits_skill_3_name}}}{{basis=@{activespirits_skill_3_pool}}}{{mod=?{Modifikator?|0}}}{{pool=[[@{activespirits_skill_3_pool}+?{Modifikator?|0}]]}}{{erfolge=[[[[@{activespirits_skill_3_pool}+?{Modifikator?|0}]]d6sacs5cs6>5]]}}'></button> | |
</div> | |
<div class="row labels color-darkred"> | |
<input class="buttoninput buttoninput-left left w150px" type="text" name="attr_activespirits_skill_4_name" value="0"></input> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_activespirits_skill_4_pool" value="0"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_activespirits_skill_4' value='@{hide_rolls_cmd} &{template:roll}{{text=@{activespirits_name} benutzt @{activespirits_skill_4_name}}}{{basis=@{activespirits_skill_4_pool}}}{{mod=?{Modifikator?|0}}}{{pool=[[@{activespirits_skill_4_pool}+?{Modifikator?|0}]]}}{{erfolge=[[[[@{activespirits_skill_4_pool}+?{Modifikator?|0}]]d6sacs5cs6>5]]}}'></button> | |
</div> | |
<div class="row labels color-darkred"> | |
<input class="buttoninput buttoninput-left left w150px" type="text" name="attr_activespirits_skill_5_name" value="0"></input> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_activespirits_skill_5_pool" value="0"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_activespirits_skill_5' value='@{hide_rolls_cmd} &{template:roll}{{text=@{activespirits_name} benutzt @{activespirits_skill_5_name}}}{{basis=@{activespirits_skill_5_pool}}}{{mod=?{Modifikator?|0}}}{{pool=[[@{activespirits_skill_5_pool}+?{Modifikator?|0}]]}}{{erfolge=[[[[@{activespirits_skill_5_pool}+?{Modifikator?|0}]]d6sacs5cs6>5]]}}'></button> | |
</div> | |
<div class="row labels color-darkred"> | |
<input class="buttoninput buttoninput-left left w150px" type="text" name="attr_activespirits_skill_6_name" value="0"></input> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_activespirits_skill_6_pool" value="0"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_activespirits_skill_6' value='@{hide_rolls_cmd} &{template:roll}{{text=@{activespirits_name} benutzt @{activespirits_skill_6_name}}}{{basis=@{activespirits_skill_6_pool}}}{{mod=?{Modifikator?|0}}}{{pool=[[@{activespirits_skill_6_pool}+?{Modifikator?|0}]]}}{{erfolge=[[[[@{activespirits_skill_6_pool}+?{Modifikator?|0}]]d6sacs5cs6>5]]}}'></button> | |
</div> | |
<div class="row labels color-darkred"> | |
<input class="buttoninput buttoninput-left left w150px" type="text" name="attr_activespirits_skill_7_name" value="0"></input> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_activespirits_skill_7_pool" value="0"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_activespirits_skill_7' value='@{hide_rolls_cmd} &{template:roll}{{text=@{activespirits_name} benutzt @{activespirits_skill_7_name}}}{{basis=@{activespirits_skill_7_pool}}}{{mod=?{Modifikator?|0}}}{{pool=[[@{activespirits_skill_7_pool}+?{Modifikator?|0}]]}}{{erfolge=[[[[@{activespirits_skill_7_pool}+?{Modifikator?|0}]]d6sacs5cs6>5]]}}'></button> | |
</div> | |
<div class="row labels color-darkred"> | |
<input class="buttoninput buttoninput-left left w150px" type="text" name="attr_activespirits_skill_8_name" value="0"></input> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_activespirits_skill_8_pool" value="0"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_activespirits_skill_8' value='@{hide_rolls_cmd} &{template:roll}{{text=@{activespirits_name} benutzt @{activespirits_skill_8_name}}}{{basis=@{activespirits_skill_8_pool}}}{{mod=?{Modifikator?|0}}}{{pool=[[@{activespirits_skill_8_pool}+?{Modifikator?|0}]]}}{{erfolge=[[[[@{activespirits_skill_8_pool}+?{Modifikator?|0}]]d6sacs5cs6>5]]}}'></button> | |
</div> | |
<div class="row labels color-darkred"> | |
<input class="buttoninput buttoninput-left left w150px" type="text" name="attr_activespirits_skill_9_name" value="0"></input> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_activespirits_skill_9_pool" value="0"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_activespirits_skill_9' value='@{hide_rolls_cmd} &{template:roll}{{text=@{activespirits_name} benutzt @{activespirits_skill_9_name}}}{{basis=@{activespirits_skill_9_pool}}}{{mod=?{Modifikator?|0}}}{{pool=[[@{activespirits_skill_9_pool}+?{Modifikator?|0}]]}}{{erfolge=[[[[@{activespirits_skill_9_pool}+?{Modifikator?|0}]]d6sacs5cs6>5]]}}'></button> | |
</div> | |
<div class="row labels color-darkred"> | |
<input class="buttoninput buttoninput-left left w150px" type="text" name="attr_activespirits_skill_10_name" value="0"></input> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_activespirits_skill_10_pool" value="0"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_activespirits_skill_100' value='@{hide_rolls_cmd} &{template:roll}{{text=@{activespirits_name} benutzt @{activespirits_skill_10_name}}}{{basis=@{activespirits_skill_10_pool}}}{{mod=?{Modifikator?|0}}}{{pool=[[@{activespirits_skill_10_pool}+?{Modifikator?|0}]]}}{{erfolge=[[[[@{activespirits_skill_10_pool}+?{Modifikator?|0}]]d6sacs5cs6>5]]}}'></button> | |
</div> | |
<div class="row labels color-darkred"> | |
<div class="w45px">Kräfte</div> | |
</div> | |
<div class="row labels color-darkred"> | |
<input class="buttoninput buttoninput-left left w150px" type="text" name="attr_activespirits_power_1_name" value="0"></input> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_activespirits_power_1_pool" value="0"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_activespirits_power_1' value='@{hide_rolls_cmd} &{template:kraft}{{text=@{activespirits_name} benutzt }}{{name=@{activespirits_power_1_name}}}{{art=%{Kräfte-@{activespirits_power_1_name}|Art}}}{{handlung=%{Kräfte-@{activespirits_power_1_name}|Handlung}}}{{dauer=%{Kräfte-@{activespirits_power_1_name}|Dauer}}}{{reichweite=%{Kräfte-@{activespirits_power_1_name}|Reichweite}}}{{beschreibung=%{Kräfte-@{activespirits_power_1_name}|Beschreibung}}}'></button> | |
</div> | |
<div class="row labels color-darkred"> | |
<input class="buttoninput buttoninput-left left w150px" type="text" name="attr_activespirits_power_2_name" value="0"></input> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_activespirits_power_2_pool" value="0"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_activespirits_power_2' value='@{hide_rolls_cmd} &{template:kraft}{{text=@{activespirits_name} benutzt }}{{name=@{activespirits_power_2_name}}}{{art=%{Kräfte-@{activespirits_power_2_name}|Art}}}{{handlung=%{Kräfte-@{activespirits_power_2_name}|Handlung}}}{{dauer=%{Kräfte-@{activespirits_power_2_name}|Dauer}}}{{reichweite=%{Kräfte-@{activespirits_power_2_name}|Reichweite}}}{{beschreibung=%{Kräfte-@{activespirits_power_2_name}|Beschreibung}}}'></button> | |
</div> | |
<div class="row labels color-darkred"> | |
<input class="buttoninput buttoninput-left left w150px" type="text" name="attr_activespirits_power_3_name" value="0"></input> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_activespirits_power_3_pool" value="0"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_activespirits_power_3' value='@{hide_rolls_cmd} &{template:kraft}{{text=@{activespirits_name} benutzt }}{{name=@{activespirits_power_3_name}}}{{art=%{Kräfte-@{activespirits_power_3_name}|Art}}}{{handlung=%{Kräfte-@{activespirits_power_3_name}|Handlung}}}{{dauer=%{Kräfte-@{activespirits_power_3_name}|Dauer}}}{{reichweite=%{Kräfte-@{activespirits_power_3_name}|Reichweite}}}{{beschreibung=%{Kräfte-@{activespirits_power_3_name}|Beschreibung}}}'></button> | |
</div> | |
<div class="row labels color-darkred"> | |
<input class="buttoninput buttoninput-left left w150px" type="text" name="attr_activespirits_power_4_name" value="0"></input> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_activespirits_power_4_pool" value="0"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_activespirits_power_4' value='@{hide_rolls_cmd} &{template:kraft}{{text=@{activespirits_name} benutzt }}{{name=@{activespirits_power_4_name}}}{{art=%{Kräfte-@{activespirits_power_4_name}|Art}}}{{handlung=%{Kräfte-@{activespirits_power_4_name}|Handlung}}}{{dauer=%{Kräfte-@{activespirits_power_4_name}|Dauer}}}{{reichweite=%{Kräfte-@{activespirits_power_4_name}|Reichweite}}}{{beschreibung=%{Kräfte-@{activespirits_power_4_name}|Beschreibung}}}'></button> | |
</div> | |
<div class="row labels color-darkred"> | |
<input class="buttoninput buttoninput-left left w150px" type="text" name="attr_activespirits_power_5_name" value="0"></input> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_activespirits_power_5_pool" value="0"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_activespirits_power_5' value='@{hide_rolls_cmd} &{template:kraft}{{text=@{activespirits_name} benutzt }}{{name=@{activespirits_power_5_name}}}{{art=%{Kräfte-@{activespirits_power_5_name}|Art}}}{{handlung=%{Kräfte-@{activespirits_power_5_name}|Handlung}}}{{dauer=%{Kräfte-@{activespirits_power_5_name}|Dauer}}}{{reichweite=%{Kräfte-@{activespirits_power_5_name}|Reichweite}}}{{beschreibung=%{Kräfte-@{activespirits_power_5_name}|Beschreibung}}}'></button> | |
</div> | |
<div class="row labels color-darkred"> | |
<input class="buttoninput buttoninput-left left w150px" type="text" name="attr_activespirits_power_6_name" value="0"></input> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_activespirits_power_6_pool" value="0"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_activespirits_power_6' value='@{hide_rolls_cmd} &{template:kraft}{{text=@{activespirits_name} benutzt }}{{name=@{activespirits_power_6_name}}}{{art=%{Kräfte-@{activespirits_power_6_name}|Art}}}{{handlung=%{Kräfte-@{activespirits_power_6_name}|Handlung}}}{{dauer=%{Kräfte-@{activespirits_power_6_name}|Dauer}}}{{reichweite=%{Kräfte-@{activespirits_power_6_name}|Reichweite}}}{{beschreibung=%{Kräfte-@{activespirits_power_6_name}|Beschreibung}}}'></button> | |
</div> | |
<div class="row labels color-darkred"> | |
<input class="buttoninput buttoninput-left left w150px" type="text" name="attr_activespirits_power_7_name" value="0"></input> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_activespirits_power_7_pool" value="0"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_activespirits_power_7' value='@{hide_rolls_cmd} &{template:kraft}{{text=@{activespirits_name} benutzt }}{{name=@{activespirits_power_7_name}}}{{art=%{Kräfte-@{activespirits_power_7_name}|Art}}}{{handlung=%{Kräfte-@{activespirits_power_7_name}|Handlung}}}{{dauer=%{Kräfte-@{activespirits_power_7_name}|Dauer}}}{{reichweite=%{Kräfte-@{activespirits_power_7_name}|Reichweite}}}{{beschreibung=%{Kräfte-@{activespirits_power_7_name}|Beschreibung}}}'></button> | |
</div> | |
<div class="row labels color-darkred"> | |
<input class="buttoninput buttoninput-left left w150px" type="text" name="attr_activespirits_power_8_name" value="0"></input> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_activespirits_power_8_pool" value="0"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_activespirits_power_8' value='@{hide_rolls_cmd} &{template:kraft}{{text=@{activespirits_name} benutzt }}{{name=@{activespirits_power_8_name}}}{{art=%{Kräfte-@{activespirits_power_8_name}|Art}}}{{handlung=%{Kräfte-@{activespirits_power_8_name}|Handlung}}}{{dauer=%{Kräfte-@{activespirits_power_8_name}|Dauer}}}{{reichweite=%{Kräfte-@{activespirits_power_8_name}|Reichweite}}}{{beschreibung=%{Kräfte-@{activespirits_power_8_name}|Beschreibung}}}'></button> | |
</div> | |
<div class="row labels color-darkred"> | |
<input class="buttoninput buttoninput-left left w150px" type="text" name="attr_activespirits_power_9_name" value="0"></input> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_activespirits_power_9_pool" value="0"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_activespirits_power_9' value='@{hide_rolls_cmd} &{template:kraft}{{text=@{activespirits_name} benutzt }}{{name=@{activespirits_power_9_name}}}{{art=%{Kräfte-@{activespirits_power_9_name}|Art}}}{{handlung=%{Kräfte-@{activespirits_power_9_name}|Handlung}}}{{dauer=%{Kräfte-@{activespirits_power_9_name}|Dauer}}}{{reichweite=%{Kräfte-@{activespirits_power_9_name}|Reichweite}}}{{beschreibung=%{Kräfte-@{activespirits_power_9_name}|Beschreibung}}}'></button> | |
</div> | |
<div class="row labels color-darkred"> | |
<input class="buttoninput buttoninput-left left w150px" type="text" name="attr_activespirits_power_10_name" value="0"></input> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_activespirits_power_10_pool" value="0"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_activespirits_power_10' value='@{hide_rolls_cmd} &{template:kraft}{{text=@{activespirits_name} benutzt }}{{name=@{activespirits_power_10_name}}}{{art=%{Kräfte-@{activespirits_power_10_name}|Art}}}{{handlung=%{Kräfte-@{activespirits_power_10_name}|Handlung}}}{{dauer=%{Kräfte-@{activespirits_power_10_name}|Dauer}}}{{reichweite=%{Kräfte-@{activespirits_power_10_name}|Reichweite}}}{{beschreibung=%{Kräfte-@{activespirits_power_10_name}|Beschreibung}}}'></button> | |
</div> | |
<div class="row labels color-darkred"> | |
<div class="w45px">Schwächen</div> | |
</div> | |
<div class="row labels color-darkred"> | |
<input class="buttoninput buttoninput-left left w150px" type="text" name="attr_activespirits_weakness_1_name" value="0"></input> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_activespirits_weakness_1_pool" value="0"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_activespirits_weakness_1' value='@{hide_rolls_cmd} &{template:schwaeche}{{text=@{activespirits_name} benutzt }}{{name=@{activespirits_weakness_1_name}}}{{art=%{Kräfte-@{activespirits_weakness_1_name}|Art}}}{{handlung=%{Kräfte-@{activespirits_weakness_1_name}|Handlung}}}{{dauer=%{Kräfte-@{activespirits_weakness_1_name}|Dauer}}}{{reichweite=%{Kräfte-@{activespirits_weakness_1_name}|Reichweite}}}{{beschreibung=%{Kräfte-@{activespirits_weakness_1_name}|Beschreibung}}}'></button> | |
</div> | |
<div class="row labels color-darkred"> | |
<input class="buttoninput buttoninput-left left w150px" type="text" name="attr_activespirits_weakness_2_name" value="0"></input> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_activespirits_weakness_2_pool" value="0"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_activespirits_weakness_2' value='@{hide_rolls_cmd} &{template:schwaeche}{{text=@{activespirits_name} benutzt }}{{name=@{activespirits_weakness_2_name}}}{{art=%{Kräfte-@{activespirits_weakness_2_name}|Art}}}{{handlung=%{Kräfte-@{activespirits_weakness_2_name}|Handlung}}}{{dauer=%{Kräfte-@{activespirits_weakness_2_name}|Dauer}}}{{reichweite=%{Kräfte-@{activespirits_weakness_2_name}|Reichweite}}}{{beschreibung=%{Kräfte-@{activespirits_weakness_2_name}|Beschreibung}}}'></button> | |
</div> | |
<div class="row labels color-darkred"> | |
<input class="buttoninput buttoninput-left left w150px" type="text" name="attr_activespirits_weakness_3_name" value="0"></input> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_activespirits_weakness_3_pool" value="0"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_activespirits_weakness_3' value='@{hide_rolls_cmd} &{template:schwaeche}{{text=@{activespirits_name} benutzt }}{{name=@{activespirits_weakness_3_name}}}{{art=%{Kräfte-@{activespirits_weakness_3_name}|Art}}}{{handlung=%{Kräfte-@{activespirits_weakness_3_name}|Handlung}}}{{dauer=%{Kräfte-@{activespirits_weakness_3_name}|Dauer}}}{{reichweite=%{Kräfte-@{activespirits_weakness_3_name}|Reichweite}}}{{beschreibung=%{Kräfte-@{activespirits_weakness_3_name}|Beschreibung}}}'></button> | |
</div> | |
<div class="row labels color-darkred"> | |
<input class="buttoninput buttoninput-left left w150px" type="text" name="attr_activespirits_weakness_4_name" value="0"></input> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_activespirits_weakness_4_pool" value="0"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_activespirits_weakness_4' value='@{hide_rolls_cmd} &{template:schwaeche}{{text=@{activespirits_name} benutzt }}{{name=@{activespirits_weakness_4_name}}}{{art=%{Kräfte-@{activespirits_weakness_4_name}|Art}}}{{handlung=%{Kräfte-@{activespirits_weakness_4_name}|Handlung}}}{{dauer=%{Kräfte-@{activespirits_weakness_4_name}|Dauer}}}{{reichweite=%{Kräfte-@{activespirits_weakness_4_name}|Reichweite}}}{{beschreibung=%{Kräfte-@{activespirits_weakness_4_name}|Beschreibung}}}'></button> | |
</div> | |
<div class="row labels color-darkred"> | |
<input class="buttoninput buttoninput-left left w150px" type="text" name="attr_activespirits_weakness_5_name" value="0"></input> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_activespirits_weakness_5_pool" value="0"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_activespirits_weakness_5' value='@{hide_rolls_cmd} &{template:schwaeche}{{text=@{activespirits_name} benutzt }}{{name=@{activespirits_weakness_5_name}}}{{art=%{Kräfte-@{activespirits_weakness_5_name}|Art}}}{{handlung=%{Kräfte-@{activespirits_weakness_5_name}|Handlung}}}{{dauer=%{Kräfte-@{activespirits_weakness_5_name}|Dauer}}}{{reichweite=%{Kräfte-@{activespirits_weakness_5_name}|Reichweite}}}{{beschreibung=%{Kräfte-@{activespirits_weakness_5_name}|Beschreibung}}}'></button> | |
</div> | |
<div class="row labels color-darkred"> | |
<input class="buttoninput buttoninput-left left w150px" type="text" name="attr_activespirits_weakness_6_name" value="0"></input> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_activespirits_weakness_6_pool" value="0"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_activespirits_weakness_6' value='@{hide_rolls_cmd} &{template:schwaeche}{{text=@{activespirits_name} benutzt }}{{name=@{activespirits_weakness_6_name}}}{{art=%{Kräfte-@{activespirits_weakness_6_name}|Art}}}{{handlung=%{Kräfte-@{activespirits_weakness_6_name}|Handlung}}}{{dauer=%{Kräfte-@{activespirits_weakness_6_name}|Dauer}}}{{reichweite=%{Kräfte-@{activespirits_weakness_6_name}|Reichweite}}}{{beschreibung=%{Kräfte-@{activespirits_weakness_6_name}|Beschreibung}}}'></button> | |
</div> | |
<div class="row labels color-darkred"> | |
<input class="buttoninput buttoninput-left left w150px" type="text" name="attr_activespirits_weakness_7_name" value="0"></input> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_activespirits_weakness_7_pool" value="0"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_activespirits_weakness_7' value='@{hide_rolls_cmd} &{template:schwaeche}{{text=@{activespirits_name} benutzt }}{{name=@{activespirits_weakness_7_name}}}{{art=%{Kräfte-@{activespirits_weakness_7_name}|Art}}}{{handlung=%{Kräfte-@{activespirits_weakness_7_name}|Handlung}}}{{dauer=%{Kräfte-@{activespirits_weakness_7_name}|Dauer}}}{{reichweite=%{Kräfte-@{activespirits_weakness_7_name}|Reichweite}}}{{beschreibung=%{Kräfte-@{activespirits_weakness_7_name}|Beschreibung}}}'></button> | |
</div> | |
<div class="row labels color-darkred"> | |
<input class="buttoninput buttoninput-left left w150px" type="text" name="attr_activespirits_weakness_8_name" value="0"></input> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_activespirits_weakness_8_pool" value="0"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_activespirits_weakness_8' value='@{hide_rolls_cmd} &{template:schwaeche}{{text=@{activespirits_name} benutzt }}{{name=@{activespirits_weakness_8_name}}}{{art=%{Kräfte-@{activespirits_weakness_8_name}|Art}}}{{handlung=%{Kräfte-@{activespirits_weakness_8_name}|Handlung}}}{{dauer=%{Kräfte-@{activespirits_weakness_8_name}|Dauer}}}{{reichweite=%{Kräfte-@{activespirits_weakness_8_name}|Reichweite}}}{{beschreibung=%{Kräfte-@{activespirits_weakness_8_name}|Beschreibung}}}'></button> | |
</div> | |
<div class="row labels color-darkred"> | |
<input class="buttoninput buttoninput-left left w150px" type="text" name="attr_activespirits_weakness_9_name" value="0"></input> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_activespirits_weakness_9_pool" value="0"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_activespirits_weakness_9' value='@{hide_rolls_cmd} &{template:schwaeche}{{text=@{activespirits_name} benutzt }}{{name=@{activespirits_weakness_9_name}}}{{art=%{Kräfte-@{activespirits_weakness_9_name}|Art}}}{{handlung=%{Kräfte-@{activespirits_weakness_9_name}|Handlung}}}{{dauer=%{Kräfte-@{activespirits_weakness_9_name}|Dauer}}}{{reichweite=%{Kräfte-@{activespirits_weakness_9_name}|Reichweite}}}{{beschreibung=%{Kräfte-@{activespirits_weakness_9_name}|Beschreibung}}}'></button> | |
</div> | |
<div class="row labels color-darkred"> | |
<input class="buttoninput buttoninput-left left w150px" type="text" name="attr_activespirits_weakness_10_name" value="0"></input> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_activespirits_weakness_10_pool" value="0"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_activespirits_weakness_10' value='@{hide_rolls_cmd} &{template:schwaeche}{{text=@{activespirits_name} benutzt }}{{name=@{activespirits_weakness_10_name}}}{{art=%{Kräfte-@{activespirits_weakness_10_name}|Art}}}{{handlung=%{Kräfte-@{activespirits_weakness_10_name}|Handlung}}}{{dauer=%{Kräfte-@{activespirits_weakness_10_name}|Dauer}}}{{reichweite=%{Kräfte-@{activespirits_weakness_10_name}|Reichweite}}}{{beschreibung=%{Kräfte-@{activespirits_weakness_10_name}|Beschreibung}}}'></button> | |
</div> | |
<div class="labels color-darkred w100">Notizen</div> | |
<textarea name="attr_activespirits_note" class="w95 h100px clear"></textarea> | |
</div> | |
</div> | |
</div><!--float--> | |
</fieldset><!--pools, dodge, etc--> | |
</div><!--submenu:summoning--> | |
<div class="tab tab-magic-rituals"> | |
<div class="float card"> | |
<div class="row labels color-darkred"> | |
<div class="w155px">Ritual</div> | |
<div class="w45px">Pool</div> | |
<div class="w45px">Mod</div> | |
<div class="w45px">Total</div> | |
</div> | |
<fieldset class="repeating_rituals"> | |
<input class="hidden" type="text" name="attr_rituals_id" value=""></input> | |
<div class="row"> | |
<input class="show-details" type="checkbox" name="attr_rituals_show_details"></input> | |
<span class="show-details color-darkred"></span> | |
<input class="buttoninput buttoninput-left w155px left" type="text" name="attr_rituals_name" value="0"></input> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_rituals_basis" value="0"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_rituals_basis' value='@{hide_rolls_cmd} Noch nicht implementiert @{rituals_id}'></button> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_rituals_mod" value="0"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_rituals_mod' value='@{hide_rolls_cmd} Noch nicht implementiert @{rituals_id}'></button> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_rituals" value="0"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_rituals' value='@{hide_rolls_cmd} Noch nicht implementiert @{rituals_id}'></button> | |
<div class="details"> | |
<div class="labels color-darkred w100">Notizen</div> | |
<textarea name="attr_rituals_note" class="w95 h100px clear"></textarea> | |
</div> | |
</div> | |
</fieldset><!--pools, dodge, etc--> | |
</div><!--float--> | |
</div><!--submenu:rituals--> | |
<div class="tab tab-magic-adeptpowers"> | |
<div class="float card"> | |
<div class="row labels color-darkred"> | |
<div class="w155px">Adeptenkraft</div> | |
<div class="w45px">Pool</div> | |
<div class="w45px">Mod</div> | |
<div class="w45px">Total</div> | |
</div> | |
<fieldset class="repeating_adeptpowers"> | |
<input class="hidden" type="text" name="attr_adeptpowers_id" value=""></input> | |
<div class="row"> | |
<input class="show-details" type="checkbox" name="attr_adeptpowers_show_details"></input> | |
<span class="show-details color-darkred"></span> | |
<input class="buttoninput buttoninput-left w155px left" type="text" name="attr_adeptpowers_name" value="0"></input> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_adeptpowers_basis" value="0"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_adeptpowers_basis' value="@{hide_rolls_cmd} &{template:roll}{{color=purple}}{{text=@{adeptpowers_name}}}{{desc=@{adeptpowers_note}}}{{basis=@{adeptpowers_basis}}}{{mod=[[0@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{total=[[@{adeptpowers_basis}@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{erfolge=[[(@{adeptpowers_basis}@{cmd_use_edge_mod}@{cmd_injury_mod})d6@{cmd_use_edge_token}sacs5cs6>5]]}}@{cmd_use_edge_text}@{cmd_injury_text}"></button> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_adeptpowers_mod" value="0"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_adeptpowers_mod' value="@{hide_rolls_cmd} &{template:roll}{{color=purple}}{{text=@{adeptpowers_name}}}{{desc=@{adeptpowers_note}}}{{basis=@{adeptpowers_basis}}}{{mod=[[?{Modifikator|@{adeptpowers_mod}}@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{total=[[@{adeptpowers_basis}+?{Modifikator|@{adeptpowers_mod}}@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{erfolge=[[(@{adeptpowers_basis}+?{Modifikator|@{adeptpowers_mod}}@{cmd_use_edge_mod}@{cmd_injury_mod})d6@{cmd_use_edge_token}sacs5cs6>5]]}}@{cmd_use_edge_text}@{cmd_injury_text}"></button> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_adeptpowers" value="0"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_adeptpowers' value="@{hide_rolls_cmd} &{template:roll}{{color=purple}}{{text=@{adeptpowers_name}}}{{desc=@{adeptpowers_note}}}{{basis=@{adeptpowers_basis}}}{{mod=[[@{adeptpowers_mod}@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{total=[[@{adeptpowers_basis}+@{adeptpowers_mod}@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{erfolge=[[(@{adeptpowers_basis}+@{adeptpowers_mod}@{cmd_use_edge_mod}@{cmd_injury_mod})d6@{cmd_use_edge_token}sacs5cs6>5]]}}@{cmd_use_edge_text}@{cmd_injury_text}"></button> | |
<div class="details"> | |
<div class="labels color-darkred w100">Notizen</div> | |
<textarea name="attr_adeptpowers_note" class="w95 h100px clear"></textarea> | |
</div> | |
</div> | |
</fieldset><!--pools, dodge, etc--> | |
</div><!--float--> | |
</div><!--submenu:adeptpowers--> | |
<div class="tab tab-magic-tradition"> | |
<div class="float card"> | |
<div class="row labels color-darkred"> | |
<div class="w105px">Tradition</div> | |
<div class="w85px">Entzugsattribut</div> | |
<div class="w50px center">WIL</div> | |
<div class="w50px center">Mod</div> | |
<div class="w45px">Total</div> | |
</div> | |
<div class="row"> | |
<input class="show-details" type="checkbox" name="attr_tradition_show_details"></input> | |
<span class="show-details color-darkred"></span> | |
<input class="buttoninput buttoninput-left w155px left" type="text" name="attr_tradition_name" value="0"></input> | |
<select name="attr_tradition_drainattribute" class="buttoninput buttoninput-center w60px"> | |
<option value="@{kon}">KON</option> | |
<option value="@{ges}">GES</option> | |
<option value="@{rea}">REA</option> | |
<option value="@{str}">STR</option> | |
<option value="@{wil}">WIL</option> | |
<option value="@{log}">LOG</option> | |
<option value="@{int}">INT</option> | |
<option value="@{cha}">CHA</option> | |
<option value="@{mag}">MAG</option> | |
<option value="@{res}">RES</option> | |
</select> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_display_drainattribute" value="@{tradition_drainattribute}" disabled></input> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_tradition_drainmod" value="0"></input> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_tradition_drainpool" value="@{tradition_drainattribute}+@{tradition_drainmod}+@{wil}" disabled></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_tradition_drainpool' value='@{hide_rolls_cmd} &{template:roll}{{color=darkblue}}{{text=Entzug}}{{basis=[[@{tradition_drainattribute}+@{wil}]]}}{{mod=[[@{tradition_drainmod}@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{total=[[@{tradition_drainattribute}+@{wil}+@{tradition_drainmod}@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{erfolge=[[(@{tradition_drainattribute}+@{wil}+@{tradition_drainmod}@{cmd_use_edge_mod}@{cmd_injury_mod})d6@{cmd_use_edge_token}sacs5cs6>5]]}}@{cmd_use_edge_text}@{cmd_injury_text}'></button> | |
<div class="details"> | |
<div class="labels color-darkred w100">Notizen</div> | |
<textarea name="attr_tradition_note" class="w95 h100px clear"></textarea> | |
</div> | |
</div> | |
</div><!--float--> | |
<div class="clear"></div> | |
<div class="float card"> | |
<div class="row labels color-darkred"> | |
<div class="w155px">Schutzpatron</div> | |
<input class="buttoninput buttoninput-left w155px left" type="text" name="attr_patron_name" value="0"></input> | |
</div> | |
<div class="row labels color-darkred"> | |
<div class="w155px">Vorteile</div> | |
<textarea name="attr__patron_positive_qualities" class="w95 h100px clear"></textarea> | |
</div> | |
<div class="row labels color-darkred"> | |
<div class="w155px">Nachteile</div> | |
<textarea name="attr__patron_negative_qualities" class="w95 h100px clear"></textarea> | |
</div> | |
</div><!--float--> | |
</div><!--submenu:tradition--> | |
</div><!--sub-magic--> | |
<!-- Submenu: Matrix --> | |
<input class="tab tab-sub tab-sub-menu tab-sub-matrix tab-matrixequipment" type="radio" name="attr_menu_matrix" value="0" checked /> | |
<span class="tab tab-sub tab-sub-menu tab-sub-matrix tab-matrixequipment" title="Ausrüstung" ></span> | |
<input class="tab tab-sub tab-sub-menu tab-sub-matrix tab-programs" type="radio" name="attr_menu_matrix" value="1"/> | |
<span class="tab tab-sub tab-sub-menu tab-sub-matrix tab-programs" title="Programme" ></span> | |
<input class="tab tab-sub tab-sub-menu tab-sub-matrix tab-matrixactions" type="radio" name="attr_menu_matrix" value="2"/> | |
<span class="tab tab-sub tab-sub-menu tab-sub-matrix tab-matrixactions" title="Aktionen" ></span> | |
<!-- Submenu: Technomancer --> | |
<input class="tab tab-sub tab-sub-menu tab-sub-technomancer tab-livingpersona" type="radio" name="attr_menu_technomancer" value="0" checked /> | |
<span class="tab tab-sub tab-sub-menu tab-sub-technomancer tab-livingpersona" title="Persona" ></span> | |
<input class="tab tab-sub tab-sub-menu tab-sub-technomancer tab-complexforms" type="radio" name="attr_menu_technomancer" value="1"/> | |
<span class="tab tab-sub tab-sub-menu tab-sub-technomancer tab-complexforms" title="KF" ></span> | |
<input class="tab tab-sub tab-sub-menu tab-sub-technomancer tab-sprites" type="radio" name="attr_menu_technomancer" value="2"/> | |
<span class="tab tab-sub tab-sub-menu tab-sub-technomancer tab-sprites" title="Sprites" ></span> | |
<!-- Submenu: Social --> | |
<input class="tab tab-sub tab-sub-menu tab-sub-social tab-sinlicense" type="radio" name="attr_menu_social" value="0" checked /> | |
<span class="tab tab-sub tab-sub-menu tab-sub-social tab-sinlicense" title="SIN/Lizenzen" ></span> | |
<input class="tab tab-sub tab-sub-menu tab-sub-social tab-lifestyles" type="radio" name="attr_menu_social" value="1"/> | |
<span class="tab tab-sub tab-sub-menu tab-sub-social tab-lifestyles" title="Lebensstile" ></span> | |
<input class="tab tab-sub tab-sub-menu tab-sub-social tab-connections" type="radio" name="attr_menu_social" value="2"/> | |
<span class="tab tab-sub tab-sub-menu tab-sub-social tab-connections" title="Connections" ></span> | |
<!-- Submenu: Equipment --> | |
<input class="tab tab-sub tab-sub-menu tab-sub-equipment tab-equipment-equipment" type="radio" name="attr_menu_equipment" value="0" checked /> | |
<span class="tab tab-sub tab-sub-menu tab-sub-equipment tab-equipment-equipment" title="Ausrüstung" ></span> | |
<input class="tab tab-sub tab-sub-menu tab-sub-equipment tab-augmentations" type="radio" name="attr_menu_equipment" value="1"/> | |
<span class="tab tab-sub tab-sub-menu tab-sub-equipment tab-augmentations" title="Augmentierung" ></span> | |
<input class="tab tab-sub tab-sub-menu tab-sub-equipment tab-ammunition" type="radio" name="attr_menu_equipment" value="2"/> | |
<span class="tab tab-sub tab-sub-menu tab-sub-equipment tab-ammunition" title="Munition" ></span> | |
<input class="tab tab-sub tab-sub-menu tab-sub-equipment tab-vehicles" type="radio" name="attr_menu_equipment" value="3"/> | |
<span class="tab tab-sub tab-sub-menu tab-sub-equipment tab-vehicles" title="Fahrzeuge" ></span> | |
<input class="tab tab-sub tab-sub-menu tab-sub-equipment tab-drones" type="radio" name="attr_menu_equipment" value="4"/> | |
<span class="tab tab-sub tab-sub-menu tab-sub-equipment tab-drones" title="Drohnen" ></span> | |
<input class="tab tab-sub tab-sub-menu tab-sub-equipment tab-orders" type="radio" name="attr_menu_equipment" value="5"/> | |
<span class="tab tab-sub tab-sub-menu tab-sub-equipment tab-orders" title="Bestellungen" ></span> | |
<div class="clear"></div> | |
<div class="tab tab-basis w100"> | |
<div class="tab tab-basis-character"> | |
<!--Personaldaten--> | |
<div class="float card"> | |
<div class="row"> | |
<div class="w80px labels color-darkred">Name</div> | |
<input class="buttoninput buttoninput-both w250px left" type="text" name="attr_name"></input> | |
<div class="w80px labels color-darkred right margin-right-10">Geschlecht</div> | |
<input class="buttoninput buttoninput-both w60px" type="text" name="attr_sex"></input> | |
</div> | |
<div class="row"> | |
<div class="w80px labels color-darkred">Metatyp</div> | |
<input class="buttoninput buttoninput-both w250px left" type="text" name="attr_metatype"></input> | |
<div class="w80px labels color-darkred right margin-right-10">Alter</div> | |
<input class="buttoninput buttoninput-both w60px" type="text" name="attr_age"></input> | |
</div> | |
<div class="row"> | |
<div class="w80px labels color-darkred">Ethnie</div> | |
<input class="buttoninput buttoninput-both w250px left" type="text" name="attr_ethnicity"></input> | |
<div class="w80px labels color-darkred right margin-right-10">Größe</div> | |
<input class="buttoninput buttoninput-both w60px" type="text" name="attr_height"></input> | |
</div> | |
<div class="row"> | |
<div class="w110px labels color-darkred">Aktuelles Karma</div> | |
<input class="buttoninput buttoninput-both w50px" type="text" name="attr_karma_current" readonly></input> | |
<div class="w95px labels color-darkred right margin-right-10">Gesamtkarma</div> | |
<input class="buttoninput buttoninput-both w57px" type="text" name="attr_karma_total" readonly></input> | |
<div class="w80px labels color-darkred right margin-right-10">Gewicht</div> | |
<input class="buttoninput buttoninput-both w60px" type="text" name="attr_weight"></input> | |
</div> | |
<div class="row"> | |
<div class="w110px labels color-darkred">Straßenruf</div> | |
<input class="buttoninput buttoninput-both w50px" type="text" name="attr_reputation_street"></input> | |
<div class="w95px labels color-darkred right margin-right-10">Schlechter Ruf</div> | |
<input class="buttoninput buttoninput-both w57px" type="text" name="attr_reputation_bad"></input> | |
<div class="w80px labels color-darkred right margin-right-10">Prominenz</div> | |
<input class="buttoninput buttoninput-both w60px" type="text" name="attr_repuation_prominence"></input> | |
</div> | |
<div class="row"> | |
<div class="w80px labels color-darkred">Konto</div> | |
<input class="buttoninput buttoninput-both w80px right" type="text" name="attr_nuyen_aktuell" value="0"></input> | |
<span class="labels color-darkred margin-right-10">-</span> | |
<input class="buttoninput buttoninput-both w80px right" type="text" name="attr_nuyen_total" readonly></input> | |
<span class="labels color-darkred margin-right-10">=</span> | |
<input class="buttoninput buttoninput-both w80px right" type="text" name="attr_nuyen_neu" readonly></input> | |
</div> | |
</div><!--float--> | |
</div> | |
<div class="tab tab-basis-attributes"> | |
<div class="float card"> | |
<!-- Attributes --> | |
<div class="row labels color-darkred"> | |
<div class="w35px"></div> | |
<div class="w145px center">Basis/Mod/Total</div> | |
</div> | |
<div class="row"> | |
<div class="w35px labels color-darkred">KON</div> | |
<input class="buttoninput buttoninput-left" type="text" name="attr_kon_basis" value="0"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_kon_basis' value='@{hide_rolls_cmd} &{template:roll}{{color=darkred}}{{text=KON}}{{basis=@{kon_basis}}}{{mod=[[0@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{total=[[@{kon_basis}@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{erfolge=[[(@{kon_basis}@{cmd_use_edge_mod}@{cmd_injury_mod})d6@{cmd_use_edge_token}sacs5cs6>5]]}}@{cmd_use_edge_text}@{cmd_injury_text}'></button> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_kon_mod" value="0"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_kon_mod' value='@{hide_rolls_cmd} &{template:roll}{{color=darkred}}{{text=KON}}{{basis=@{kon_basis}}}{{mod=[[?{Mod|@{kon_mod}}@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{total=[[@{kon_basis}+?{Mod|@{kon_mod}}@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{erfolge=[[(@{kon_basis}+?{Mod|@{kon_mod}}@{cmd_use_edge_mod}@{cmd_injury_mod})d6@{cmd_use_edge_token}sacs5cs6>5]]}}@{cmd_use_edge_text}@{cmd_injury_text}'></button> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_kon" readonly="true"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_kon' value="@{hide_rolls_cmd} &{template:roll}{{color=darkred}}{{text=KON}}{{basis=@{kon_basis}}}{{mod=[[@{kon_mod}@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{total=[[@{kon}@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{erfolge=[[(@{kon_basis}+@{kon_mod}@{cmd_use_edge_mod}@{cmd_injury_mod})d6@{cmd_use_edge_token}sacs5cs6>5]]}}@{cmd_use_edge_text}@{cmd_injury_text}"></button> | |
</div> | |
<div class="row"> | |
<div class="w35px labels color-darkred">GES</div> | |
<input class="buttoninput buttoninput-left" type="text" name="attr_ges_basis" value="0"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_ges_basis' value='@{hide_rolls_cmd} &{template:roll}{{color=darkred}}{{text=GES}}{{basis=@{ges_basis}}}{{mod=[[0@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{total=[[@{ges_basis}@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{erfolge=[[(@{ges_basis}@{cmd_use_edge_mod}@{cmd_injury_mod})d6@{cmd_use_edge_token}sacs5cs6>5]]}}@{cmd_use_edge_text}@{cmd_injury_text}'></button> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_ges_mod" value="0"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_ges_mod' value='@{hide_rolls_cmd} &{template:roll}{{color=darkred}}{{text=GES}}{{basis=@{ges_basis}}}{{mod=[[?{Mod|@{ges_mod}}@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{total=[[@{ges_basis}+?{Mod|@{ges_mod}}@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{erfolge=[[(@{ges_basis}+?{Mod|@{ges_mod}}@{cmd_use_edge_mod}@{cmd_injury_mod})d6@{cmd_use_edge_token}sacs5cs6>5]]}}@{cmd_use_edge_text}@{cmd_injury_text}'></button> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_ges" readonly="true"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_ges' value="@{hide_rolls_cmd} &{template:roll}{{color=darkred}}{{text=GES}}{{basis=@{ges_basis}}}{{mod=[[@{ges_mod}@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{total=[[@{ges}@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{erfolge=[[(@{ges_basis}+@{ges_mod}@{cmd_use_edge_mod}@{cmd_injury_mod})d6@{cmd_use_edge_token}sacs5cs6>5]]}}@{cmd_use_edge_text}@{cmd_injury_text}"></button> | |
</div> | |
<div class="row"> | |
<div class="w35px labels color-darkred">REA</div> | |
<input class="buttoninput buttoninput-left" type="text" name="attr_rea_basis" value="0"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_rea_basis' value='@{hide_rolls_cmd} &{template:roll}{{color=darkred}}{{text=REA}}{{basis=@{rea_basis}}}{{mod=[[0@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{total=[[@{rea_basis}@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{erfolge=[[(@{rea_basis}@{cmd_use_edge_mod}@{cmd_injury_mod})d6@{cmd_use_edge_token}sacs5cs6>5]]}}@{cmd_use_edge_text}@{cmd_injury_text}'></button> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_rea_mod" value="0"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_rea_mod' value='@{hide_rolls_cmd} &{template:roll}{{color=darkred}}{{text=REA}}{{basis=@{rea_basis}}}{{mod=[[?{Mod|@{rea_mod}}@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{total=[[@{rea_basis}+?{Mod|@{rea_mod}}@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{erfolge=[[(@{rea_basis}+?{Mod|@{rea_mod}}@{cmd_use_edge_mod}@{cmd_injury_mod})d6@{cmd_use_edge_token}sacs5cs6>5]]}}@{cmd_use_edge_text}@{cmd_injury_text}'></button> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_rea" readonly="true"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_rea' value="@{hide_rolls_cmd} &{template:roll}{{color=darkred}}{{text=REA}}{{basis=@{rea_basis}}}{{mod=[[@{rea_mod}@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{total=[[@{rea}@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{erfolge=[[(@{rea_basis}+@{rea_mod}@{cmd_use_edge_mod}@{cmd_injury_mod})d6@{cmd_use_edge_token}sacs5cs6>5]]}}@{cmd_use_edge_text}@{cmd_injury_text}"></button> | |
</div> | |
<div class="row margin-bottom-10"> | |
<div class="w35px labels color-darkred">STR</div> | |
<input class="buttoninput buttoninput-left" type="text" name="attr_str_basis" value="0"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_str_basis' value='@{hide_rolls_cmd} &{template:roll}{{color=darkred}}{{text=STR}}{{basis=@{str_basis}}}{{mod=[[0@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{total=[[@{str_basis}@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{erfolge=[[(@{str_basis}@{cmd_use_edge_mod}@{cmd_injury_mod})d6@{cmd_use_edge_token}sacs5cs6>5]]}}@{cmd_use_edge_text}@{cmd_injury_text}'></button> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_str_mod" value="0"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_str_mod' value='@{hide_rolls_cmd} &{template:roll}{{color=darkred}}{{text=STR}}{{basis=@{str_basis}}}{{mod=[[?{Mod|@{str_mod}}@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{total=[[@{str_basis}+?{Mod|@{str_mod}}@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{erfolge=[[(@{str_basis}+?{Mod|@{str_mod}}@{cmd_use_edge_mod}@{cmd_injury_mod})d6@{cmd_use_edge_token}sacs5cs6>5]]}}@{cmd_use_edge_text}@{cmd_injury_text}'></button> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_str" readonly="true"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_str' value="@{hide_rolls_cmd} &{template:roll}{{color=darkred}}{{text=STR}}{{basis=@{str_basis}}}{{mod=[[@{str_mod}@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{total=[[@{str}@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{erfolge=[[(@{str_basis}+@{str_mod}@{cmd_use_edge_mod}@{cmd_injury_mod})d6@{cmd_use_edge_token}sacs5cs6>5]]}}@{cmd_use_edge_text}@{cmd_injury_text}"></button> | |
</div> | |
<div class="row"> | |
<div class="w35px labels color-darkblue">WIL</div> | |
<input class="buttoninput buttoninput-left" type="text" name="attr_wil_basis" value="0"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_wil_basis' value='@{hide_rolls_cmd} &{template:roll}{{color=darkblue}}{{text=WIL}}{{basis=@{wil_basis}}}{{mod=[[0@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{total=[[@{wil_basis}@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{erfolge=[[(@{wil_basis}@{cmd_use_edge_mod}@{cmd_injury_mod})d6@{cmd_use_edge_token}sacs5cs6>5]]}}@{cmd_use_edge_text}@{cmd_injury_text}'></button> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_wil_mod" value="0"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_wil_mod' value='@{hide_rolls_cmd} &{template:roll}{{color=darkblue}}{{text=WIL}}{{basis=@{wil_basis}}}{{mod=[[?{Mod|@{wil_mod}}@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{total=[[@{wil_basis}+?{Mod|@{wil_mod}}@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{erfolge=[[(@{wil_basis}+?{Mod|@{wil_mod}}@{cmd_use_edge_mod}@{cmd_injury_mod})d6@{cmd_use_edge_token}sacs5cs6>5]]}}@{cmd_use_edge_text}@{cmd_injury_text}'></button> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_wil" readonly="true"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_wil' value="@{hide_rolls_cmd} &{template:roll}{{color=darkblue}}{{text=WIL}}{{basis=@{wil_basis}}}{{mod=[[@{wil_mod}@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{total=[[@{wil}@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{erfolge=[[(@{wil_basis}+@{wil_mod}@{cmd_use_edge_mod}@{cmd_injury_mod})d6@{cmd_use_edge_token}sacs5cs6>5]]}}@{cmd_use_edge_text}@{cmd_injury_text}"></button> | |
</div> | |
<div class="row"> | |
<div class="w35px labels color-darkblue">LOG</div> | |
<input class="buttoninput buttoninput-left" type="text" name="attr_log_basis" value="0"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_log_basis' value='@{hide_rolls_cmd} &{template:roll}{{color=darkblue}}{{text=LOG}}{{basis=@{log_basis}}}{{mod=[[0@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{total=[[@{log_basis}@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{erfolge=[[(@{log_basis}@{cmd_use_edge_mod}@{cmd_injury_mod})d6@{cmd_use_edge_token}sacs5cs6>5]]}}@{cmd_use_edge_text}@{cmd_injury_text}'></button> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_log_mod" value="0"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_log_mod' value='@{hide_rolls_cmd} &{template:roll}{{color=darkblue}}{{text=LOG}}{{basis=@{log_basis}}}{{mod=[[?{Mod|@{log_mod}}@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{total=[[@{log_basis}+?{Mod|@{log_mod}}@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{erfolge=[[(@{log_basis}+?{Mod|@{log_mod}}@{cmd_use_edge_mod}@{cmd_injury_mod})d6@{cmd_use_edge_token}sacs5cs6>5]]}}@{cmd_use_edge_text}@{cmd_injury_text}'></button> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_log" readonly="true"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_log' value="@{hide_rolls_cmd} &{template:roll}{{color=darkblue}}{{text=LOG}}{{basis=@{log_basis}}}{{mod=[[@{log_mod}@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{total=[[@{log}@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{erfolge=[[(@{log_basis}+@{log_mod}@{cmd_use_edge_mod}@{cmd_injury_mod})d6@{cmd_use_edge_token}sacs5cs6>5]]}}@{cmd_use_edge_text}@{cmd_injury_text}"></button> | |
</div> | |
<div class="row"> | |
<div class="w35px labels color-darkblue">INT</div> | |
<input class="buttoninput buttoninput-left" type="text" name="attr_int_basis" value="0"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_int_basis' value='@{hide_rolls_cmd} &{template:roll}{{color=darkblue}}{{text=INT}}{{basis=@{int_basis}}}{{mod=[[0@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{total=[[@{int_basis}@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{erfolge=[[(@{int_basis}@{cmd_use_edge_mod}@{cmd_injury_mod})d6@{cmd_use_edge_token}sacs5cs6>5]]}}@{cmd_use_edge_text}@{cmd_injury_text}'></button> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_int_mod" value="0"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_int_mod' value='@{hide_rolls_cmd} &{template:roll}{{color=darkblue}}{{text=INT}}{{basis=@{int_basis}}}{{mod=[[?{Mod|@{int_mod}}@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{total=[[@{int_basis}+?{Mod|@{int_mod}}@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{erfolge=[[(@{int_basis}+?{Mod|@{int_mod}}@{cmd_use_edge_mod}@{cmd_injury_mod})d6@{cmd_use_edge_token}sacs5cs6>5]]}}@{cmd_use_edge_text}@{cmd_injury_text}'></button> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_int" readonly="true"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_int' value="@{hide_rolls_cmd} &{template:roll}{{color=darkblue}}{{text=INT}}{{basis=@{int_basis}}}{{mod=[[@{int_mod}@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{total=[[@{int}@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{erfolge=[[(@{int_basis}+@{int_mod}@{cmd_use_edge_mod}@{cmd_injury_mod})d6@{cmd_use_edge_token}sacs5cs6>5]]}}@{cmd_use_edge_text}@{cmd_injury_text}"></button> | |
</div> | |
<div class="row margin-bottom-10"> | |
<div class="w35px labels color-darkblue">CHA</div> | |
<input class="buttoninput buttoninput-left" type="text" name="attr_cha_basis" value="0"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_cha_basis' value='@{hide_rolls_cmd} &{template:roll}{{color=darkblue}}{{text=CHA}}{{basis=@{cha_basis}}}{{mod=[[0@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{total=[[@{cha_basis}@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{erfolge=[[(@{cha_basis}@{cmd_use_edge_mod}@{cmd_injury_mod})d6@{cmd_use_edge_token}sacs5cs6>5]]}}@{cmd_use_edge_text}@{cmd_injury_text}'></button> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_cha_mod" value="0"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_cha_mod' value='@{hide_rolls_cmd} &{template:roll}{{color=darkblue}}{{text=CHA}}{{basis=@{cha_basis}}}{{mod=[[?{Mod|@{cha_mod}}@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{total=[[@{cha_basis}+?{Mod|@{cha_mod}}@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{erfolge=[[(@{cha_basis}+?{Mod|@{cha_mod}}@{cmd_use_edge_mod}@{cmd_injury_mod})d6@{cmd_use_edge_token}sacs5cs6>5]]}}@{cmd_use_edge_text}@{cmd_injury_text}'></button> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_cha" readonly="true"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_cha' value="@{hide_rolls_cmd} &{template:roll}{{color=darkblue}}{{text=CHA}}{{basis=@{cha_basis}}}{{mod=[[@{cha_mod}@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{total=[[@{cha}@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{erfolge=[[(@{cha_basis}+@{cha_mod}@{cmd_use_edge_mod}@{cmd_injury_mod})d6@{cmd_use_edge_token}sacs5cs6>5]]}}@{cmd_use_edge_text}@{cmd_injury_text}"></button> | |
</div> | |
<div class="row"> | |
<div class="is-mage"> | |
<div class="w35px labels color-blueviolet">MAG</div> | |
<input class="buttoninput buttoninput-left" type="text" name="attr_mag_basis" value="0"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_mag_basis' value='@{hide_rolls_cmd} &{template:roll}{{color=blueviolet}}{{text=MAG}}{{basis=@{mag_basis}}}{{mod=[[0@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{total=[[@{mag_basis}@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{erfolge=[[(@{mag_basis}@{cmd_use_edge_mod}@{cmd_injury_mod})d6@{cmd_use_edge_token}sacs5cs6>5]]}}@{cmd_use_edge_text}@{cmd_injury_text}'></button> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_mag_mod" value="0"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_mag_mod' value='@{hide_rolls_cmd} &{template:roll}{{color=blueviolet}}{{text=MAG}}{{basis=@{mag_basis}}}{{mod=[[?{Mod|@{mag_mod}}@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{total=[[@{mag_basis}+?{Mod|@{mag_mod}}@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{erfolge=[[(@{mag_basis}+?{Mod|@{mag_mod}}@{cmd_use_edge_mod}@{cmd_injury_mod})d6@{cmd_use_edge_token}sacs5cs6>5]]}}@{cmd_use_edge_text}@{cmd_injury_text}'></button> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_mag" readonly="true"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_mag' value="@{hide_rolls_cmd} &{template:roll}{{color=blueviolet}}{{text=MAG}}{{basis=@{mag_basis}}}{{mod=[[@{mag_mod}@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{total=[[@{mag}@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{erfolge=[[(@{mag_basis}+@{mag_mod}@{cmd_use_edge_mod}@{cmd_injury_mod})d6@{cmd_use_edge_token}sacs5cs6>5]]}}@{cmd_use_edge_text}@{cmd_injury_text}"></button> | |
</div> | |
</div> | |
<div class="row"> | |
<div class="is-technomancer"> | |
<div class="w35px labels color-blueviolet">RES</div> | |
<input class="buttoninput buttoninput-left" type="text" name="attr_res_basis" value="0"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_res_basis' value='@{hide_rolls_cmd} &{template:roll}{{color=blueviolet}}{{text=RES}}{{basis=@{res_basis}}}{{mod=[[0@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{total=[[@{res_basis}@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{erfolge=[[(@{res_basis}@{cmd_use_edge_mod}@{cmd_injury_mod})d6@{cmd_use_edge_token}sacs5cs6>5]]}}@{cmd_use_edge_text}@{cmd_injury_text}'></button> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_res_mod" value="0"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_res_mod' value='@{hide_rolls_cmd} &{template:roll}{{color=blueviolet}}{{text=RES}}{{basis=@{res_basis}}}{{mod=[[?{Mod|@{res_mod}}@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{total=[[@{res_basis}+?{Mod|@{res_mod}}@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{erfolge=[[(@{res_basis}+?{Mod|@{res_mod}}@{cmd_use_edge_mod}@{cmd_injury_mod})d6@{cmd_use_edge_token}sacs5cs6>5]]}}@{cmd_use_edge_text}@{cmd_injury_text}'></button> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_res" readonly="true"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_res' value="@{hide_rolls_cmd} &{template:roll}{{color=blueviolet}}{{text=RES}}{{basis=@{res_basis}}}{{mod=[[@{res_mod}@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{total=[[@{res}@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{erfolge=[[(@{res_basis}+@{res_mod}@{cmd_use_edge_mod}@{cmd_injury_mod})d6@{cmd_use_edge_token}sacs5cs6>5]]}}@{cmd_use_edge_text}@{cmd_injury_text}"></button> | |
</div> | |
</div> | |
<div class="row"> | |
<div class="w35px labels color-blueviolet">EDG</div> | |
<input class="buttoninput buttoninput-left" type="text" name="attr_edg_basis" value="0"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_edg_basis' value='@{hide_rolls_cmd} &{template:roll}{{color=blueviolet}}{{text=EDG}}{{basis=@{edg_basis}}}{{mod=[[0@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{total=[[@{edg_basis}@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{erfolge=[[(@{edg_basis}@{cmd_use_edge_mod}@{cmd_injury_mod})d6@{cmd_use_edge_token}sacs5cs6>5]]}}@{cmd_use_edge_text}@{cmd_injury_text}'></button> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_edg_mod" value="0"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_edg_mod' value='@{hide_rolls_cmd} &{template:roll}{{color=blueviolet}}{{text=EDG}}{{basis=@{edg_basis}}}{{mod=[[?{Mod|@{edg_mod}}@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{total=[[@{edg_basis}+?{Mod|@{edg_mod}}@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{erfolge=[[(@{edg_basis}+?{Mod|@{edg_mod}}@{cmd_use_edge_mod}@{cmd_injury_mod})d6@{cmd_use_edge_token}sacs5cs6>5]]}}@{cmd_use_edge_text}@{cmd_injury_text}'></button> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_edg" readonly="true"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_edg' value="@{hide_rolls_cmd} &{template:roll}{{color=blueviolet}}{{text=EDG}}{{basis=@{edg_basis}}}{{mod=[[@{edg_mod}@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{total=[[@{edg}@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{erfolge=[[(@{edg_basis}+@{edg_mod}@{cmd_use_edge_mod}@{cmd_injury_mod})d6@{cmd_use_edge_token}sacs5cs6>5]]}}@{cmd_use_edge_text}@{cmd_injury_text}"></button> | |
</div> | |
</div><!--float--> | |
<!--Derived Attributes --> | |
<div class="float card"> | |
<!-- Attributes --> | |
<div class="row labels color-darkred"> | |
<div class="w40px"></div> | |
<div class="w145px center">Limits</div> | |
</div> | |
<div class="row"> | |
<div class="w40px labels color-darkred">Körp.</div> | |
<input class="buttoninput buttoninput-left" type="text" name="attr_klimit_basis" readonly></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_klimit_basis' value='@{hide_rolls_cmd} &{template:roll}{{erfolge=@{klimit_basis}}}{{text=Körperliches Limit}}'></button> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_klimit_mod" value="0"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_klimit_mod' value='@{hide_rolls_cmd} &{template:roll}{{erfolge=[[@{klimit_basis}+@{klimit_mod}]]}}{{text=Körperliches Limit}}'></button> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_klimit" readonly="true"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_klimit' value='@{hide_rolls_cmd} &{template:roll}{{erfolge=[[@{klimit_basis}+@{klimit_mod}]]}}{{text=Körperliches Limit}}'></button> | |
</div> | |
<div class="row"> | |
<div class="w40px labels color-darkblue">Geis.</div> | |
<input class="buttoninput buttoninput-left" type="text" name="attr_glimit_basis" readonly></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_glimit_basis' value='@{hide_rolls_cmd} &{template:roll}{{erfolge=@{glimit_basis}}}{{text=Geistiges Limit}}'></button> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_glimit_mod" value="0"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_glimit_mod' value='@{hide_rolls_cmd} &{template:roll}{{erfolge=[[@{glimit_basis}+@{glimit_mod}]]}}{{text=Geistiges Limit}}'></button> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_glimit" readonly="true"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_glimit' value='@{hide_rolls_cmd} &{template:roll}{{erfolge=[[@{glimit_basis}+@{glimit_mod}]]}}{{text=Geistiges Limit}}'></button> | |
</div> | |
<div class="row"> | |
<div class="w40px labels">Soz.</div> | |
<input class="buttoninput buttoninput-left" type="text" name="attr_slimit_basis" readonly></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_slimit_basis' value='@{hide_rolls_cmd} &{template:roll}{{erfolge=[[@{slimit_basis}]]}}{{text=Soziales Limit}}'></button> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_slimit_mod" value="0"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_slimit_mod' value='@{hide_rolls_cmd} &{template:roll}{{erfolge=[[@{slimit_basis}+@{slimit_mod}]]}}{{text=Soziales Limit}}'></button> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_slimit" readonly="true"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_slimit' value='@{hide_rolls_cmd} &{template:roll}{{erfolge=[[@{slimit_basis}+@{slimit_mod}]]}}{{text=Soziales Limit}}'></button> | |
</div> | |
<div class="row"> | |
<div class="is-mage"> | |
<div class="w40px labels color-blueviolet">Astral</div> | |
<input class="buttoninput buttoninput-left" type="text" name="attr_alimit_basis" readonly></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_alimit_basis' value='@{hide_rolls_cmd} &{template:roll}{{erfolge=[[@{alimit_basis}]]}}{{text=Astrales Limit}}'></button> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_alimit_mod" value="0"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_alimit_mod' value='@{hide_rolls_cmd} &{template:roll}{{erfolge=[[@{alimit_basis}+@{alimit_mod}]]}}{{text=Astrales Limit}}'></button> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_alimit" readonly="true"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_alimit' value='@{hide_rolls_cmd} &{template:roll}{{erfolge=[[@{alimit_basis}+@{alimit_mod}]]}}{{text=Astrales Limit}}'></button> | |
</div> | |
</div> | |
<input class="hidden" type="text" name="attr_initiative_basis_active" readonly="true"></input> | |
<input class="hidden" type="text" name="attr_initiative_mod_active" readonly="true"></input> | |
<input class="hidden" type="text" name="attr_initiative_wuerfel_active" readonly="true"></input> | |
<div class="row labels color-darkred"> | |
<div class="w40px"></div> | |
<div class="w140px center">Basis/Mod/+W6</div> | |
</div> | |
<div class="row color-darkred"> | |
<div class="w40px"> | |
<input class="ini_active ini_active_ini" type="radio" name="attr_ini_active" value="INI" checked="checked"/> | |
<span class="ini_active ini_active_ini" title="INI" ></span> | |
</div> | |
<input class="buttoninput buttoninput-left" type="text" name="attr_initiative_basis" readonly="true"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_initiative_basis' value='@{hide_rolls_cmd} &{template:roll}{{color=brown}}{{text=Initiative}}{{basis=[[@{rea}+@{int}]]}}{{mod=[[0@{cmd_injury_mod}]]}}{{total=[[@{rea}+@{int}@{cmd_injury_mod}]]+@{initiative_wuerfel}}}{{erfolge=[[[[@{rea}+@{int}@{cmd_injury_mod}]]+@{initiative_wuerfel}d6sacs>70cf<0 &{tracker}]]}}@{cmd_injury_text}'></button> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_initiative_mod" value="0"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_initiative_mod' value='@{hide_rolls_cmd} &{template:roll}{{color=brown}}{{text=Initiative}}{{basis=[[@{rea}+@{int}]]}}{{mod=[[?{Mod|@{initiative_mod}}@{cmd_injury_mod}]]}}{{total=[[@{rea}+@{int}+?{Mod|@{initiative_mod}}@{cmd_injury_mod}]]+@{initiative_wuerfel}}}{{erfolge=[[[[@{rea}+@{int}+?{Mod|@{initiative_mod}}@{cmd_injury_mod}]]+@{initiative_wuerfel}d6@{cmd_use_edge_token}sacs>70cf<0 &{tracker}]]}}@{cmd_injury_text}'></button> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_initiative_wuerfel" value="0"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_initiative_wuerfel' value='@{hide_rolls_cmd} &{template:roll}{{color=brown}}{{text=Initiative}}{{basis=[[@{rea}+@{int}]]}}{{mod=[[@{initiative_mod}@{cmd_injury_mod}]]}}{{total=[[@{rea}+@{int}+@{initiative_mod}@{cmd_injury_mod}]]+@{initiative_wuerfel}}}{{erfolge=[[[[@{rea}+@{int}+@{initiative_mod}@{cmd_injury_mod}]]+@{initiative_wuerfel}d6sacs>70cf<0 &{tracker}]]}}@{cmd_injury_text}'></button> | |
</div> | |
<div class="row color-black"> | |
<div class="show-matrix"> | |
<div class="w40px"> | |
<input class="ini_active ini_active_ar" type="radio" name="attr_ini_active" value="AR"/> | |
<span class="ini_active ini_active_ar" title="AR" ></span> | |
</div> | |
<input class="buttoninput buttoninput-left" type="text" name="attr_ar_initiative_basis" readonly="true"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_ar_initiative_basis' value='@{hide_rolls_cmd} &{template:roll}{{color=brown}}{{text=AR Initiative}}{{basis=[[@{rea}+@{int}]]}}{{mod=[[0@{cmd_injury_mod}]]}}{{total=[[@{rea}+@{int}@{cmd_injury_mod}]]+@{initiative_wuerfel}}}{{erfolge=[[[[@{rea}+@{int}@{cmd_injury_mod}]]+@{initiative_wuerfel}d6sacs>70cf<0 &{tracker}]]}}@{cmd_injury_text}'></button> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_ar_initiative_mod" value="0"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_ar_initiative_mod' value='@{hide_rolls_cmd} &{template:roll}{{color=brown}}{{text=AR Initiative}}{{basis=[[@{rea}+@{int}]]}}{{mod=[[?{Mod|@{initiative_mod}}@{cmd_injury_mod}]]}}{{total=[[@{rea}+@{int}+?{Mod|@{initiative_mod}}@{cmd_injury_mod}]]+@{initiative_wuerfel}}}{{erfolge=[[[[@{rea}+@{int}+?{Mod|@{initiative_mod}}@{cmd_injury_mod}]]+@{initiative_wuerfel}d6@{cmd_use_edge_token}sacs>70cf<0 &cf<0 &{tracker}]]}}'></button> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_ar_initiative_wuerfel" value="0"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_ar_initiative_wuerfel' value='@{hide_rolls_cmd} &{template:roll}{{color=brown}}{{text=AR Initiative}}{{basis=[[@{rea}+@{int}]]}}{{mod=[[@{initiative_mod}@{cmd_injury_mod}]]}}{{total=[[@{rea}+@{int}+@{initiative_mod}@{cmd_injury_mod}]]+@{initiative_wuerfel}}}{{erfolge=[[[[@{rea}+@{int}+@{initiative_mod}@{cmd_injury_mod}]]+@{initiative_wuerfel}d6sacs>70cf<0 &{tracker}]]}}@{cmd_injury_text}'></button> | |
</div> | |
</div> | |
<div class="row color-black"> | |
<div class="show-matrix"> | |
<div class="w40px"> | |
<input class="ini_active ini_active_vr_cold" type="radio" name="attr_ini_active" value="VRk"/> | |
<span class="ini_active ini_active_vr_cold" title="VRk" ></span> | |
</div> | |
<input class="buttoninput buttoninput-left" type="text" name="attr_vr_cold_initiative_basis" value="0"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_vr_cold_initiative_basis' value='@{hide_rolls_cmd} &{template:roll}{{color=brown}}{{text=VR Initiative}}{{basis=[[@{rea}+@{int}]]}}{{mod=[[0@{cmd_injury_mod}]]}}{{total=[[@{rea}+@{int}@{cmd_injury_mod}]]+@{initiative_wuerfel}}}{{erfolge=[[[[@{rea}+@{int}@{cmd_injury_mod}]]+@{initiative_wuerfel}d6sacs>70cf<0 &{tracker}]]}}@{cmd_injury_text}'></button> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_vr_cold_initiative_mod" value="0"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_vr_cold_initiative_mod' value='@{hide_rolls_cmd} &{template:roll}{{color=brown}}{{text=VR Initiative}}{{basis=[[@{rea}+@{int}]]}}{{mod=[[?{Mod|@{initiative_mod}}@{cmd_injury_mod}]]}}{{total=[[@{rea}+@{int}+?{Mod|@{initiative_mod}}@{cmd_injury_mod}]]+@{initiative_wuerfel}}}{{erfolge=[[[[@{rea}+@{int}+?{Mod|@{initiative_mod}}@{cmd_injury_mod}]]+@{initiative_wuerfel}d6@{cmd_use_edge_token}sacs>70cf<0 &cf<0 &{tracker}]]}}'></button> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_vr_cold_initiative_wuerfel" value="0"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_vr_cold_initiative_wuerfel' value='@{hide_rolls_cmd} &{template:roll}{{color=brown}}{{text=VR Initiative}}{{basis=[[@{rea}+@{int}]]}}{{mod=[[@{initiative_mod}@{cmd_injury_mod}]]}}{{total=[[@{rea}+@{int}+@{initiative_mod}@{cmd_injury_mod}]]+@{initiative_wuerfel}}}{{erfolge=[[[[@{rea}+@{int}+@{initiative_mod}@{cmd_injury_mod}]]+@{initiative_wuerfel}d6sacs>70cf<0 &{tracker}]]}}@{cmd_injury_text}'></button> | |
</div> | |
</div> | |
<div class="row color-black"> | |
<div class="show-matrix"> | |
<div class="w40px"> | |
<input class="ini_active ini_active_vr_hot" type="radio" name="attr_ini_active" value="VRh"/> | |
<span class="ini_active ini_active_vr_hot" title="VRh" ></span> | |
</div> | |
<input class="buttoninput buttoninput-left" type="text" name="attr_vr_hot_initiative_basis" value="0"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_vr_hot_initiative_basis' value='@{hide_rolls_cmd} &{template:roll}{{color=brown}}{{text=VR (heiß) Initiative}}{{basis=[[@{rea}+@{int}]]}}{{mod=[[0@{cmd_injury_mod}]]}}{{total=[[@{rea}+@{int}@{cmd_injury_mod}]]+@{initiative_wuerfel}}}{{erfolge=[[[[@{rea}+@{int}@{cmd_injury_mod}]]+@{initiative_wuerfel}d6sacs>70cf<0 &{tracker}]]}}@{cmd_injury_text}'></button> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_vr_hot_initiative_mod" value="0"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_vr_hot_initiative_mod' value='@{hide_rolls_cmd} &{template:roll}{{color=brown}}{{text=VR (heiß) Initiative}}{{basis=[[@{rea}+@{int}]]}}{{mod=[[?{Mod|@{initiative_mod}}@{cmd_injury_mod}]]}}{{total=[[@{rea}+@{int}+?{Mod|@{initiative_mod}}@{cmd_injury_mod}]]+@{initiative_wuerfel}}}{{erfolge=[[[[@{rea}+@{int}+?{Mod|@{initiative_mod}}@{cmd_injury_mod}]]+@{initiative_wuerfel}d6@{cmd_use_edge_token}sacs>70cf<0 &cf<0 &{tracker}]]}}'></button> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_vr_hot_initiative_wuerfel" value="0"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_vr_hot_initiative_wuerfel' value='@{hide_rolls_cmd} &{template:roll}{{color=brown}}{{text=VR (heiß) Initiative}}{{basis=[[@{rea}+@{int}]]}}{{mod=[[@{initiative_mod}@{cmd_injury_mod}]]}}{{total=[[@{rea}+@{int}+@{initiative_mod}@{cmd_injury_mod}]]+@{initiative_wuerfel}}}{{erfolge=[[[[@{rea}+@{int}+@{initiative_mod}@{cmd_injury_mod}]]+@{initiative_wuerfel}d6sacs>70cf<0 &{tracker}]]}}@{cmd_injury_text}'></button> | |
</div> | |
</div> | |
<div class="row color-blueviolet"> | |
<div class="is-mage"> | |
<div class="w40px"> | |
<input class="ini_active ini_active_astral" type="radio" name="attr_ini_active" value="Astral"/> | |
<span class="ini_active ini_active_astral" title="Astr."></span> | |
</div> | |
<input class="buttoninput buttoninput-left" type="text" name="attr_astral_initiative_basis" readonly="true"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_astral_initiative_basis' value='@{hide_rolls_cmd} &{template:roll}{{color=brown}}{{text=Astrale Initiative}}{{basis=[[@{rea}+@{int}]]}}{{mod=[[0@{cmd_injury_mod}]]}}{{total=[[@{rea}+@{int}@{cmd_injury_mod}]]+@{initiative_wuerfel}}}{{erfolge=[[[[@{rea}+@{int}@{cmd_injury_mod}]]+@{initiative_wuerfel}d6sacs>70cf<0 &{tracker}]]}}@{cmd_injury_text}'></button> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_astral_initiative_mod" value="0"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_astral_initiative_mod' value='@{hide_rolls_cmd} &{template:roll}{{color=brown}}{{text=Astrale Initiative}}{{basis=[[@{rea}+@{int}]]}}{{mod=[[?{Mod|@{initiative_mod}}@{cmd_injury_mod}]]}}{{total=[[@{rea}+@{int}+?{Mod|@{initiative_mod}}@{cmd_injury_mod}]]+@{initiative_wuerfel}}}{{erfolge=[[[[@{rea}+@{int}+?{Mod|@{initiative_mod}}@{cmd_injury_mod}]]+@{initiative_wuerfel}d6@{cmd_use_edge_token}sacs>70cf<0 &cf<0 &{tracker}]]}}'></button> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_astral_initiative_wuerfel" value="0"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_astral_initiative_wuerfel' value='@{hide_rolls_cmd} &{template:roll}{{color=brown}}{{text=Astrale Initiative}}{{basis=[[@{rea}+@{int}]]}}{{mod=[[@{initiative_mod}@{cmd_injury_mod}]]}}{{total=[[@{rea}+@{int}+@{initiative_mod}@{cmd_injury_mod}]]+@{initiative_wuerfel}}}{{erfolge=[[[[@{rea}+@{int}+@{initiative_mod}@{cmd_injury_mod}]]+@{initiative_wuerfel}d6sacs>70cf<0 &{tracker}]]}}@{cmd_injury_text}'></button> | |
</div> | |
</div> | |
</div><!--float--> | |
<div class="float card"> | |
<div class="row labels color-darkred"> | |
<div class="w65px"></div> | |
<div class="w145px center">Gehen/Laufen/Sprinten</div> | |
</div> | |
<div class="row labels color-darkred"> | |
<div class="w75px labels color-darkred">Bewegung</div> | |
<input class="buttoninput buttoninput-left" type="text" name="attr_bewegung_gehen" readonly="true"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_bewegung_gehen' value='!shadowrun --character @{character_id} --action move-reset'></button> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_bewegung_laufen" readonly="true"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_bewegung_laufen' value='!shadowrun --character @{character_id} --action run-reset'></button> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_bewegung_sprinten" readonly="true"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_bewegung_sprinten' value='!shadowrun --character @{character_id} --action sprint-reset'></button> | |
</div> | |
<div class="row labels color-darkred"> | |
<div class="w75px labels color-darkred">Mult/Mod</div> | |
<input class="buttoninput buttoninput-left" type="text" name="attr_bewegung_gehen_mult" value="2.0"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_bewegung_gehen_mult' value='!shadowrun --character @{character_id} --action move ?{Distanz|0}'></button> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_bewegung_laufen_mult" value="4.0"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_bewegung_laufen_mult' value='!shadowrun --character @{character_id} --action run ?{Distanz|0}'></button> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_bewegung_sprinten_mod" value="2"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_bewegung_sprinten_mod' value='!shadowrun --character @{character_id} --action sprint ?{Würfelpool|0}'></button> | |
</div> | |
<div class="row labels color-darkred"> | |
<div class="w65px"></div> | |
<div class="w145px center">Heben/Tragen/Stemmen</div> | |
</div> | |
<div class="row labels color-darkred"> | |
<div class="w75px labels color-darkred">Tragkraft</div> | |
<input class="buttoninput buttoninput-left" type="text" name="attr_tragkraft_heben" readonly="true"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_tragkraft_heben' value='!shadowrun --character @{character_id} --action heben-reset'></button> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_tragkraft_tragen" readonly="true"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_tragkraft_tragen' value='!shadowrun --character @{character_id} --action tragen-reset'></button> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_tragkraft_stemmen" readonly="true"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_tragkraft_stemmen' value='!shadowrun --character @{character_id} --action stemmen-reset'></button> | |
</div> | |
<div class="row labels color-darkred"> | |
<div class="w75px labels color-darkred">Mult</div> | |
<input class="buttoninput buttoninput-left" type="text" name="attr_tragkraft_heben_mult" value="15"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_tragkraft_heben_mult' value='!shadowrun --character @{character_id} --action heben'></button> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_tragkraft_tragen_mult" value="10"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_tragkraft_tragen_mult' value='!shadowrun --character @{character_id} --action tragen'></button> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_tragkraft_stemmen_mult" value="5"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_tragkraft_stemmen_mult' value='!shadowrun --character @{character_id} --action stemmen'></button> | |
</div> | |
<div class="row labels color-darkblue"> | |
<div class="w75px"></div> | |
<div class="w145px center">Basis/Mod/Total</div> | |
</div> | |
<div class="row labels color-darkblue"> | |
<div class="w75px labels color-darkblue">Selbstb.</div> | |
<input class="buttoninput buttoninput-left" type="text" name="attr_selbstbeherrschung_basis" value="@{cha}+@{wil}" disabled="true"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_selbstbeherrschung_basis' value='@{hide_rolls_cmd} &{template:roll}{{color=darkblue}}{{text=Selbstbeherrschung}}{{basis=@{selbstbeherrschung_basis}}}{{mod=[[0@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{total=[[@{selbstbeherrschung_basis}@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{erfolge=[[(@{selbstbeherrschung_basis}@{cmd_use_edge_mod}@{cmd_injury_mod})d6@{cmd_use_edge_token}sacs5cs6>5kh@{glimit}]]}}@{cmd_use_edge_text}@{cmd_injury_text}{{limit=@{glimit}}}'></button> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_selbstbeherrschung_mod" value="0"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_selbstbeherrschung_mod' value='@{hide_rolls_cmd} &{template:roll}{{color=darkblue}}{{text=Selbstbeherrschung}}{{basis=@{selbstbeherrschung_basis}}}{{mod=[[?{Mod|@{selbstbeherrschung_mod}}@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{total=[[@{selbstbeherrschung_basis}+?{Mod|@{selbstbeherrschung_mod}}@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{erfolge=[[(@{selbstbeherrschung_basis}+?{Mod|@{selbstbeherrschung_mod}}@{cmd_use_edge_mod}@{cmd_injury_mod})d6@{cmd_use_edge_token}sacs5cs6>5kh@{glimit}]]}}@{cmd_use_edge_text}@{cmd_injury_text}{{limit=@{glimit}}}'></button> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_selbstbeherrschung" readonly="true"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_selbstbeherrschung' value="@{hide_rolls_cmd} &{template:roll}{{color=darkblue}}{{text=Selbstbeherrschung}}{{basis=@{selbstbeherrschung_basis}}}{{mod=[[@{selbstbeherrschung_mod}@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{total=[[@{selbstbeherrschung}@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{erfolge=[[(@{selbstbeherrschung_basis}+@{selbstbeherrschung_mod}@{cmd_use_edge_mod}@{cmd_injury_mod})d6@{cmd_use_edge_token}sacs5cs6>5kh@{glimit}]]}}@{cmd_use_edge_text}@{cmd_injury_text}{{limit=@{glimit}}}"></button> | |
</div> | |
<div class="row labels color-darkblue"> | |
<div class="w75px labels color-darkblue">Erinnerung</div> | |
<input class="buttoninput buttoninput-left" type="text" name="attr_erinnerung_basis" value="@{log}+@{wil}" disabled="true"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_erinnerung_basis' value='@{hide_rolls_cmd} &{template:roll}{{color=darkblue}}{{text=Erinnerungsvermögen}}{{basis=@{erinnerung_basis}}}{{mod=[[0@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{total=[[@{erinnerung_basis}@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{erfolge=[[(@{erinnerung_basis}@{cmd_use_edge_mod}@{cmd_injury_mod})d6@{cmd_use_edge_token}sacs5cs6>5kh@{glimit}]]}}@{cmd_use_edge_text}@{cmd_injury_text}{{limit=@{glimit}}}'></button> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_erinnerung_mod" value="0"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_erinnerung_mod' value='@{hide_rolls_cmd} &{template:roll}{{color=darkblue}}{{text=Erinnerungsvermögen}}{{basis=@{erinnerung_basis}}}{{mod=[[?{Mod|@{erinnerung_mod}}@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{total=[[@{erinnerung_basis}+?{Mod|@{erinnerung_mod}}@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{erfolge=[[(@{erinnerung_basis}+?{Mod|@{erinnerung_mod}}@{cmd_use_edge_mod}@{cmd_injury_mod})d6@{cmd_use_edge_token}sacs5cs6>5kh@{glimit}]]}}@{cmd_use_edge_text}@{cmd_injury_text}{{limit=@{glimit}}}'></button> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_erinnerung" readonly="true"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_erinnerung' value="@{hide_rolls_cmd} &{template:roll}{{color=darkblue}}{{text=Erinnerungsvermögen}}{{basis=@{erinnerung_basis}}}{{mod=[[@{erinnerung_mod}@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{total=[[@{erinnerung}@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{erfolge=[[(@{erinnerung_basis}+@{erinnerung_mod}@{cmd_use_edge_mod}@{cmd_injury_mod})d6@{cmd_use_edge_token}sacs5cs6>5kh@{glimit}]]}}@{cmd_use_edge_text}@{cmd_injury_text}{{limit=@{glimit}}}"></button> | |
</div> | |
<div class="row labels color-darkblue"> | |
<div class="w75px labels color-darkblue">Menschenk.</div> | |
<input class="buttoninput buttoninput-left" type="text" name="attr_menschenkenntnis_basis" value="@{cha}+@{int}" disabled="true"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_menschenkenntnis_basis' value='@{hide_rolls_cmd} &{template:roll}{{color=darkblue}}{{text=Menschenkenntnis}}{{basis=@{menschenkenntnis_basis}}}{{mod=[[0@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{total=[[@{menschenkenntnis_basis}@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{erfolge=[[(@{menschenkenntnis_basis}@{cmd_use_edge_mod}@{cmd_injury_mod})d6@{cmd_use_edge_token}sacs5cs6>5kh@{glimit}]]}}@{cmd_use_edge_text}@{cmd_injury_text}{{limit=@{glimit}}}'></button> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_menschenkenntnis_mod" value="0"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_menschenkenntnis_mod' value='@{hide_rolls_cmd} &{template:roll}{{color=darkblue}}{{text=Menschenkenntnis}}{{basis=@{menschenkenntnis_basis}}}{{mod=[[?{Mod|@{menschenkenntnis_mod}}@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{total=[[@{menschenkenntnis_basis}+?{Mod|@{menschenkenntnis_mod}}@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{erfolge=[[(@{menschenkenntnis_basis}+?{Mod|@{menschenkenntnis_mod}}@{cmd_use_edge_mod}@{cmd_injury_mod})d6@{cmd_use_edge_token}sacs5cs6>5kh@{glimit}]]}}@{cmd_use_edge_text}@{cmd_injury_text}{{limit=@{glimit}}}'></button> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_menschenkenntnis" readonly="true"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_menschenkenntnis' value="@{hide_rolls_cmd} &{template:roll}{{color=darkblue}}{{text=Menschenkenntnis}}{{basis=@{menschenkenntnis_basis}}}{{mod=[[@{menschenkenntnis_mod}@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{total=[[@{menschenkenntnis}@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{erfolge=[[(@{menschenkenntnis_basis}+@{menschenkenntnis_mod}@{cmd_use_edge_mod}@{cmd_injury_mod})d6@{cmd_use_edge_token}sacs5cs6>5kh@{glimit}]]}}@{cmd_use_edge_text}@{cmd_injury_text}{{limit=@{glimit}}}"></button> | |
</div> | |
<!-- Essence --> | |
<div class="row labels color-darkred"> | |
<div class="w75px"></div> | |
<div class="w40px">Basis</div> | |
<div class="w40px">-</div> | |
<div class="w40px">Rest</div> | |
</div> | |
<div class="row labels color-blueviolet"> | |
<div class="w75px">Essenz</div> | |
<input class="buttoninput buttoninput-left" type="text" name="attr_ess_basis" value="0"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_ess_basis' value='@{hide_rolls_cmd} &{template:roll}{{text=Essenz (Max)}}{{erfolge=@{ess_basis}}}'></button> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_ess_mod" readonly></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_ess_mod' value='@{hide_rolls_cmd} &{template:roll}{{text=-Essenz}}{{erfolge=@{ess_mod}}}'></button> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_ess" readonly></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_ess' value='@{hide_rolls_cmd} &{template:roll}{{text=Essenz}}{{erfolge=[[round((@{ess_basis}-@{ess_mod})*100)/100]]}}}'></button> | |
</div> | |
<!-- Edgepoints --> | |
<div class="row labels color-darkred"> | |
<div class="w75px"></div> | |
<div class="w135px">Aktuell/Total</div> | |
</div> | |
<div class="row labels color-blueviolet"> | |
<div class="w75px">Edgepunkte</div> | |
<input class="buttoninput buttoninput-left" type="text" name="attr_edgepunkte_aktuell" value="0"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_edgepunkte_aktuell' value='!shadowrun --character @{character_id} --action edge-use'></button> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_edgpunkte_max" readonly ></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_edgepunkte_max' value='!shadowrun --character @{character_id} --action edge-refill'></button> | |
</div> | |
</div><!--float--> | |
</div><!--submenu: attributes--> | |
<div class="tab tab-basis-qualities"> | |
<div class="float card"> | |
<div class="row labels color-darkred"> | |
<div class="w230px">Vorteile</div> | |
</div> | |
<fieldset class="repeating_positivequalities"> | |
<input class="hidden" type="text" name="attr_positivequalities_id" value=""></input> | |
<div class="row"> | |
<input class="show-details" type="checkbox" name="attr_positivequalities_show_details"></input> | |
<span class="show-details color-darkred"></span> | |
<input class="buttoninput buttoninput-left w240px left" type="text" name="attr_positivequalities_name"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_positivequalities' value="@{hide_rolls_cmd} &{template:roll}{{color=purple}}{{text=@{positivequalities_name}}}{{desc=@{positivequalities_note}}}"></button> | |
<div class="details"> | |
<div class="labels color-darkred w100">Notizen</div> | |
<textarea name="attr_positivequalities_note" class="w95 h100px clear"></textarea> | |
</div> | |
</div> | |
</fieldset> | |
</div><!--float--> | |
<div class="float card"> | |
<div class="row labels color-darkred"> | |
<div class="w230px">Nachteile</div> | |
</div> | |
<fieldset class="repeating_negativequalities"> | |
<input class="hidden" type="text" name="attr_negativequalities_id" value=""></input> | |
<div class="row"> | |
<input class="show-details" type="checkbox" name="attr_negativequalities_show_details"></input> | |
<span class="show-details color-darkred"></span> | |
<input class="buttoninput buttoninput-both w240px left" type="text" name="attr_negativequalities_name"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_negativequalities' value="@{hide_rolls_cmd} &{template:roll}{{color=purple}}{{text=@{negativequalities_name}}}{{desc=@{negativequalities_note}}}"></button> | |
<div class="details"> | |
<div class="labels color-darkred w100">Notizen</div> | |
<textarea name="attr_negativequalities_note" class="w95 h100px clear"></textarea> | |
</div> | |
</div> | |
</fieldset> | |
</div><!--float--> | |
</div><!--submenu: qualities--> | |
<div class="tab tab-basis-description w100"> | |
<textarea name="attr_description_full" class="w95 h300px clear"></textarea> | |
</div><!--submenu: description--> | |
<div class="tab tab-basis-advancement"> | |
<div class="float card"> | |
<div class="row labels color-darkred"> | |
<div class="w50px">Datum</div> | |
<div class="w30px">Karma</div> | |
<div class="w270px center">Run</div> | |
</div> | |
<fieldset class="repeating_advancementkarma"> | |
<input class="hidden" type="text" name="attr_advancementkarma_id" value=""></input> | |
<div class="row"> | |
<input class="show-details" type="checkbox" name="attr_advancementkarma_show_details"></input> | |
<span class="show-details color-darkred"></span> | |
<input class="buttoninput buttoninput-left w70px left" type="text" name="attr_advancementkarma_date"></input> | |
<input class="buttoninput buttoninput-center w30px center" type="text" name="attr_advancementkarma_karma"></input> | |
<input class="buttoninput buttoninput-right w270px left" type="text" name="attr_advancementkarma_desc"></input> | |
<div class="details"> | |
<div class="labels color-darkred w100">Notizen</div> | |
<textarea name="attr_advancementkarma_note" class="w98 h100px clear"></textarea> | |
</div> | |
</div> | |
</fieldset> | |
</div><!--float--> | |
<div class="float card"> | |
<div class="row labels color-darkred"> | |
<div class="w50px">Datum</div> | |
<div class="w30px">Nuyen</div> | |
<div class="w270px center">Run</div> | |
</div> | |
<fieldset class="repeating_advancementnuyen"> | |
<input class="hidden" type="text" name="attr_advancementnuyen_id" value=""></input> | |
<div class="row"> | |
<input class="show-details" type="checkbox" name="attr_advancementnuyen_show_details"></input> | |
<span class="show-details color-darkred"></span> | |
<input class="buttoninput buttoninput-left w70px left" type="text" name="attr_advancementnuyen_date"></input> | |
<input class="buttoninput buttoninput-center w50px center" type="text" name="attr_advancementnuyen_nuyen"></input> | |
<input class="buttoninput buttoninput-right w270px left" type="text" name="attr_advancementnuyen_desc"></input> | |
<div class="details"> | |
<div class="labels color-darkred w100">Notizen</div> | |
<textarea name="attr_advancementnuyen_note" class="w98 h100px clear"></textarea> | |
</div> | |
</div> | |
</fieldset> | |
</div><!--float--> | |
</div><!--submenu: advancement--> | |
<div class="tab tab-basis-settings w100"> | |
<div class="float card"> | |
<div class="row labels color-darkred"> | |
<div class="w180px center">Magie</div> | |
</div> | |
<div class="row labels color-darkred"> | |
<div class="w160px">Ist Magier?</div> | |
<input class="buttoninput buttoninput-both" type="checkbox" name="attr_settings_is_mage" checked="checked"></input> | |
</div> | |
<div class="row labels color-darkred"> | |
<div class="w160px">Besitzt Spruchzauberei?</div> | |
<input class="buttoninput buttoninput-both" type="checkbox" name="attr_settings_has_spellcasting" checked="checked"></input> | |
</div> | |
<div class="row labels color-darkred"> | |
<div class="w160px">Besitzt Alchemie?</div> | |
<input class="buttoninput buttoninput-both" type="checkbox" name="attr_settings_has_alchemy" checked="checked"></input> | |
</div> | |
<div class="row labels color-darkred"> | |
<div class="w160px">Besitzt Beschwörung?</div> | |
<input class="buttoninput buttoninput-both" type="checkbox" name="attr_settings_has_summoning" checked="checked"></input> | |
</div> | |
<div class="row labels color-darkred"> | |
<div class="w160px">Besitzt Ritualmagie?</div> | |
<input class="buttoninput buttoninput-both" type="checkbox" name="attr_settings_has_rituals" checked="checked"></input> | |
</div> | |
<div class="row labels color-darkred"> | |
<div class="w160px">Besitzt Adeptenkräfte?</div> | |
<input class="buttoninput buttoninput-both" type="checkbox" name="attr_settings_has_adeptpowers" checked="checked"></input> | |
</div> | |
</div><!--float--> | |
<div class="float card"> | |
<div class="row labels color-darkred"> | |
<div class="w180px center">Matrix</div> | |
</div> | |
<div class="row labels color-darkred"> | |
<div class="w160px">Zeige Matrixtab</div> | |
<input class="buttoninput buttoninput-both" type="checkbox" name="attr_settings_show_matrix" checked="checked"></input> | |
</div> | |
<div class="row labels color-darkred"> | |
<div class="w160px">Ist Technomancer?</div> | |
<input class="buttoninput buttoninput-both" type="checkbox" name="attr_settings_is_technomancer" checked="checked"></input> | |
</div> | |
</div><!--float--> | |
</div><!--submenu: description--> | |
</div><!--attributes--> | |
<!-- Tab Skills --> | |
<div class="tab tab-skills"> | |
<div class="tab tab-skills-actionskills"> | |
<!--Action skills--> | |
<div class="float card"> | |
<!-- Skills --> | |
<div class="row labels color-darkred"> | |
<div class="w230px">Aktionsfertigkeiten</div> | |
<div class="w80px center">Attribut</div> | |
<div class="w50px center">Stufe</div> | |
<div class="w40px center">Mod</div> | |
<div class="w45px center">Total</div> | |
</div> | |
<fieldset class="repeating_skillsaction"> | |
<input class="hidden" type="text" name="attr_skillsaction_id" value=""></input> | |
<div class="row color-darkred"> | |
<input class="show-details" type="checkbox" name="attr_skillsaction_show_details"></input> | |
<span class="show-details color-darkred"></span> | |
<input class="buttoninput buttoninput-left w240px left" type="text" name="attr_skillsaction_name"></input> | |
<select name="attr_skillsaction_attribut" class="buttoninput buttoninput-center w60px"> | |
<option value="@{kon}">KON</option> | |
<option value="@{ges}">GES</option> | |
<option value="@{rea}">REA</option> | |
<option value="@{str}">STR</option> | |
<option value="@{wil}">WIL</option> | |
<option value="@{log}">LOG</option> | |
<option value="@{int}">INT</option> | |
<option value="@{cha}">CHA</option> | |
<option value="@{mag}">MAG</option> | |
<option value="@{res}">RES</option> | |
</select> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_skillsaction_att_display" value="@{skillsaction_attribut}" disabled="true"></input> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_skillsaction_basis" value="0"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_skillsaction_basis' value='@{hide_rolls_cmd} &{template:roll}{{text=@{skillsaction_name}}}{{color=darkred}}@{skillsaction_desc}{{basis=[[@{skillsaction_attribut}+@{skillsaction_basis}]]}}{{mod=[[0@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{total=[[@{skillsaction_attribut}+@{skillsaction_basis}@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{erfolge=[[(@{skillsaction_attribut}+@{skillsaction_basis}@{cmd_use_edge_mod}@{cmd_injury_mod})d6@{cmd_use_edge_token}sacs5cs6>5@{skillsaction_limit_formatted}]]}}@{cmd_use_edge_text}@{cmd_injury_text}@{skillsaction_limit_text}"'></button> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_skillsaction_mod" value="0"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_skillsaction_mod' value='@{hide_rolls_cmd} &{template:roll}{{text=@{skillsaction_name}}}{{color=darkred}}@{skillsaction_desc}{{basis=[[@{skillsaction_attribut}+@{skillsaction_basis}]]}}{{mod=[[?{Mod|@{skillsaction_mod}}@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{total=[[@{skillsaction_attribut}+@{skillsaction_basis}+?{Mod|@{skillsaction_mod}}@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{erfolge=[[(@{skillsaction_attribut}+@{skillsaction_basis}+?{Mod|@{skillsaction_mod}}@{cmd_use_edge_mod}@{cmd_injury_mod})d6@{cmd_use_edge_token}sacs5cs6>5@{skillsaction_limit_formatted}]]}}@{cmd_use_edge_text}@{cmd_injury_text}@{skillsaction_limit_text}"'></button> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_skillsaction" value="@{skillsaction_attribut}+@{skillsaction_basis}+@{skillsaction_mod}" disabled="true"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_skillsaction' value='@{hide_rolls_cmd} &{template:roll}{{text=@{skillsaction_name}}}{{color=darkred}}@{skillsaction_desc}{{basis=[[@{skillsaction_attribut}+@{skillsaction_basis}]]}}{{mod=[[@{skillsaction_mod}@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{total=[[@{skillsaction_attribut}+@{skillsaction_basis}+@{skillsaction_mod}@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{erfolge=[[(@{skillsaction_attribut}+@{skillsaction_basis}+@{skillsaction_mod}@{cmd_use_edge_mod}@{cmd_injury_mod})d6@{cmd_use_edge_token}sacs5cs6>5@{skillsaction_limit_formatted}]]}}@{cmd_use_edge_text}@{cmd_injury_text}@{skillsaction_limit_text}"'></button> | |
<div class="details"> | |
<div class="labels color-darkred w100">Notizen</div> | |
<textarea name="attr_skillsaction_note" class="w97 h100px clear"></textarea> | |
<div class="row labels color-darkred"> | |
<div class="w100px">Limit</div> | |
<div class="">Mod</div> | |
<div class="">Total</div> | |
<div class="">Inkl. Notiz</div> | |
</div> | |
<div class="row"> | |
<select name="attr_skillsaction_limit" class="buttoninput buttoninput-left w85px"> | |
<option value="99">Keines</option> | |
<option value="@{klimit}">Körperlich</option> | |
<option value="@{glimit}">Geistig</option> | |
<option value="@{slimit}">Sozial</option> | |
<option value="@{alimit}">Astral</option> | |
<option value="0">Sonstiges</option> | |
</select> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_skillsaction_limit_display" readonly></input> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_skillsaction_limit_mod" value="0"></input> | |
<input class="buttoninput buttoninput-right" type="text" name="attr_skillsaction_limit_total" readonly></input> | |
<input class="buttoninput margin-left-25" type="checkbox" name="attr_skillsaction_include_note" ></input> | |
<input class="hidden" type="text" name="attr_skillsaction_limit_text" ></input> | |
<input class="hidden" type="text" name="attr_skillsaction_limit_formatted"></input> | |
<input class="hidden" type="text" name="attr_skillsaction_desc"></input> | |
</div> | |
</div> | |
</div> | |
</fieldset> | |
</div><!--float--> | |
</div><!--actionskills--> | |
<div class="tab tab-skills-knowledgeskills"> | |
<!--Knowledge skills--> | |
<div class="float card"> | |
<!-- Skills --> | |
<div class="row labels color-darkblue"> | |
<div class="w230px">Wissensfertigkeiten</div> | |
<div class="w80px center">Attribut</div> | |
<div class="w50px center">Basis</div> | |
<div class="w40px center">Mod</div> | |
<div class="w45px center">Total</div> | |
</div> | |
<fieldset class="repeating_skillsknowledge"> | |
<input class="hidden" type="text" name="attr_skillsknowledge_id" value=""></input> | |
<div class="row color-darkblue"> | |
<input class="show-details" type="checkbox" name="attr_skillsknowledge_show_details"></input> | |
<span class="show-details color-darkblue"></span> | |
<input class="buttoninput buttoninput-left w240px left" type="text" name="attr_skillsknowledge_name"></input> | |
<select name="attr_skillsknowledge_attribut" class="buttoninput buttoninput-center w60px"> | |
<option value="@{log}">LOG</option> | |
<option value="@{int}">INT</option> | |
</select> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_skillsknowledge_att_display" value="@{skillsknowledge_attribut}" disabled="true"></input> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_skillsknowledge_basis" value="0"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_skillsknowledge_basis' value='@{hide_rolls_cmd} &{template:roll}{{text=@{skillsknowledge_name}}}{{color=darkblue}}@{skillsknowledge_desc}{{basis=[[@{skillsknowledge_attribut}+@{skillsknowledge_basis}]]}}{{mod=[[0@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{total=[[@{skillsknowledge_attribut}+@{skillsknowledge_basis}@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{erfolge=[[(@{skillsknowledge_attribut}+@{skillsknowledge_basis}@{cmd_use_edge_mod}@{cmd_injury_mod})d6@{cmd_use_edge_token}sacs5cs6>5@{skillsknowledge_limit_formatted}]]}}@{cmd_use_edge_text}@{cmd_injury_text}@{skillsknowledge_limit_text}"'></button> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_skillsknowledge_mod" value="0"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_skillsknowledge_mod' value='@{hide_rolls_cmd} &{template:roll}{{text=@{skillsknowledge_name}}}{{color=darkblue}}@{skillsknowledge_desc}{{basis=[[@{skillsknowledge_attribut}+@{skillsknowledge_basis}]]}}{{mod=[[?{Mod|@{skillsknowledge_mod}}@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{total=[[@{skillsknowledge_attribut}+@{skillsknowledge_basis}+?{Mod|@{skillsknowledge_mod}}@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{erfolge=[[(@{skillsknowledge_attribut}+@{skillsknowledge_basis}+?{Mod|@{skillsknowledge_mod}}@{cmd_use_edge_mod}@{cmd_injury_mod})d6@{cmd_use_edge_token}sacs5cs6>5@{skillsknowledge_limit_formatted}]]}}@{cmd_use_edge_text}@{cmd_injury_text}@{skillsknowledge_limit_text}"'></button> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_skillsknowledge" value="@{skillsknowledge_attribut}+@{skillsknowledge_basis}+@{skillsknowledge_mod}" disabled="true"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_skillsknowledge' value='@{hide_rolls_cmd} &{template:roll}{{text=@{skillsknowledge_name}}}{{color=darkblue}}@{skillsknowledge_desc}{{basis=[[@{skillsknowledge_attribut}+@{skillsknowledge_basis}]]}}{{mod=[[@{skillsknowledge_mod}@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{total=[[@{skillsknowledge_attribut}+@{skillsknowledge_basis}+@{skillsknowledge_mod}@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{erfolge=[[(@{skillsknowledge_attribut}+@{skillsknowledge_basis}+@{skillsknowledge_mod}@{cmd_use_edge_mod}@{cmd_injury_mod})d6@{cmd_use_edge_token}sacs5cs6>5@{skillsknowledge_limit_formatted}]]}}@{cmd_use_edge_text}@{cmd_injury_text}@{skillsknowledge_limit_text}"'></button> | |
<div class="details"> | |
<div class="labels color-darkblue w100">Notizen</div> | |
<textarea name="attr_skillsknowledge_note" class="w97 h100px clear"></textarea> | |
<div class="row labels color-darkblue"> | |
<div class="w100px">Limit</div> | |
<div class="">Mod</div> | |
<div class="">Total</div> | |
<div class="">Inkl. Notiz</div> | |
</div> | |
<div class="row"> | |
<select name="attr_skillsknowledge_limit" class="buttoninput buttoninput-left w85px"> | |
<option value="99">Keines</option> | |
<option value="@{glimit}">Geistig</option> | |
<option value="0">Sonstiges</option> | |
</select> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_skillsknowledge_limit_display" readonly></input> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_skillsknowledge_limit_mod" value="0"></input> | |
<input class="buttoninput buttoninput-right" type="text" name="attr_skillsknowledge_limit_total" readonly></input> | |
<input class="buttoninput margin-left-25" type="checkbox" name="attr_skillsknowledge_include_note" ></input> | |
<input class="hidden" type="text" name="attr_skillsknowledge_limit_text" ></input> | |
<input class="hidden" type="text" name="attr_skillsknowledge_limit_formatted"></input> | |
<input class="hidden" type="text" name="attr_skillsknowledge_desc"></input> | |
</div> | |
</div> | |
</div> | |
</fieldset> | |
</div><!--float--> | |
</div><!--knowledgeskillsskills--> | |
</div><!--skills--> | |
<div class="tab tab-combat"> | |
<div class="float card"> | |
<!-- Physical Monitor --> | |
<div class="row"> | |
<input class="buttoninput buttoninput-left" type="text" name="attr_zmp_aktuell" value="0"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_zmp_aktuell' value='!shadowrun --character @{character_id} --action physical-damage --value ?{Schaden|0} --resist ?{Widerstandspool|0}'></button> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_zmp_maximum" value="0"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_zmp_maximum' value='!shadowrun --character @{character_id} --action physical-healing --pool ?{Heilungspool|0}'></button> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_zmp_toleranz" value="3"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_zmp_toleranz' value='!shadowrun --character @{character_id} --action physical-reset'></button> | |
</div> | |
<div class="sheet-row sheet-labels sheet-center sheet-color-darkred">Körperlich</div> | |
</div><!--float--> | |
<div class="float card"> | |
<!-- Mental Monitor --> | |
<div class="row"> | |
<input class="buttoninput buttoninput-left" type="text" name="attr_zmg_aktuell" value="0"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_zmg_aktuell' value='!shadowrun --character @{character_id} --action mental-damage --value ?{Schaden|0} --resist ?{Widerstandspool|0}'></button> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_zmg_maximum" value="0"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_zmg_maximum' value='!shadowrun --character @{character_id} --action mental-healing --pool ?{Heilungspool|0}'></button> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_zmg_toleranz" value="3"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_zmg_toleranz' value='!shadowrun --character @{character_id} --action mental-reset'></button> | |
</div> | |
<div class="sheet-row sheet-labels sheet-center sheet-color-darkblue">Geistig</div> | |
</div><!--float--> | |
<div class="float card"> | |
<!-- Overflow Monitor --> | |
<div class="row"> | |
<input class="buttoninput buttoninput-left" type="text" name="attr_overflow_aktuell" value="0"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_overflow_aktuell' value='!shadowrun --character @{character_id} --action overflow-damage --value ?{Schaden|0} --resist ?{Widerstandspool|0}'></button> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_overflow_maximum" value="0"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_overflow_maximum' value='!shadowrun --character @{character_id} --action overflow-healing --pool ?{Heilungspool|0}'></button> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_overflow_toleranz" value="3"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_overflow_toleranz' value='!shadowrun --character @{character_id} --action overflow-reset'></button> | |
</div> | |
<div class="sheet-row sheet-labels sheet-center sheet-color-black">Überzählig</div> | |
</div><!--float --> | |
<div class="float card"> | |
<!-- Modifikator --> | |
<div class="row"> | |
<input class="buttoninput buttoninput-left" type="text" name="attr_injury_mod" value="0"></input> | |
<input class="hidden" type="text" name="attr_injury_mod_negative" value="0"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_injury_mod' value='!shadowrun --character @{character_id} --action injury-recalc'></button> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_injury_ignore" value="0"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_injury_ignore' value='!shadowrun --character @{character_id} --action injury-reset'></button> | |
</div> | |
<div class="sheet-row sheet-labels sheet-center sheet-color-darkgreen">Mod/Ign.</div> | |
</div><!--float--> | |
<div class="float card"> | |
<!-- Modifikator --> | |
<div class="row"> | |
<input class="buttoninput buttoninput-left" type="text" name="attr_recoil" value="0"></input> | |
<input class="hidden" type="text" name="attr_recoil_negative" value="0"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_reset_recoil' value='!shadowrun --character @{character_id} --action recoil-reset'></button> | |
</div> | |
<div class="sheet-row sheet-labels sheet-center sheet-color-darkslategray">Rückstoß</div> | |
</div><!--float--> | |
<div class="clear"></div> | |
<div class="float card wm810px"> | |
<div class="row labels color-darkred"> | |
<div class="w240px">Fernkampfwaffe</div> | |
<div class="w60px center">Pool</div> | |
<div class="w35px center">Tarn</div> | |
<div class="w15px center">-0</div> | |
<div class="w25px center">-1</div> | |
<div class="w30px center">-3</div> | |
<div class="w30px center">-6</div> | |
<div class="w35px center">DV</div> | |
<div class="w25px center">Präz</div> | |
<div class="w20px center">DK</div> | |
<div class="w30px center">RK</div> | |
<div class="w70px center">Modus</div> | |
<div class="w55px center">Munition</div> | |
<div class="w55px center">Magazin</div> | |
</div> | |
<fieldset class="repeating_weaponsranged"> | |
<input class="hidden" type="text" name="attr_weaponsranged_id" value=""></input> | |
<div class="row"> | |
<input class="show-details" type="checkbox" name="attr_weaponsranged_show_details"></input> | |
<span class="show-details color-darkred"></span> | |
<input class="buttoninput buttoninput-left w250px left" type="text" name="attr_weaponsranged_name" value="0"></input> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_weaponsranged" value="0"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_weaponsranged' value='!shadowrun --character @{character_id} --action weaponsranged-attack --id @{weaponsranged_id} --mod ?{Modifikator|-@{recoil}@{cmd_injury_mod}} --bullets ?{Kugeln|1}'></button> | |
<input class="buttoninput buttoninput-both" type="text" name="attr_weaponsranged_tarn" value="0"></input> | |
<input class="buttoninput buttoninput-left" type="text" name="attr_weaponsranged_short" value="0"></input> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_weaponsranged_medium" value="0"></input> | |
<input class="buttoninput buttoninput-center w35px" type="text" name="attr_weaponsranged_long" value="0"></input> | |
<input class="buttoninput buttoninput-right w35px" type="text" name="attr_weaponsranged_extreme" value="0"></input> | |
<input class="buttoninput buttoninput-left w40px" type="text" name="attr_weaponsranged_dv" value="0"></input> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_weaponsranged_precision" value="0"></input> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_weaponsranged_dk" value="0"></input> | |
<input class="buttoninput buttoninput-right" type="text" name="attr_weaponsranged_rk" value="0"></input> | |
<input class="buttoninput buttoninput-left w75px" type="text" name="attr_weaponsranged_mod" value="0"></input> | |
<input class="buttoninput buttoninput-center w30px" type="text" name="attr_weaponsranged_ammunition_current" value="0"></input> | |
<input class="buttoninput buttoninput-center w30px" type="text" name="attr_weaponsranged_ammunition_maximum" value="0"></input> | |
<input class="buttoninput buttoninput-center w65px" type="text" name="attr_weaponsranged_magazin" value="0"></input> | |
<button class="buttoninput buttoninput-right rangeweapons-pool" type='roll' name='roll_weaponsranged_magazin' value='!shadowrun --character @{character_id} --action weaponsranged-reload --id @{weaponsranged_id}'></button> | |
<div class="details"> | |
<div class="labels color-darkred w100">Notizen, Ausrüstung, etc</div> | |
<textarea name="attr_weaponsranged_note" class="w98 h100px clear"></textarea> | |
</div> | |
</div> | |
</fieldset><!--rangedweapons--> | |
</div><!--float--> | |
<div class="float card"> | |
<div class="row labels color-darkred"> | |
<div class="w240px">Nahkampfwaffe</div> | |
<div class="w60px">Pool</div> | |
<div class="w35px">Tarn</div> | |
<div class="w20px center">R</div> | |
<div class="w35px center">DV</div> | |
<div class="w35px center">Präz.</div> | |
<div class="w30px center">DK</div> | |
</div> | |
<fieldset class="repeating_weaponsmelee"> | |
<input class="hidden" type="text" name="attr_weaponsmelee_id" value=""></input> | |
<div class="row"> | |
<input class="show-details" type="checkbox" name="attr_weaponsmelee_show_details"></input> | |
<span class="show-details color-darkred"></span> | |
<input class="buttoninput buttoninput-left w250px left" type="text" name="attr_weaponsmelee_name" value="0"></input> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_weaponsmelee" value="0"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_weaponsmelee' value='@{hide_rolls_cmd} &{template:meleeattack}{{text=schlägt zu mit @{weaponsmelee_name}}}{{basis=@{weaponsmelee}}}{{mod=[[?{Modifikator?|0}@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{pool=[[@{weaponsmelee}+[[?{Modifikator?|0}@{cmd_use_edge_mod}@{cmd_injury_mod}]]]]}}{{erfolge=[[[[@{weaponsmelee}+[[?{Modifikator?|0}@{cmd_use_edge_mod}@{cmd_injury_mod}]]]]d6@{cmd_use_edge_token}sacs5cs6>5kh@{weaponsmelee_precision}]]}}{{schaden=@{weaponsmelee_dv}}}{{dk=@{weaponsmelee_dk}}}{{praezision=@{weaponsmelee_precision}}}{{reichweite=@{weaponsmelee_range}}}'></button> | |
<input class="buttoninput buttoninput-both" type="text" name="attr_weaponsmelee_tarn" value="0"></input> | |
<input class="buttoninput buttoninput-left" type="text" name="attr_weaponsmelee_range" value="0"></input> | |
<input class="buttoninput buttoninput-center w45px" type="text" name="attr_weaponsmelee_dv" value="0"></input> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_weaponsmelee_precision" value="0"></input> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_weaponsmelee_dk" value="0"></input> | |
<button class="buttoninput buttoninput-right rangeweapons-pool" type='roll' name='roll_weaponsmelee_dk' value='@{hide_rolls_cmd} Noch nicht implementiert @{weaponsmelee_id}'></button> | |
<div class="details"> | |
<div class="labels color-darkred w100">Notizen, Ausrüstung, etc</div> | |
<textarea name="attr_weaponsmelee_note" class="w97 h100px clear"></textarea> | |
</div> | |
</div> | |
</fieldset><!--meleeweapons--> | |
</div> | |
<div class="float card"> | |
<div class="row labels color-darkred"> | |
<div class="w155px">Würfelpool</div> | |
<div class="w45px">Wert</div> | |
<div class="w45px">Mod</div> | |
<div class="w45px">Total</div> | |
</div> | |
<fieldset class="repeating_combatpools"> | |
<input class="hidden" type="text" name="attr_combatpools_id" value=""></input> | |
<div class="row"> | |
<input class="show-details" type="checkbox" name="attr_combatpools_show_details"></input> | |
<span class="show-details color-darkred"></span> | |
<input class="buttoninput buttoninput-left w155px left" type="text" name="attr_combatpools_name" value="0"></input> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_combatpools_basis" value="0"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_combatpools_basis' value='@{hide_rolls_cmd} &{template:roll}{{color=forestgreen}}{{text=@{combatpools_name}}}{{basis=@{combatpools_basis}}}{{mod=[[0@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{total=[[@{combatpools_basis}@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{erfolge=[[(@{combatpools_basis}+0@{cmd_use_edge_mod}@{cmd_injury_mod})d6@{cmd_use_edge_token}sacs5cs6>5]]}}@{cmd_use_edge_text}@{cmd_injury_text}'></button> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_combatpools_mod" value="0"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_combatpools_mod' value='@{hide_rolls_cmd} &{template:roll}{{color=forestgreen}}{{text=@{combatpools_name}}}{{basis=@{combatpools_basis}}}{{mod=[[?{Modifikator|@{combatpools_mod}}@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{total=[[@{combatpools_basis}+?{Modifikator|@{combatpools_mod}}@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{erfolge=[[(@{combatpools_basis}+?{Modifikator|@{combatpools_mod}}@{cmd_use_edge_mod}@{cmd_injury_mod})d6@{cmd_use_edge_token}sacs5cs6>5]]}}@{cmd_use_edge_text}@{cmd_injury_text}'></button> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_combatpools" value="@{combatpools_basis}+@{combatpools_mod}" disabled="disabled"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_combatpools' value='@{hide_rolls_cmd} &{template:roll}{{color=forestgreen}}{{text=@{combatpools_name}}}{{basis=@{combatpools_basis}}}{{mod=[[0@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{total=[[@{combatpools_basis}@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{erfolge=[[(@{combatpools_basis}+0@{cmd_use_edge_mod}@{cmd_injury_mod})d6@{cmd_use_edge_token}sacs5cs6>5]]}}@{cmd_use_edge_text}@{cmd_injury_text}'></button> | |
<div class="details"> | |
<div class="labels color-darkred w100">Notizen, Ausrüstung, etc</div> | |
<textarea name="attr_combatpools_note" class="w96 h100px clear"></textarea> | |
</div> | |
</div> | |
</fieldset><!--pools, dodge, etc--> | |
</div> | |
<div class="float card"> | |
<div class="row labels color-darkred"> | |
<div class="w240px">Panzerung</div> | |
<div class="w45px">Wert</div> | |
<div class="w45px">Mod</div> | |
<div class="w45px">Total</div> | |
<div class="w45px">Pool</div> | |
</div> | |
<fieldset class="repeating_armor"> | |
<input class="hidden" type="text" name="attr_armor_id" value=""></input> | |
<div class="row"> | |
<input class="show-details" type="checkbox" name="attr_armor_show_details"></input> | |
<span class="show-details color-darkred"></span> | |
<input class="buttoninput buttoninput-left w250px left" type="text" name="attr_armor_name" value="0"></input> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_armor_basis" value="0"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_armor_basis' value='@{hide_rolls_cmd} &{template:roll}{{color=darkgoldenrod}}{{text=@{armor_name}}}{{basis=@{armor_basis}}}{{mod=[[0@{cmd_use_edge_mod}]]}}{{total=[[@{armor_basis}@{cmd_use_edge_mod}]]}}{{erfolge=[[(@{armor_basis}+0@{cmd_use_edge_mod})d6@{cmd_use_edge_token}sacs5cs6>5]]}}@{cmd_use_edge_text}'></button> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_armor_mod" value="0"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_armor_mod' value='@{hide_rolls_cmd} &{template:roll}{{color=darkgoldenrod}}{{text=@{armor_name}}}{{basis=@{armor_basis}}}{{mod=[[?{Modifikator|@{armor_mod}}@{cmd_use_edge_mod}]]}}{{total=[[@{armor_basis}+?{Modifikator|@{armor_mod}}@{cmd_use_edge_mod}]]}}{{erfolge=[[(@{armor_basis}+?{Modifikator|@{armor_mod}}@{cmd_use_edge_mod})d6@{cmd_use_edge_token}sacs5cs6>5]]}}@{cmd_use_edge_text}'></button> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_armor" value="@{armor_basis}+@{armor_mod}" disabled="disabled"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_armor' value='@{hide_rolls_cmd} &{template:roll}{{color=darkgoldenrod}}{{text=@{armor_name}}}{{basis=@{armor_basis}}}{{mod=[[@{armor_mod}@{cmd_use_edge_mod}]]}}{{total=[[@{armor_basis}+@{armor_mod}@{cmd_use_edge_mod}]]}}{{erfolge=[[(@{armor_basis}+@{armor_mod}@{cmd_use_edge_mod})d6@{cmd_use_edge_token}sacs5cs6>5]]}}@{cmd_use_edge_text}'></button> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_armor_pool" value="0"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_armor_pool' value='@{hide_rolls_cmd} &{template:roll}{{color=darkgoldenrod}}{{text=@{armor_name}}}{{basis=@{armor_pool}}}{{mod=[[?{Modifikator|0}@{cmd_use_edge_mod}]]}}{{total=[[@{armor_pool}+?{Modifikator|0}@{cmd_use_edge_mod}]]}}{{erfolge=[[(@{armor_pool}+?{Modifikator|0}@{cmd_use_edge_mod})d6@{cmd_use_edge_token}sacs5cs6>5]]}}@{cmd_use_edge_text}'></button> | |
<div class="details"> | |
<div class="labels color-darkred w100">Notizen, Ausrüstung, etc</div> | |
<textarea name="attr_armor_note" class="w96 h100px clear"></textarea> | |
</div> | |
</div> | |
</fieldset><!--meleeweapons--> | |
</div> | |
</div><!--combat--> | |
<div class="tab tab-matrix"> | |
<div class="tab tab-matrix-matrixequipment"> | |
<fieldset class="repeating_cyberdecks"> | |
<input class="hidden" type="text" name="attr_cyberdecks_id" value=""></input> | |
<div class="float card"> | |
<div class="row labels color-darkred"> | |
<div class="w135px">Cyberdeck</div> | |
<div class="w80px">Gerätestufe</div> | |
<div class="w45px">A</div> | |
<div class="w45px">S</div> | |
<div class="w45px">D</div> | |
<div class="w45px">F</div> | |
</div> | |
<div class="row"> | |
<input class="show-details" type="checkbox" name="attr_cyberdecks_show_details"></input> | |
<span class="show-details color-darkred"></span> | |
<input class="buttoninput buttoninput-left w155px left" type="text" name="attr_cyberdecks_name" value="0"></input> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_cyberdecks_rating" value="0"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_cyberdecks_rating' value='@{hide_rolls_cmd} Noch nicht implementiert @{cyberdecks_id}'></button> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_cyberdecks_a" value="0"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_cyberdecks_a' value='@{hide_rolls_cmd} Noch nicht implementiert @{cyberdecks_id}'></button> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_cyberdecks_s" value="0"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_cyberdecks_s' value='@{hide_rolls_cmd} Noch nicht implementiert @{cyberdecks_id}'></button> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_cyberdecks_d" value="0"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_cyberdecks_d' value='@{hide_rolls_cmd} Noch nicht implementiert @{cyberdecks_id}'></button> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_cyberdecks_f" value="0"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_cyberdecks_f' value='@{hide_rolls_cmd} Noch nicht implementiert @{cyberdecks_id}'></button> | |
<div class="details"> | |
<div class="labels color-darkred w100">Notizen</div> | |
<textarea name="attr_cyberdecks_note" class="w96 h100px clear"></textarea> | |
</div> | |
</div> | |
</div><!--float--> | |
</fieldset><!--cyberdecks--> | |
<div class="clear"></div> | |
<fieldset class="repeating_riggerconsoles"> | |
<input class="hidden" type="text" name="attr_riggerconsoles_id" value=""></input> | |
<div class="float card"> | |
<div class="row labels color-darkred"> | |
<div class="w120px">Riggerkonsole</div> | |
<div class="w80px">Gerätestufe</div> | |
<div class="w45px">D</div> | |
<div class="w45px">F</div> | |
</div> | |
<div class="row"> | |
<input class="show-details" type="checkbox" name="attr_riggerconsoles_show_details"></input> | |
<span class="show-details color-darkred"></span> | |
<input class="buttoninput buttoninput-left w155px left" type="text" name="attr_riggerconsoles_name" value="0"></input> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_riggerconsoles_rating" value="0"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_riggerconsoles_rating' value='@{hide_rolls_cmd} Noch nicht implementiert @{riggerconsoles_id}'></button> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_riggerconsoles_d" value="0"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_riggerconsoles_d' value='@{hide_rolls_cmd} Noch nicht implementiert @{riggerconsoles_id}'></button> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_riggerconsoles_f" value="0"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_riggerconsoles_f' value='@{hide_rolls_cmd} Noch nicht implementiert @{riggerconsoles_id}'></button> | |
<div class="details"> | |
<div class="labels color-darkred w100">Notizen</div> | |
<textarea name="attr_riggerconsoles_note" class="w96 h100px clear"></textarea> | |
</div> | |
</div> | |
</div><!--float--> | |
</fieldset><!--riggerconsoles--> | |
</div><!--submenu:matrixequipment--> | |
<div class="tab tab-matrix-programs"> | |
<div class="float card"> | |
<div class="row labels color-darkred"> | |
<div class="w240px">Programm</div> | |
<div class="w45px">Notiz</div> | |
</div> | |
<fieldset class="repeating_matrixprograms"> | |
<input class="hidden" type="text" name="attr_matrixprograms_id" value=""></input> | |
<div class="row"> | |
<input class="show-details" type="checkbox" name="attr_matrixprograms_show_details"></input> | |
<span class="show-details color-darkred"></span> | |
<input class="buttoninput buttoninput-left w250px left" type="text" name="attr_matrixprograms_name" value="0"></input> | |
<input class="buttoninput buttoninput-center w250px left" type="text" name="attr_matrixprograms_desc" value="0"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_matrixprograms' value='@{hide_rolls_cmd} Noch nicht implementiert @{matrixprograms_id}'></button> | |
<div class="details"> | |
<div class="labels color-darkred w100">Notizen</div> | |
<textarea name="attr_matrixprograms_note" class="w96 h100px clear"></textarea> | |
</div> | |
</div> | |
</fieldset><!--meleeweapons--> | |
</div><!--float card--> | |
</div><!--submenu:programs--> | |
<div class="tab tab-matrix-matrixactions"> | |
<!-- Matrixcombat --> | |
<div class="float card"> | |
<div class="row labels color-darkred"> | |
<div class="w160px">Matrixkampf</div> | |
<div class="">Limit</div> | |
<div class="">Handlung</div> | |
<div class="">Marken</div> | |
</div> | |
<div class="row"> | |
<div class="w165px">Datenspike</div> | |
<input class="buttoninput buttoninput-left w40px center" type="text" name="attr_matrixactions_matrixcombat_limit" value="0"></input> | |
<input class="buttoninput buttoninput-center w40px" type="text" name="attr_matrixactions_matrixcombat_action" value="0"></input> | |
<input class="buttoninput buttoninput-center w40px" type="text" name="attr_matrixactions_matrixcombat_marks" value="0"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_matrixactions_matrixcombat' value='@{hide_rolls_cmd} Noch nicht implementiert'></button> | |
</div> | |
<div class="row"> | |
<div class="w165px">Programm abstürzen lassen</div> | |
<input class="buttoninput buttoninput-left w40px center" type="text" name="attr_matrixactions_crashprogram_limit" value="0"></input> | |
<input class="buttoninput buttoninput-center w40px" type="text" name="attr_matrixactions_crashprogram_action" value="0"></input> | |
<input class="buttoninput buttoninput-center w40px" type="text" name="attr_matrixactions_crashprogram_marks" value="0"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_matrixactions_crashprogram' value='@{hide_rolls_cmd} Noch nicht implementiert'></button> | |
</div> | |
<div class="row"> | |
<div class="w165px">Volle Matrixabwehr</div> | |
<input class="buttoninput buttoninput-left w40px center" type="text" name="attr_matrixactions_fulldefense_limit" value="0"></input> | |
<input class="buttoninput buttoninput-center w40px" type="text" name="attr_matrixactions_fulldefense_action" value="0"></input> | |
<input class="buttoninput buttoninput-center w40px" type="text" name="attr_matrixactions_fulldefense_marks" value="0"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_matrixactions_fulldefense' value='@{hide_rolls_cmd} Noch nicht implementiert'></button> | |
</div> | |
<div class="row"> | |
<div class="w165px">Schadenswiderstand</div> | |
<input class="buttoninput buttoninput-left w40px center" type="text" name="attr_matrixactions_damageresistance_limit" value="0"></input> | |
<input class="buttoninput buttoninput-center w40px" type="text" name="attr_matrixactions_damageresistance_action" value="0"></input> | |
<input class="buttoninput buttoninput-center w40px" type="text" name="attr_matrixactions_damageresistance_marks" value="0"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_matrixactions_damageresistance' value='@{hide_rolls_cmd} Noch nicht implementiert'></button> | |
</div> | |
<div class="row"> | |
<div class="w165px">Biofeedback widerstehen</div> | |
<input class="buttoninput buttoninput-left w40px center" type="text" name="attr_matrixactions_biofeedbackresistance_limit" value="0"></input> | |
<input class="buttoninput buttoninput-center w40px" type="text" name="attr_matrixactions_biofeedbackresistance_action" value="0"></input> | |
<input class="buttoninput buttoninput-center w40px" type="text" name="attr_matrixactions_biofeedbackresistance_marks" value="0"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_matrixactions_biofeedbackresistance' value='@{hide_rolls_cmd} Noch nicht implementiert'></button> | |
</div> | |
</div><!--float--> | |
<!-- Manipulation of Devices --> | |
<div class="float card"> | |
<div class="row labels color-darkred"> | |
<div class="w160px">Manipulation von Geräten</div> | |
<div class="">Limit</div> | |
<div class="">Handlung</div> | |
<div class="">Marken</div> | |
</div> | |
<div class="row"> | |
<div class="w165px">Befehl vortäuschen</div> | |
<input class="buttoninput buttoninput-left w40px center" type="text" name="attr_matrixactions_spoofcommand_limit" value="0"></input> | |
<input class="buttoninput buttoninput-center w40px" type="text" name="attr_matrixactions_spoofcommand_action" value="0"></input> | |
<input class="buttoninput buttoninput-center w40px" type="text" name="attr_matrixactions_spoofcommand_marks" value="0"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_zmg_aktuell' value='@{hide_rolls_cmd} Noch nicht implementiert'></button> | |
</div> | |
<div class="row"> | |
<div class="w165px">Gerät formatieren</div> | |
<input class="buttoninput buttoninput-left w40px center" type="text" name="attr_matrixactions_formatdevice_limit" value="0"></input> | |
<input class="buttoninput buttoninput-center w40px" type="text" name="attr_matrixactions_formatdevice_action" value="0"></input> | |
<input class="buttoninput buttoninput-center w40px" type="text" name="attr_matrixactions_formatdevice_marks" value="0"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_matrixactions_formatdevice' value='@{hide_rolls_cmd} Noch nicht implementiert'></button> | |
</div> | |
<div class="row"> | |
<div class="w165px">Gerät neustarten</div> | |
<input class="buttoninput buttoninput-left w40px center" type="text" name="attr_matrixactions_restartdevice_limit" value="0"></input> | |
<input class="buttoninput buttoninput-center w40px" type="text" name="attr_matrixactions_restartdevice_action" value="0"></input> | |
<input class="buttoninput buttoninput-center w40px" type="text" name="attr_matrixactions_restartdevice_marks" value="0"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_matrixactions_restartdevice' value='@{hide_rolls_cmd} Noch nicht implementiert'></button> | |
</div> | |
<div class="row"> | |
<div class="w165px">Gerät steuern</div> | |
<input class="buttoninput buttoninput-left w40px center" type="text" name="attr_matrixactions_controldevice_limit" value="0"></input> | |
<input class="buttoninput buttoninput-center w40px" type="text" name="attr_matrixactions_controldevice_action" value="0"></input> | |
<input class="buttoninput buttoninput-center w40px" type="text" name="attr_matrixactions_controldevice_command" value="0"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_zmg_aktuell' value='@{hide_rolls_cmd} Noch nicht implementiert'></button> | |
</div> | |
<div class="row"> | |
<div class="w165px">Unerwarteter Fehler</div> | |
<input class="buttoninput buttoninput-left w40px center" type="text" name="attr_matrixactions_unexpectederror_limit" value="0"></input> | |
<input class="buttoninput buttoninput-center w40px" type="text" name="attr_matrixactions_unexpectederror_action" value="0"></input> | |
<input class="buttoninput buttoninput-center w40px" type="text" name="attr_matrixactions_unexpectederror_marks" value="0"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_matrixactions_unexpectederror' value='@{hide_rolls_cmd} Noch nicht implementiert'></button> | |
</div> | |
</div><!--float--> | |
<!-- Manipulation of Dateien --> | |
<div class="float card"> | |
<div class="row labels color-darkred"> | |
<div class="w160px">Manipulation von Dateien</div> | |
<div class="">Limit</div> | |
<div class="">Handlung</div> | |
<div class="">Marken</div> | |
</div> | |
<div class="row"> | |
<div class="w165px">Datei cracken</div> | |
<input class="buttoninput buttoninput-left w40px center" type="text" name="attr_matrixactions_decryptfile_limit" value="0"></input> | |
<input class="buttoninput buttoninput-center w40px" type="text" name="attr_matrixactions_decryptfile_action" value="0"></input> | |
<input class="buttoninput buttoninput-center w40px" type="text" name="attr_matrixactions_decryptfile_marks" value="0"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_matrixactions_decryptfile' value='@{hide_rolls_cmd} Noch nicht implementiert'></button> | |
</div> | |
<div class="row"> | |
<div class="w165px">Datei editieren</div> | |
<input class="buttoninput buttoninput-left w40px center" type="text" name="attr_matrixactions_editfile_limit" value="0"></input> | |
<input class="buttoninput buttoninput-center w40px" type="text" name="attr_matrixactions_editfile_action" value="0"></input> | |
<input class="buttoninput buttoninput-center w40px" type="text" name="attr_matrixactions_editfile_marks" value="0"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_matrixactions_editfile' value='@{hide_rolls_cmd} Noch nicht implementiert'></button> | |
</div> | |
<div class="row"> | |
<div class="w165px">Datenbombe entschärfen</div> | |
<input class="buttoninput buttoninput-left w40px center" type="text" name="attr_matrixactions_defusedatabomb_limit" value="0"></input> | |
<input class="buttoninput buttoninput-center w40px" type="text" name="attr_matrixactions_defusedatabomb_action" value="0"></input> | |
<input class="buttoninput buttoninput-center w40px" type="text" name="attr_matrixactions_defusedatabomb_marks" value="0"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_matrixactions_defusedatabomb' value='@{hide_rolls_cmd} Noch nicht implementiert'></button> | |
</div> | |
<div class="row"> | |
<div class="w165px">Datenbombe legen</div> | |
<input class="buttoninput buttoninput-left w40px center" type="text" name="attr_matrixactions_placedatabomb_limit" value="0"></input> | |
<input class="buttoninput buttoninput-center w40px" type="text" name="attr_matrixactions_placedatabomb_action" value="0"></input> | |
<input class="buttoninput buttoninput-center w40px" type="text" name="attr_matrixactions_placedatabomb_marks" value="0"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_matrixactions_placedatabomb' value='@{hide_rolls_cmd} Noch nicht implementiert'></button> | |
</div> | |
</div><!--float--> | |
<!-- Manipulation of Marks --> | |
<div class="float card"> | |
<div class="row labels color-darkred"> | |
<div class="w160px">Manipulation von Marken</div> | |
<div class="">Limit</div> | |
<div class="">Handlung</div> | |
<div class="">Marken</div> | |
</div> | |
<div class="row"> | |
<div class="w165px">Brute Force</div> | |
<input class="buttoninput buttoninput-left w40px center" type="text" name="attr_matrixactions_brutforce_limit" value="0"></input> | |
<input class="buttoninput buttoninput-center w40px" type="text" name="attr_matrixactions_brutforce_action" value="0"></input> | |
<input class="buttoninput buttoninput-center w40px" type="text" name="attr_matrixactions_brutforce_marks" value="0"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_matrixactions_brutforce' value='@{hide_rolls_cmd} Noch nicht implementiert'></button> | |
</div> | |
<div class="row"> | |
<div class="w165px">Eiliges Hacken</div> | |
<input class="buttoninput buttoninput-left w40px center" type="text" name="attr_matrixactions_hackonthefly_limit" value="0"></input> | |
<input class="buttoninput buttoninput-center w40px" type="text" name="attr_matrixactions_hackonthefly_action" value="0"></input> | |
<input class="buttoninput buttoninput-center w40px" type="text" name="attr_matrixactions_hackonthefly_marks" value="0"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_matrixactions_hackonthefly' value='@{hide_rolls_cmd} Noch nicht implementiert'></button> | |
</div> | |
<div class="row"> | |
<div class="w165px">Marke einladen</div> | |
<input class="buttoninput buttoninput-left w40px center" type="text" name="attr_matrixactions_invitemark_limit" value="0"></input> | |
<input class="buttoninput buttoninput-center w40px" type="text" name="attr_matrixactions_invitemark_action" value="0"></input> | |
<input class="buttoninput buttoninput-center w40px" type="text" name="attr_matrixactions_invitemark_marks" value="0"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_matrixactions_invitemark' value='@{hide_rolls_cmd} Noch nicht implementiert'></button> | |
</div> | |
<div class="row"> | |
<div class="w165px">Marke löschen</div> | |
<input class="buttoninput buttoninput-left w40px center" type="text" name="attr_matrixactions_deletemark_limit" value="0"></input> | |
<input class="buttoninput buttoninput-center w40px" type="text" name="attr_matrixactions_deletemark_action" value="0"></input> | |
<input class="buttoninput buttoninput-center w40px" type="text" name="attr_matrixactions_deletemark_marks" value="0"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_matrixactions_deletemark' value='@{hide_rolls_cmd} Noch nicht implementiert'></button> | |
</div> | |
</div><!--float | |
<!-- Gather information --> | |
<div class="float card"> | |
<div class="row labels color-darkred"> | |
<div class="w160px">Information sammeln</div> | |
<div class="">Limit</div> | |
<div class="">Handlung</div> | |
<div class="">Marken</div> | |
</div> | |
<div class="row"> | |
<div class="w165px">Icon aufspüren</div> | |
<input class="buttoninput buttoninput-left w40px center" type="text" name="attr_matrixactions_traceicon_limit" value="0"></input> | |
<input class="buttoninput buttoninput-center w40px" type="text" name="attr_matrixactions_traceicon_action" value="0"></input> | |
<input class="buttoninput buttoninput-center w40px" type="text" name="attr_matrixactions_traceicon_marks" value="0"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_matrixactions_traceicon' value='@{hide_rolls_cmd} Noch nicht implementiert'></button> | |
</div> | |
<div class="row"> | |
<div class="w165px">Rückverfolgung</div> | |
<input class="buttoninput buttoninput-left w40px center" type="text" name="attr_matrixactions_traceback_limit" value="0"></input> | |
<input class="buttoninput buttoninput-center w40px" type="text" name="attr_matrixactions_traceback_action" value="0"></input> | |
<input class="buttoninput buttoninput-center w40px" type="text" name="attr_matrixactions_traceback_marks" value="0"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_matrixactions_traceback' value='@{hide_rolls_cmd} Noch nicht implementiert'></button> | |
</div> | |
<div class="row"> | |
<div class="w165px">Matrixsuche</div> | |
<input class="buttoninput buttoninput-left w40px center" type="text" name="attr_matrixactions_matrixsearch_limit" value="0"></input> | |
<input class="buttoninput buttoninput-center w40px" type="text" name="attr_matrixactions_matrixsearch_action" value="0"></input> | |
<input class="buttoninput buttoninput-center w40px" type="text" name="attr_matrixactions_matrixsearch_marks" value="0"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_matrixactions_matrixsearch' value='@{hide_rolls_cmd} Noch nicht implementiert'></button> | |
</div> | |
<div class="row"> | |
<div class="w165px">Matrixwahrnehmung</div> | |
<input class="buttoninput buttoninput-left w40px center" type="text" name="attr_matrixactions_matrixperception_limit" value="0"></input> | |
<input class="buttoninput buttoninput-center w40px" type="text" name="attr_matrixactions_matrixperception_action" value="0"></input> | |
<input class="buttoninput buttoninput-center w40px" type="text" name="attr_matrixactions_matrixperception_marks" value="0"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_matrixactions_matrixperception' value='@{hide_rolls_cmd} Noch nicht implementiert'></button> | |
</div> | |
<div class="row"> | |
<div class="w165px">OW bestimmen</div> | |
<input class="buttoninput buttoninput-left w40px center" type="text" name="attr_matrixactions_getow_limit" value="0"></input> | |
<input class="buttoninput buttoninput-center w40px" type="text" name="attr_matrixactions_getow_action" value="0"></input> | |
<input class="buttoninput buttoninput-center w40px" type="text" name="attr_matrixactions_getow_marks" value="0"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_matrixactions_getow' value='@{hide_rolls_cmd} Noch nicht implementiert'></button> | |
</div> | |
<div class="row"> | |
<div class="w165px">Übertragung abfangen</div> | |
<input class="buttoninput buttoninput-left w40px center" type="text" name="attr_matrixactions_interceptmessage_limit" value="0"></input> | |
<input class="buttoninput buttoninput-center w40px" type="text" name="attr_matrixactions_interceptmessage_action" value="0"></input> | |
<input class="buttoninput buttoninput-center w40px" type="text" name="attr_matrixactions_interceptmessage_marks" value="0"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_matrixactions_interceptmessage' value='@{hide_rolls_cmd} Noch nicht implementiert'></button> | |
</div> | |
</div><!--float--> | |
<!-- Other Actions --> | |
<div class="float card"> | |
<div class="row labels color-darkred"> | |
<div class="w160px">Sonstige</div> | |
<div class="">Limit</div> | |
<div class="">Handlung</div> | |
<div class="">Marken</div> | |
</div> | |
<div class="row"> | |
<div class="w165px">Ausstöpseln</div> | |
<input class="buttoninput buttoninput-left w40px center" type="text" name="attr_matrixactions_jackout_limit" value="0"></input> | |
<input class="buttoninput buttoninput-center w40px" type="text" name="attr_matrixactions_jackout_action" value="0"></input> | |
<input class="buttoninput buttoninput-center w40px" type="text" name="attr_matrixactions_jackout_marks" value="0"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_matrixactions_jackout' value='@{hide_rolls_cmd} Noch nicht implementiert'></button> | |
</div> | |
<div class="row"> | |
<div class="w165px">Gitterwechsel</div> | |
<input class="buttoninput buttoninput-left w40px center" type="text" name="attr_matrixactions_changegrid_limit" value="0"></input> | |
<input class="buttoninput buttoninput-center w40px" type="text" name="attr_matrixactions_changegrid_action" value="0"></input> | |
<input class="buttoninput buttoninput-center w40px" type="text" name="attr_matrixactions_changegrid_marks" value="0"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_matrixactions_changegrid' value='@{hide_rolls_cmd} Noch nicht implementiert'></button> | |
</div> | |
<div class="row"> | |
<div class="w165px">Host betreten/verlassen</div> | |
<input class="buttoninput buttoninput-left w40px center" type="text" name="attr_matrixactions_enterhost_limit" value="0"></input> | |
<input class="buttoninput buttoninput-center w40px" type="text" name="attr_matrixactions_enterhost_action" value="0"></input> | |
<input class="buttoninput buttoninput-center w40px" type="text" name="attr_matrixactions_enterhost_marks" value="0"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_matrixactions_enterhost' value='@{hide_rolls_cmd} Noch nicht implementiert'></button> | |
</div> | |
<div class="row"> | |
<div class="w165px">Icon verändern</div> | |
<input class="buttoninput buttoninput-left w40px center" type="text" name="attr_matrixactions_changeicon_limit" value="0"></input> | |
<input class="buttoninput buttoninput-center w40px" type="text" name="attr_matrixactions_changeicon_action" value="0"></input> | |
<input class="buttoninput buttoninput-center w40px" type="text" name="attr_matrixactions_changeicon_marks" value="0"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_matrixactions_changeicon' value='@{hide_rolls_cmd} Noch nicht implementiert'></button> | |
</div> | |
<div class="row"> | |
<div class="w165px">In Gerät springen</div> | |
<input class="buttoninput buttoninput-left w40px center" type="text" name="attr_matrixactions_jumpintodevice_limit" value="0"></input> | |
<input class="buttoninput buttoninput-center w40px" type="text" name="attr_matrixactions_jumpintodevice_action" value="0"></input> | |
<input class="buttoninput buttoninput-center w40px" type="text" name="attr_matrixactions_jumpintodevice_marks" value="0"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_matrixactions_jumpintodevice' value='@{hide_rolls_cmd} Noch nicht implementiert'></button> | |
</div> | |
<div class="row"> | |
<div class="w165px">Interfacemodus ändern</div> | |
<input class="buttoninput buttoninput-left w40px center" type="text" name="attr_matrixactions_changeinterfacemode_limit" value="0"></input> | |
<input class="buttoninput buttoninput-center w40px" type="text" name="attr_matrixactions_changeinterfacemode_action" value="0"></input> | |
<input class="buttoninput buttoninput-center w40px" type="text" name="attr_matrixactions_changeinterfacemode_marks" value="0"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_matrixactions_changeinterfacemode' value='@{hide_rolls_cmd} Noch nicht implementiert'></button> | |
</div> | |
<div class="row"> | |
<div class="w165px">Nachricht senden</div> | |
<input class="buttoninput buttoninput-left w40px center" type="text" name="attr_matrixactions_sendmessage_limit" value="0"></input> | |
<input class="buttoninput buttoninput-center w40px" type="text" name="attr_matrixactions_sendmessage_action" value="0"></input> | |
<input class="buttoninput buttoninput-center w40px" type="text" name="attr_matrixactions_sendmessage_marks" value="0"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_matrixactions_sendmessage' value='@{hide_rolls_cmd} Noch nicht implementiert'></button> | |
</div> | |
<div class="row"> | |
<div class="w165px">Signal stören</div> | |
<input class="buttoninput buttoninput-left w40px center" type="text" name="attr_matrixactions_jamsignal_limit" value="0"></input> | |
<input class="buttoninput buttoninput-center w40px" type="text" name="attr_matrixactions_jamsignal_action" value="0"></input> | |
<input class="buttoninput buttoninput-center w40px" type="text" name="attr_matrixactions_jamsignal_marks" value="0"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_matrixactions_jamsignal' value='@{hide_rolls_cmd} Noch nicht implementiert'></button> | |
</div> | |
<div class="row"> | |
<div class="w165px">Verstecken</div> | |
<input class="buttoninput buttoninput-left w40px center" type="text" name="attr_matrixactions_hide_limit" value="0"></input> | |
<input class="buttoninput buttoninput-center w40px" type="text" name="attr_matrixactions_hide_action" value="0"></input> | |
<input class="buttoninput buttoninput-center w40px" type="text" name="attr_matrixactions_hide_marks" value="0"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_matrixactions_hide' value='@{hide_rolls_cmd} Noch nicht implementiert'></button> | |
</div> | |
</div><!--float--> | |
</div><!--submenu:matrixactions--> | |
</div><!--matrix--> | |
<div class="tab tab-technomancer"> | |
<div class="tab tab-technomancer-livingpersona"> | |
<div class="float card"> | |
<!-- Attributes --> | |
<div class="row labels color-darkred"> | |
<div class="w120px"></div> | |
<div class="w145px center">Basis/Mod/Total</div> | |
</div> | |
<div class="row"> | |
<div class="w120px labels color-darkred">Gerätestufe</div> | |
<input class="buttoninput buttoninput-left" type="text" name="attr_livingpersona_devicerating_basis" value="@{res}" disabled="disabled"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_livingpersona_devicerating_basis' value='@{hide_rolls_cmd} Noch nicht implementiert'></button> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_livingpersona_devicerating_mod" value="0"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_livingpersona_devicerating_mod' value='@{hide_rolls_cmd} Noch nicht implementiert'></button> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_livingpersona_devicerating" value="@{livingpersona_devicerating_basis}+@{livingpersona_devicerating_mod}" disabled="disabled"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_livingpersona_devicerating' value='@{hide_rolls_cmd} Noch nicht implementiert'></button> | |
</div> | |
<div class="row"> | |
<div class="w120px labels color-darkred">Angriff</div> | |
<input class="buttoninput buttoninput-left" type="text" name="attr_livingpersona_attack_basis" value="@{cha}" disabled="disabled"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_livingpersona_attack_basis' value='@{hide_rolls_cmd} Noch nicht implementiert'></button> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_livingpersona_attack_mod" value="0"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_livingpersona_attack_mod' value='@{hide_rolls_cmd} Noch nicht implementiert'></button> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_livingpersona_attack" value="@{livingpersona_attack_basis}+@{livingpersona_attack_mod}" disabled="disabled"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_livingpersona_attack' value='@{hide_rolls_cmd} Noch nicht implementiert'></button> | |
</div> | |
<div class="row"> | |
<div class="w120px labels color-darkred">Schleicher</div> | |
<input class="buttoninput buttoninput-left" type="text" name="attr_livingpersona_sleaze_basis" value="@{int}" disabled="disabled"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_livingpersona_sleaze_basis' value='@{hide_rolls_cmd} Noch nicht implementiert'></button> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_livingpersona_sleaze_mod" value="0"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_livingpersona_sleaze_mod' value='@{hide_rolls_cmd} Noch nicht implementiert'></button> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_livingpersona_sleaze" value="@{livingpersona_sleaze_basis}+@{livingpersona_sleaze_mod}" disabled="disabled"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_livingpersona_sleaze' value='@{hide_rolls_cmd} Noch nicht implementiert'></button> | |
</div> | |
<div class="row"> | |
<div class="w120px labels color-darkred">Datenverarbeitung</div> | |
<input class="buttoninput buttoninput-left" type="text" name="attr_livingpersona_dataprocessing_basis" value="@{log}" disabled="disabled"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_livingpersona_dataprocessing_basis' value='@{hide_rolls_cmd} Noch nicht implementiert'></button> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_livingpersona_dataprocessing_mod" value="0"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_livingpersona_dataprocessing_mod' value='@{hide_rolls_cmd} Noch nicht implementiert'></button> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_livingpersona_dataprocessing" value="@{livingpersona_dataprocessing_basis}+@{livingpersona_dataprocessing_mod}" disabled="disabled"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_livingpersona_dataprocessing' value='@{hide_rolls_cmd} Noch nicht implementiert'></button> | |
</div> | |
<div class="row"> | |
<div class="w120px labels color-darkred">Firewall</div> | |
<input class="buttoninput buttoninput-left" type="text" name="attr_livingpersona_firewall_basis" value="@{wil}" disabled="disabled"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_livingpersona_firewall_basis' value='@{hide_rolls_cmd} Noch nicht implementiert'></button> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_livingpersona_firewall_mod" value="0"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_livingpersona_firewall_mod' value='@{hide_rolls_cmd} Noch nicht implementiert'></button> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_livingpersona_firewall" value="@{livingpersona_firewall_basis}+@{livingpersona_firewall_mod}" disabled="disabled"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_livingpersona_firewall' value='@{hide_rolls_cmd} Noch nicht implementiert'></button> | |
</div> | |
</div><!--float--> | |
</div><!--submenu:livingpersona--> | |
<div class="tab tab-technomancer-complexforms"> | |
<div class="float card"> | |
<div class="row labels color-darkred"> | |
<div class="w155px">Komplexe Form</div> | |
<div class="w45px">Wert</div> | |
<div class="w45px">Mod</div> | |
<div class="w45px">Total</div> | |
</div> | |
<fieldset class="repeating_complexforms"> | |
<input class="hidden" type="text" name="attr_complexforms_id" value=""></input> | |
<div class="row"> | |
<input class="show-details" type="checkbox" name="attr_complexforms_show_details"></input> | |
<span class="show-details color-darkred"></span> | |
<input class="buttoninput buttoninput-left w155px left" type="text" name="attr_complexforms_name" value="0"></input> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_complexforms_basis" value="0"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_complexforms_basis' value='!shadowrun --character @{character_id} --action complexforms-use --id @{complexforms_id} --name "@{complexforms_name}" --basis @{complexforms_basis} --mod 0 --force ?{Stufe?|1}'></button> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_complexforms_mod" value="0"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_complexforms_mod' value='!shadowrun --character @{character_id} --action complexforms-use --id @{complexforms_id} --name "@{complexforms_name}" --basis @{complexforms_basis} --mod ?{Modifikator?|@{complexforms_mod}} --force ?{Stufe?|1}'></button> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_complexforms" value="@{complexforms_basis}+@{complexforms_mod}" disabled="disabled"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_complexforms' value='!shadowrun --character @{character_id} --action complexforms-use --id @{complexforms_id} --name "@{complexforms_name}" --basis @{complexforms_basis} --mod @{complexforms_mod} --force ?{Stufe?|1}'></button> | |
<div class="details"> | |
<div class="labels color-darkred w100">Notizen</div> | |
<textarea name="attr_complexforms_note" class="w95 h100px clear"></textarea> | |
</div> | |
</div> | |
</fieldset><!--pools, dodge, etc--> | |
</div><!--float--> | |
</div><!--submenu:complexforms--> | |
<div class="tab tab-technomancer-sprites"> | |
<div class="float card"> | |
<div class="row labels color-darkred"> | |
<div class="w155px">Sprite</div> | |
<div class="w45px">Pool</div> | |
<div class="w45px">Mod</div> | |
<div class="w45px">Total</div> | |
</div> | |
<fieldset class="repeating_compilesprite"> | |
<input class="hidden" type="text" name="attr_compilesprite_id" value=""></input> | |
<div class="row"> | |
<input class="show-details" type="checkbox" name="attr_compilesprite_show_details"></input> | |
<span class="show-details color-darkred"></span> | |
<input class="buttoninput buttoninput-left w155px left" type="text" name="attr_compilesprite_name" value="0"></input> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_compilesprite_basis" value="0"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_compilesprite_basis' value='!summon Sprites-@{compilesprite_name} T | |
!shadowrun --character @{character_id} --action compile-sprite --sprite-name "@{compilesprite_name}" --basis @{compilesprite_basis} --mod 0 --force ?{Kraftstufe?|1}'></button> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_compilesprite_mod" value="0"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_compilesprite_mod' value='!summon Sprites-@{compilesprite_name} T | |
!shadowrun --character @{character_id} --action compile-sprite --sprite-name "@{compilesprite_name}" --basis @{compilesprite_basis} --mod ?{Modifikator?|@{compilesprite_mod}} --force ?{Kraftstufe?|1}'></button> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_compilesprite" value="@{compilesprite_basis}+@{compilesprite_mod}" disabled="disabled"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_compilesprite' value='!summon Sprites-@{compilesprite_name} T | |
!shadowrun --character @{character_id} --action compile-sprite --sprite-name "@{compilesprite_name}" --basis @{compilesprite_basis} --mod @{compilesprite_mod} --force ?{Kraftstufe?|1}'></button> | |
<div class="details"> | |
<div class="labels color-darkred w100">Notizen</div> | |
<textarea name="attr_compilesprite_note" class="w95 h100px clear"></textarea> | |
</div> | |
</div> | |
</fieldset><!--pools, dodge, etc--> | |
</div><!--float--> | |
<fieldset class="repeating_activesprites"> | |
<input class="hidden" type="text" name="attr_activesprites_id" value=""></input> | |
<div class="float card"> | |
<div class="row labels color-darkred"> | |
<div class="w155px">Aktive Sprites</div> | |
<div class="w45px">Stufe</div> | |
<div class="w45px">Dienste</div> | |
</div> | |
<div class="row"> | |
<input class="show-details" type="checkbox" name="attr_activesprites_show_details"></input> | |
<span class="show-details color-darkred"></span> | |
<input class="buttoninput buttoninput-left w155px left" type="text" name="attr_activesprites_name" value="0"></input> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_activesprites_stufe" value="0"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_activesprites_stufe' value='@{hide_rolls_cmd} Noch nicht implementiert @{activesprites_id}'></button> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_activesprites_dienste" value="0"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_activesprites_dienste' value='@{hide_rolls_cmd} Noch nicht implementiert @{activesprites_id}'></button> | |
<div class="details"> | |
<div class="row labels color-darkblue"> | |
<div class="w45px">A</div> | |
<div class="w45px">S</div> | |
<div class="w45px">D</div> | |
<div class="w45px">F</div> | |
</div> | |
<div class="row labels color-darkblue"> | |
<input class="buttoninput buttoninput-left" type="text" name="attr_activesprites_attack" value="0"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_activesprites_attack' value='@{hide_rolls_cmd} Noch nicht implementiert @{activesprites_id}'></button> | |
<input class="buttoninput buttoninput-left" type="text" name="attr_activesprites_sleaze" value="0"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_activesprites_sleaze' value='@{hide_rolls_cmd} Noch nicht implementiert @{activesprites_id}'></button> | |
<input class="buttoninput buttoninput-left" type="text" name="attr_activesprites_dataprocessing" value="0"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_activesprites_dataprocessing' value='@{hide_rolls_cmd} Noch nicht implementiert @{activesprites_id}'></button> | |
<input class="buttoninput buttoninput-left" type="text" name="attr_activesprites_firewall" value="0"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_activesprites_firewall' value='@{hide_rolls_cmd} Noch nicht implementiert @{activesprites_id}'></button> | |
</div> | |
<div class="row labels color-blueviolet"> | |
<div class="w45px">RES</div> | |
</div> | |
<div class="row labels color-blueviolet"> | |
<input class="buttoninput buttoninput-left" type="text" name="attr_activesprites_res" value="0"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_activesprites_res' value='@{hide_rolls_cmd} Noch nicht implementiert @{activesprites_id}'></button> | |
</div> | |
<div class="row labels color-darkred"> | |
<div class="w45px">Fertigkeiten</div> | |
</div> | |
<div class="row labels color-darkred"> | |
<input class="buttoninput buttoninput-left left w150px" type="text" name="attr_activesprites_skill_1_name" value="0"></input> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_activesprites_skill_1_pool" value="0"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_activesprites_skill_1' value='@{hide_rolls_cmd} &{template:roll}{{text=@{activesprites_name} benutzt @{activesprites_skill_1_name}}}{{basis=@{activesprites_skill_1_pool}}}{{mod=?{Modifikator?|0}}}{{pool=[[@{activesprites_skill_1_pool}+?{Modifikator?|0}]]}}{{erfolge=[[[[@{activesprites_skill_1_pool}+?{Modifikator?|0}]]d6sacs5cs6>5]]}}'></button> | |
</div> | |
<div class="row labels color-darkred"> | |
<input class="buttoninput buttoninput-left left w150px" type="text" name="attr_activesprites_skill_2_name" value="0"></input> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_activesprites_skill_2_pool" value="0"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_activesprites_skill_2' value='@{hide_rolls_cmd} &{template:roll}{{text=@{activesprites_name} benutzt @{activesprites_skill_2_name}}}{{basis=@{activesprites_skill_2_pool}}}{{mod=?{Modifikator?|0}}}{{pool=[[@{activesprites_skill_2_pool}+?{Modifikator?|0}]]}}{{erfolge=[[[[@{activesprites_skill_2_pool}+?{Modifikator?|0}]]d6sacs5cs6>5]]}}'></button> | |
</div> | |
<div class="row labels color-darkred"> | |
<input class="buttoninput buttoninput-left left w150px" type="text" name="attr_activesprites_skill_3_name" value="0"></input> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_activesprites_skill_3_pool" value="0"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_activesprites_skill_3' value='@{hide_rolls_cmd} &{template:roll}{{text=@{activesprites_name} benutzt @{activesprites_skill_3_name}}}{{basis=@{activesprites_skill_3_pool}}}{{mod=?{Modifikator?|0}}}{{pool=[[@{activesprites_skill_3_pool}+?{Modifikator?|0}]]}}{{erfolge=[[[[@{activesprites_skill_3_pool}+?{Modifikator?|0}]]d6sacs5cs6>5]]}}'></button> | |
</div> | |
<div class="row labels color-darkred"> | |
<input class="buttoninput buttoninput-left left w150px" type="text" name="attr_activesprites_skill_4_name" value="0"></input> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_activesprites_skill_4_pool" value="0"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_activesprites_skill_4' value='@{hide_rolls_cmd} &{template:roll}{{text=@{activesprites_name} benutzt @{activesprites_skill_4_name}}}{{basis=@{activesprites_skill_4_pool}}}{{mod=?{Modifikator?|0}}}{{pool=[[@{activesprites_skill_4_pool}+?{Modifikator?|0}]]}}{{erfolge=[[[[@{activesprites_skill_4_pool}+?{Modifikator?|0}]]d6sacs5cs6>5]]}}'></button> | |
</div> | |
<div class="row labels color-darkred"> | |
<input class="buttoninput buttoninput-left left w150px" type="text" name="attr_activesprites_skill_5_name" value="0"></input> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_activesprites_skill_5_pool" value="0"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_activesprites_skill_5' value='@{hide_rolls_cmd} &{template:roll}{{text=@{activesprites_name} benutzt @{activesprites_skill_5_name}}}{{basis=@{activesprites_skill_5_pool}}}{{mod=?{Modifikator?|0}}}{{pool=[[@{activesprites_skill_5_pool}+?{Modifikator?|0}]]}}{{erfolge=[[[[@{activesprites_skill_5_pool}+?{Modifikator?|0}]]d6sacs5cs6>5]]}}'></button> | |
</div> | |
<div class="row labels color-darkred"> | |
<input class="buttoninput buttoninput-left left w150px" type="text" name="attr_activesprites_skill_6_name" value="0"></input> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_activesprites_skill_6_pool" value="0"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_activesprites_skill_6' value='@{hide_rolls_cmd} &{template:roll}{{text=@{activesprites_name} benutzt @{activesprites_skill_6_name}}}{{basis=@{activesprites_skill_6_pool}}}{{mod=?{Modifikator?|0}}}{{pool=[[@{activesprites_skill_6_pool}+?{Modifikator?|0}]]}}{{erfolge=[[[[@{activesprites_skill_6_pool}+?{Modifikator?|0}]]d6sacs5cs6>5]]}}'></button> | |
</div> | |
<div class="row labels color-darkred"> | |
<input class="buttoninput buttoninput-left left w150px" type="text" name="attr_activesprites_skill_7_name" value="0"></input> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_activesprites_skill_7_pool" value="0"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_activesprites_skill_7' value='@{hide_rolls_cmd} &{template:roll}{{text=@{activesprites_name} benutzt @{activesprites_skill_7_name}}}{{basis=@{activesprites_skill_7_pool}}}{{mod=?{Modifikator?|0}}}{{pool=[[@{activesprites_skill_7_pool}+?{Modifikator?|0}]]}}{{erfolge=[[[[@{activesprites_skill_7_pool}+?{Modifikator?|0}]]d6sacs5cs6>5]]}}'></button> | |
</div> | |
<div class="row labels color-darkred"> | |
<input class="buttoninput buttoninput-left left w150px" type="text" name="attr_activesprites_skill_8_name" value="0"></input> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_activesprites_skill_8_pool" value="0"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_activesprites_skill_8' value='@{hide_rolls_cmd} &{template:roll}{{text=@{activesprites_name} benutzt @{activesprites_skill_8_name}}}{{basis=@{activesprites_skill_8_pool}}}{{mod=?{Modifikator?|0}}}{{pool=[[@{activesprites_skill_8_pool}+?{Modifikator?|0}]]}}{{erfolge=[[[[@{activesprites_skill_8_pool}+?{Modifikator?|0}]]d6sacs5cs6>5]]}}'></button> | |
</div> | |
<div class="row labels color-darkred"> | |
<input class="buttoninput buttoninput-left left w150px" type="text" name="attr_activesprites_skill_9_name" value="0"></input> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_activesprites_skill_9_pool" value="0"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_activesprites_skill_9' value='@{hide_rolls_cmd} &{template:roll}{{text=@{activesprites_name} benutzt @{activesprites_skill_9_name}}}{{basis=@{activesprites_skill_9_pool}}}{{mod=?{Modifikator?|0}}}{{pool=[[@{activesprites_skill_9_pool}+?{Modifikator?|0}]]}}{{erfolge=[[[[@{activesprites_skill_9_pool}+?{Modifikator?|0}]]d6sacs5cs6>5]]}}'></button> | |
</div> | |
<div class="row labels color-darkred"> | |
<input class="buttoninput buttoninput-left left w150px" type="text" name="attr_activesprites_skill_10_name" value="0"></input> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_activesprites_skill_10_pool" value="0"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_activesprites_skill_100' value='@{hide_rolls_cmd} &{template:roll}{{text=@{activesprites_name} benutzt @{activesprites_skill_10_name}}}{{basis=@{activesprites_skill_10_pool}}}{{mod=?{Modifikator?|0}}}{{pool=[[@{activesprites_skill_10_pool}+?{Modifikator?|0}]]}}{{erfolge=[[[[@{activesprites_skill_10_pool}+?{Modifikator?|0}]]d6sacs5cs6>5]]}}'></button> | |
</div> | |
<div class="row labels color-darkred"> | |
<div class="w45px">Spritekräfte</div> | |
</div> | |
<div class="row labels color-darkred"> | |
<input class="buttoninput buttoninput-left left w150px" type="text" name="attr_activesprites_power_1_name" value="0"></input> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_activesprites_power_1_pool" value="0"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_activesprites_power_1' value='@{hide_rolls_cmd} &{template:kraft}{{text=@{activesprites_name} benutzt }}{{beschreibung=%{Spritekräfte-@{activesprites_power_1_name}|Beschreibung}}}'></button> | |
</div> | |
<div class="row labels color-darkred"> | |
<input class="buttoninput buttoninput-left left w150px" type="text" name="attr_activesprites_power_2_name" value="0"></input> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_activesprites_power_2_pool" value="0"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_activesprites_power_2' value='@{hide_rolls_cmd} &{template:kraft}{{text=@{activesprites_name} benutzt }}{{beschreibung=%{Spritekräfte-@{activesprites_power_2_name}|Beschreibung}}}'></button> | |
</div> | |
<div class="row labels color-darkred"> | |
<input class="buttoninput buttoninput-left left w150px" type="text" name="attr_activesprites_power_3_name" value="0"></input> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_activesprites_power_3_pool" value="0"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_activesprites_power_3' value='@{hide_rolls_cmd} &{template:kraft}{{text=@{activesprites_name} benutzt }}{{beschreibung=%{Spritekräfte-@{activesprites_power_3_name}|Beschreibung}}}'></button> | |
</div> | |
<div class="row labels color-darkred"> | |
<input class="buttoninput buttoninput-left left w150px" type="text" name="attr_activesprites_power_4_name" value="0"></input> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_activesprites_power_4_pool" value="0"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_activesprites_power_4' value='@{hide_rolls_cmd} &{template:kraft}{{text=@{activesprites_name} benutzt }}{{beschreibung=%{Spritekräfte-@{activesprites_power_4_name}|Beschreibung}}}'></button> | |
</div> | |
<div class="row labels color-darkred"> | |
<input class="buttoninput buttoninput-left left w150px" type="text" name="attr_activesprites_power_5_name" value="0"></input> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_activesprites_power_5_pool" value="0"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_activesprites_power_5' value='@{hide_rolls_cmd} &{template:kraft}{{text=@{activesprites_name} benutzt }}{{beschreibung=%{Spritekräfte-@{activesprites_power_5_name}|Beschreibung}}}'></button> | |
</div> | |
<div class="row labels color-darkred"> | |
<input class="buttoninput buttoninput-left left w150px" type="text" name="attr_activesprites_power_6_name" value="0"></input> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_activesprites_power_6_pool" value="0"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_activesprites_power_6' value='@{hide_rolls_cmd} &{template:kraft}{{text=@{activesprites_name} benutzt }}{{beschreibung=%{Spritekräfte-@{activesprites_power_6_name}|Beschreibung}}}'></button> | |
</div> | |
<div class="row labels color-darkred"> | |
<input class="buttoninput buttoninput-left left w150px" type="text" name="attr_activesprites_power_7_name" value="0"></input> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_activesprites_power_7_pool" value="0"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_activesprites_power_7' value='@{hide_rolls_cmd} &{template:kraft}{{text=@{activesprites_name} benutzt }}{{beschreibung=%{Spritekräfte-@{activesprites_power_7_name}|Beschreibung}}}'></button> | |
</div> | |
<div class="row labels color-darkred"> | |
<input class="buttoninput buttoninput-left left w150px" type="text" name="attr_activesprites_power_8_name" value="0"></input> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_activesprites_power_8_pool" value="0"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_activesprites_power_8' value='@{hide_rolls_cmd} &{template:kraft}{{text=@{activesprites_name} benutzt }}{{beschreibung=%{Spritekräfte-@{activesprites_power_8_name}|Beschreibung}}}'></button> | |
</div> | |
<div class="row labels color-darkred"> | |
<input class="buttoninput buttoninput-left left w150px" type="text" name="attr_activesprites_power_9_name" value="0"></input> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_activesprites_power_9_pool" value="0"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_activesprites_power_9' value='@{hide_rolls_cmd} &{template:kraft}{{text=@{activesprites_name} benutzt }}{{beschreibung=%{Spritekräfte-@{activesprites_power_9_name}|Beschreibung}}}'></button> | |
</div> | |
<div class="row labels color-darkred"> | |
<input class="buttoninput buttoninput-left left w150px" type="text" name="attr_activesprites_power_10_name" value="0"></input> | |
<input class="buttoninput buttoninput-center" type="text" name="attr_activesprites_power_10_pool" value="0"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_activesprites_power_10' value='@{hide_rolls_cmd} &{template:kraft}{{text=@{activesprites_name} benutzt }}{{beschreibung=%{Spritekräfte-@{activesprites_power_10_name}|Beschreibung}}}'></button> | |
</div> | |
<div class="labels color-darkred w100">Notizen</div> | |
<textarea name="attr_activesprites_note" class="w95 h100px clear"></textarea> | |
</div> | |
</div> | |
</div><!--float--> | |
</fieldset><!--pools, dodge, etc--> | |
</div><!--submenu:sprites--> | |
</div><!--technomancer--> | |
<div class="tab tab-social"> | |
<div class="tab tab-social-sinlicense"> | |
<div class="float card"> | |
<div class="row labels color-darkred"> | |
<div class="w255px">SIN</div> | |
<div class="w45px">Stufe</div> | |
</div> | |
<fieldset class="repeating_sins"> | |
<input class="hidden" type="text" name="attr_sins_id" value=""></input> | |
<div class="row"> | |
<input class="show-details" type="checkbox" name="attr_sin_show_details"></input> | |
<span class="show-details color-darkred"></span> | |
<input class="buttoninput buttoninput-left w250px left" type="text" name="attr_sin_name" value="0"></input> | |
<input class="buttoninput buttoninput-center center" type="text" name="attr_sin_level" value="0"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_sin' value='@{hide_rolls_cmd} Noch nicht implementiert @{sins_id}'></button> | |
<div class="details"> | |
<div class="labels color-darkred w100">Notizen</div> | |
<textarea name="attr_sin_note" class="w96 h100px clear"></textarea> | |
</div> | |
</div> | |
</fieldset><!--SIN--> | |
</div><!--float card--> | |
<div class="float card"> | |
<div class="row labels color-darkred"> | |
<div class="w255px">SIN</div> | |
<div class="w240px">Lizenz</div> | |
<div class="w45px">Stufe</div> | |
</div> | |
<fieldset class="repeating_licenses"> | |
<input class="hidden" type="text" name="attr_licenses_id" value=""></input> | |
<div class="row"> | |
<input class="show-details" type="checkbox" name="attr_license_show_details"></input> | |
<span class="show-details color-darkred"></span> | |
<input class="buttoninput buttoninput-left w250px left" type="text" name="attr_license_sin_name" value="0"></input> | |
<input class="buttoninput buttoninput-center w250px left" type="text" name="attr_license_name" value="0"></input> | |
<input class="buttoninput buttoninput-center center" type="text" name="attr_license_rating" value="0"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_license' value='@{hide_rolls_cmd} Noch nicht implementiert @{licenses_id}'></button> | |
<div class="details"> | |
<div class="labels color-darkred w100">Notizen</div> | |
<textarea name="attr_license_note" class="w95 h100px clear"></textarea> | |
</div> | |
</div> | |
</fieldset><!--licenses--> | |
</div><!--float card--> | |
</div><!--submenu:sinlicense--> | |
<div class="tab tab-social-lifestyles"> | |
<fieldset class="repeating_lifestyles"> | |
<input class="hidden" type="text" name="attr_lifestyles_id" value=""></input> | |
<div class="float card"> | |
<div class="row labels color-darkred"> | |
<div class="w80px">SIN</div> | |
<input class="buttoninput buttoninput-both w250px left" type="text" name="attr_lifestyles_sin_name" value="0"></input> | |
</div> | |
<div class="row labels color-darkred"> | |
<div class="w80px">Lebensstil</div> | |
<input class="buttoninput buttoninput-both w250px left" type="text" name="attr_lifestyles_rating" value="0"></input> | |
</div> | |
<div class="row labels color-darkred"> | |
<div class="w80px">Miete</div> | |
<input class="buttoninput buttoninput-both w250px left" type="text" name="attr_lifestyles_cost" value="0"></input> | |
</div> | |
<div class="row labels color-darkred"> | |
<div class="margin-left-5">K&G</div> | |
<div class="w20px center">S</div> | |
<div class="w20px center">W</div> | |
<div class="w20px center">A</div> | |
</div> | |
<div class="row labels color-darkred"> | |
<input class="show-details" type="checkbox" name="attr_lifestyles_show_details"></input> | |
<span class="show-details color-darkred"></span> | |
<input class="buttoninput buttoninput-left center" type="text" name="attr_lifestyles_comfort" value="0"></input> | |
<input class="buttoninput buttoninput-center center" type="text" name="attr_lifestyles_security" value="0"></input> | |
<input class="buttoninput buttoninput-center center" type="text" name="attr_lifestyles_neighbourhood" value="0"></input> | |
<input class="buttoninput buttoninput-right center" type="text" name="attr_lifestyles_accomodities" value="0"></input> | |
<div class="details"> | |
<div class="labels color-darkred w100">Notizen</div> | |
<textarea name="attr_lifestyles_note" class="w96 h100px clear"></textarea> | |
</div> | |
</div> | |
</div><!--float card--> | |
</fieldset><!--lifestyles--> | |
</div><!--submenu:lifestyles--> | |
<div class="tab tab-social-connections"> | |
<div class="float card"> | |
<div class="row labels color-darkred"> | |
<div class="w260px">Name</div> | |
<div class="w25px">E</div> | |
<div class="">L</div> | |
</div> | |
<fieldset class="repeating_connections"> | |
<input class="hidden" type="text" name="attr_connections_id" value=""></input> | |
<div class="row"> | |
<input class="show-details" type="checkbox" name="attr_connections_show_details"></input> | |
<span class="show-details color-darkred"></span> | |
<input class="buttoninput buttoninput-left w250px left" type="text" name="attr_connections_name" value="0"></input> | |
<input class="buttoninput buttoninput-center center" type="text" name="attr_connections_rating" value="0"></input> | |
<input class="buttoninput buttoninput-center center" type="text" name="attr_connections_loyality" value="0"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_connections' value='!shadowrun --character @{character_id} --action contact-connection --id @{connections_id}'></button> | |
<div class="details"> | |
<div class="labels color-darkred w100">Notizen</div> | |
<textarea name="attr_connections_note" class="w96 h100px clear"></textarea> | |
</div> | |
</div> | |
</fieldset><!--SIN--> | |
</div><!--float card--> | |
</div><!--submenu:connections--> | |
</div><!--social--> | |
<div class="tab tab-equipment"> | |
<div class="tab tab-equipment-equipment"> | |
<div class="float card"> | |
<div class="row labels color-darkred"> | |
<div class="w260px">Gegenstand</div> | |
<div class="w25px">Anzahl</div> | |
</div> | |
<fieldset class="repeating_equipment"> | |
<input class="hidden" type="text" name="attr_equipment_id" value=""></input> | |
<div class="row"> | |
<input class="show-details" type="checkbox" name="attr_equipment_show_details"></input> | |
<span class="show-details color-darkred"></span> | |
<input class="buttoninput buttoninput-left w250px left" type="text" name="attr_equipment_name" value="0"></input> | |
<input class="buttoninput buttoninput-center center" type="text" name="attr_equipment_count" value="0"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_equipment' value='@{hide_rolls_cmd} Noch nicht implementiert @{equipment_id}'></button> | |
<div class="details"> | |
<div class="labels color-darkred w100">Notizen</div> | |
<textarea name="attr_equipment_note" class="w96 h100px clear"></textarea> | |
</div> | |
</div> | |
</fieldset><!--equipment--> | |
</div><!--float card--> | |
</div><!--submenu:equipment--> | |
<div class="tab tab-equipment-augmentations"> | |
<div class="float card"> | |
<div class="row labels color-darkred"> | |
<div class="w240px">Augmentierung</div> | |
<div class="w35px">Stufe</div> | |
<div class="">Kat.</div> | |
<div class="">Essenz</div> | |
</div> | |
<fieldset class="repeating_augmentations"> | |
<input class="hidden" type="text" name="attr_augmentations_id" value=""></input> | |
<div class="row"> | |
<input class="show-details" type="checkbox" name="attr_augmentations_show_details"></input> | |
<span class="show-details color-darkred"></span> | |
<input class="buttoninput buttoninput-left w250px left" type="text" name="attr_augmentations_name" value="0"></input> | |
<input class="buttoninput buttoninput-center center" type="text" name="attr_augmentations_rating" value="0"></input> | |
<input class="buttoninput buttoninput-center center" type="text" name="attr_augmentations_category" value="0"></input> | |
<input class="buttoninput buttoninput-center center" type="text" name="attr_augmentations_essence" value="0"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_augmentations' value='@{hide_rolls_cmd} Noch nicht implementiert @{augmentations_id}'></button> | |
<div class="details"> | |
<div class="labels color-darkred w100">Notizen</div> | |
<textarea name="attr_augmentations_note" class="w96 h100px clear"></textarea> | |
</div> | |
</div> | |
</fieldset><!--equipment--> | |
</div><!--float card--> | |
</div><!--submenu:augmentations--> | |
<div class="tab tab-equipment-ammunition"> | |
<div class="float card"> | |
<div class="row labels color-darkred"> | |
<div class="w260px">Munition</div> | |
<div class="">Anzahl</div> | |
</div> | |
<fieldset class="repeating_ammunition"> | |
<input class="hidden" type="text" name="attr_ammunition_id" value=""></input> | |
<div class="row"> | |
<input class="show-details" type="checkbox" name="attr_ammunition_show_details"></input> | |
<span class="show-details color-darkred"></span> | |
<input class="buttoninput buttoninput-left w250px left" type="text" name="attr_ammunition_name" value="0"></input> | |
<input class="buttoninput buttoninput-center center" type="text" name="attr_ammunition_count" value="0"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_ammunition' value='@{hide_rolls_cmd} Noch nicht implementiert @{ammunition_id}'></button> | |
<div class="details"> | |
<div class="labels color-darkred w100">Notizen</div> | |
<textarea name="attr_ammunition_note" class="w96 h100px clear"></textarea> | |
</div> | |
</div> | |
</fieldset><!--equipment--> | |
</div><!--float card--> | |
</div><!--submenu:ammunition--> | |
<div class="tab tab-equipment-vehicles"> | |
<fieldset class="repeating_vehicles"> | |
<input class="hidden" type="text" name="attr_vehicles_id" value=""></input> | |
<div class="float card"> | |
<div class="row labels color-darkred"> | |
<div class="w60px">Fahrzeug</div> | |
<input class="buttoninput buttoninput-both w250px left" type="text" name="attr_vehicles_name" value="0"></input> | |
<div class="margin-right-10">Sitze</div> | |
<input class="buttoninput buttoninput-both center" type="text" name="attr_vehicles_seats" value="0"></input> | |
</div> | |
<div class="row labels color-darkred"> | |
<div class="margin-right-10">Handling</div> | |
<input class="buttoninput buttoninput-both center" type="text" name="attr_vehicles_handling" value="0"></input> | |
<div class="margin-right-10">Beschleunigung</div> | |
<input class="buttoninput buttoninput-both center" type="text" name="attr_vehicles_acceleration" value="0"></input> | |
<div class="margin-right-10">Geschwindigkeit</div> | |
<input class="buttoninput buttoninput-both center" type="text" name="attr_vehicles_speed" value="0"></input> | |
</div> | |
<div class="row labels color-darkred"> | |
<div class="margin-right-10">Pilot</div> | |
<input class="buttoninput buttoninput-both center" type="text" name="attr_vehicles_pilot" value="0"></input> | |
<div class="margin-right-10">Sensor</div> | |
<input class="buttoninput buttoninput-both center" type="text" name="attr_vehicles_sensor" value="0"></input> | |
<div class="margin-right-10">Panzerung</div> | |
<input class="buttoninput buttoninput-both center" type="text" name="attr_vehicles_armor" value="0"></input> | |
</div> | |
<div class="row labels color-darkred"> | |
<div class="margin-right-10">Matrixzustandsmonitor</div> | |
<input class="buttoninput buttoninput-left center" type="text" name="attr_vehicles_matrixmonitor_current" value="0"></input> | |
<input class="buttoninput buttoninput-right center" type="text" name="attr_vehicles_matrixmonitor_max" value="0"></input> | |
<div class="margin-right-10">Zustandmonitor</div> | |
<input class="buttoninput buttoninput-left center" type="text" name="attr_vehicles_physicalmonitor_current" value="0"></input> | |
<input class="buttoninput buttoninput-right center" type="text" name="attr_vehicles_physicalmonitor_max" value="0"></input> | |
</div> | |
<div class="row"> | |
<input class="show-details" type="checkbox" name="attr_vehicles_show_details"></input> | |
<span class="show-details color-darkred"></span> | |
<div class="labels color-darkred">Notizen</div> | |
<div class="details"> | |
<textarea name="attr_vehicles_note" class="w96 h100px clear"></textarea> | |
</div> | |
</div> | |
</div><!--float card--> | |
</fieldset><!--equipment--> | |
</div><!--submenu:vehicles--> | |
<div class="tab tab-equipment-drones"> | |
<fieldset class="repeating_drones"> | |
<input class="hidden" type="text" name="attr_drones_id" value=""></input> | |
<div class="float card"> | |
<div class="row labels color-darkred"> | |
<div class="w60px">Drohne</div> | |
<input class="buttoninput buttoninput-both w250px left" type="text" name="attr_drones_name" value="0"></input> | |
<div class="margin-right-10">Sitze</div> | |
<input class="buttoninput buttoninput-both center" type="text" name="attr_drones_seats" value="0"></input> | |
</div> | |
<div class="row labels color-darkred"> | |
<div class="margin-right-10">Handling</div> | |
<input class="buttoninput buttoninput-both center" type="text" name="attr_drones_handling" value="0"></input> | |
<div class="margin-right-10">Beschleunigung</div> | |
<input class="buttoninput buttoninput-both center" type="text" name="attr_drones_acceleration" value="0"></input> | |
<div class="margin-right-10">Geschwindigkeit</div> | |
<input class="buttoninput buttoninput-both center" type="text" name="attr_drones_speed" value="0"></input> | |
</div> | |
<div class="row labels color-darkred"> | |
<div class="margin-right-10">Pilot</div> | |
<input class="buttoninput buttoninput-both center" type="text" name="attr_drones_pilot" value="0"></input> | |
<div class="margin-right-10">Sensor</div> | |
<input class="buttoninput buttoninput-both center" type="text" name="attr_drones_sensor" value="0"></input> | |
<div class="margin-right-10">Panzerung</div> | |
<input class="buttoninput buttoninput-both center" type="text" name="attr_drones_armor" value="0"></input> | |
</div> | |
<div class="row labels color-darkred"> | |
<div class="margin-right-10">Matrixzustandsmonitor</div> | |
<input class="buttoninput buttoninput-left center" type="text" name="attr_drones_matrixmonitor_current" value="0"></input> | |
<input class="buttoninput buttoninput-right center" type="text" name="attr_drones_matrixmonitor_max" value="0"></input> | |
<div class="margin-right-10">Zustandmonitor</div> | |
<input class="buttoninput buttoninput-left center" type="text" name="attr_drones_physicalmonitor_current" value="0"></input> | |
<input class="buttoninput buttoninput-right center" type="text" name="attr_drones_physicalmonitor_max" value="0"></input> | |
</div> | |
<div class="row"> | |
<input class="show-details" type="checkbox" name="attr_drones_show_details"></input> | |
<span class="show-details color-darkred"></span> | |
<div class="labels color-darkred">Notizen</div> | |
<div class="details"> | |
<textarea name="attr_drones_note" class="w96 h100px clear"></textarea> | |
</div> | |
</div> | |
</div><!--float card--> | |
</fieldset><!--equipment--> | |
</div><!--submenu:drones--> | |
<div class="tab tab-equipment-orders"> | |
<div class="float card"> | |
<div class="row labels color-darkred"> | |
<div class="w255px">Gegenstand</div> | |
<div class="">Anzahl</div> | |
<div class="w55px center">¥</div> | |
<div class="w40px">V</div> | |
<div class="">Lieferdatum</div> | |
</div> | |
<fieldset class="repeating_orders"> | |
<input class="hidden" type="text" name="attr_orders_id" value=""></input> | |
<div class="row"> | |
<input class="show-details" type="checkbox" name="attr_orders_show_details"></input> | |
<span class="show-details color-darkred"></span> | |
<input class="buttoninput buttoninput-left w250px left" type="text" name="attr_orders_name" value="0"></input> | |
<input class="buttoninput buttoninput-center w45px center" type="text" name="attr_orders_count" value="0"></input> | |
<input class="buttoninput buttoninput-center w55px center" type="text" name="attr_orders_price" value="0"></input> | |
<input class="buttoninput buttoninput-center center" type="text" name="attr_orders_availability" value="0"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_orders' value='!shadowrun --character @{character_id} --action order-buy --id @{orders_id} --name @{orders_name} --count @{orders_count} --availability @{orders_availability} --price @{orders_price}'></button> | |
<input class="buttoninput buttoninput-both w65px left" type="text" name="attr_orders_orderdate" value="0"></input> | |
<div class="details"> | |
<div class="labels color-darkred w100">Notizen</div> | |
<textarea name="attr_orders_note" class="w96 h100px clear"></textarea> | |
</div> | |
</div> | |
</fieldset><!--equipment--> | |
</div><!--float card--> | |
</div><!--submenu:orders--> | |
</div><!--equipment--> | |
</div><!--wrapper--> | |
<!-- ROLLTEMPLATES --> | |
<rolltemplate class="sheet-rolltemplate-roll"> | |
<table class="sheet-box {{#color}}{{color}}{{/color}}"> | |
<tr> | |
{{#erfolge}} | |
<td class="sheet-erfolge"> | |
{{#injurymod}}<div class="sheet-injurymod">{{injurymod}}</div>{{/injurymod}} | |
{{#limit}}<div class="sheet-limit">{{limit}}</div>{{/limit}} | |
<div class="sheet-count">{{erfolge}}</div> | |
{{#total}}<div class="sheet-pool">{{#basis}}{{basis}}{{/basis}}{{#mod}}+{{mod}}={{/mod}}{{^mod}}{{#basis}}={{/basis}}{{/mod}}{{#total}}{{total}}{{/total}}{{^total}}?{{/total}}W6</div>{{/total}} | |
</td>{{/erfolge}} | |
<td class="sheet-text"> | |
<div class="sheet-desc">{{text}}</div> | |
{{#edge}}<div class="sheet-pool">{{edge}}</div>{{/edge}} | |
</td> | |
</tr> | |
{{#desc}} | |
<tr> | |
<td class="border-top" colspan="2"><div class="sheet-note">{{desc}}</div></td> | |
</tr>{{/desc}} | |
</table> | |
</rolltemplate> | |
<rolltemplate class="sheet-rolltemplate-zauber"> | |
<div class="sheet-text">{{text}}{{#ks}} [{{ks}}]{{/ks}}</div> | |
<div class="sheet-probe">{{#basis}}{{basis}}{{/basis}}{{#mod}}+{{mod}}{{/mod}}{{#pool}}{{#basis}}={{/basis}}{{pool}}W6{{/pool}}{{#erfolge}}, {{erfolge}} Erfolge{{/erfolge}}</div> | |
{{#kategorie}}<table> | |
<tr> | |
<td class="sheet-w50">{{kategorie}}</td> | |
<td class="sheet-w50"><em>Art:</em> {{art}}</td> | |
</tr> | |
<tr> | |
<td><em>Reichweite:</em> {{reichweite}}</td> | |
<td><em>Dauer:</em> {{dauer}}</td> | |
</tr> | |
<tr> | |
<td><em>Schaden:</em> {{schaden}}</td> | |
<td><em>Entzug:</em> {{entzug}}</td> | |
</tr> | |
{{#entzugswiderstand}} | |
<tr> | |
<td colspan="2" class="sheet-entzugsschaden"><em>Du erleidest {{entzugswiderstand}} Entzugsschaden.</em></td> | |
</tr> | |
{{/entzugswiderstand}} | |
{{#reagenzien}} | |
<tr> | |
<td colspan="2" class="sheet-entzugsschaden"><em>Du verbrauchst {{reagenzien}} Reagenzien.</em></td> | |
</tr> | |
{{/reagenzien}} | |
<tr><td colspan="2" class="sheet-italic">{{beschreibung}}</td></tr> | |
</table> | |
{{/kategorie}} | |
</rolltemplate> | |
<rolltemplate class="sheet-rolltemplate-alchemie"> | |
<div class="sheet-text">{{text}}{{#ks}} [{{ks}}]{{/ks}}</div> | |
<div class="sheet-probe">{{#basis}}{{basis}}{{/basis}}{{#mod}}+({{mod}}){{/mod}}{{#pool}}={{pool}}W6{{/pool}}{{#erfolge}}, Wirksamkeit {{erfolge}}{{/erfolge}}</div> | |
<table> | |
{{#herzstueck}} | |
<tr> | |
<td colspan="2" class="sheet-entzugsschaden"><em>Herzstück:</em>{{herzstueck}}</td> | |
</tr> | |
{{/herzstueck}} | |
<tr> | |
<td colspan="2">{{kategorie}}</td> | |
</tr> | |
<tr> | |
<td><em>Auslöser:</em> {{ausloeser}}</td> | |
<td><em>Art:</em> {{art}}</td> | |
</tr> | |
<tr> | |
<td><em>Reichweite:</em> {{reichweite}}</td> | |
<td><em>Dauer:</em> {{dauer}}</td> | |
</tr> | |
<tr> | |
<td><em>Schaden:</em> {{schaden}}</td> | |
<td><em>Entzug:</em> {{entzug}}</td> | |
</tr> | |
{{#entzugswiderstand}} | |
<tr> | |
<td colspan="2" class="sheet-entzugsschaden"><em>Du erleidest {{entzugswiderstand}} Entzugsschaden.</em></td> | |
</tr> | |
{{/entzugswiderstand}} | |
{{#reagenzien}} | |
<tr> | |
<td colspan="2" class="sheet-entzugsschaden"><em>Du verbrauchst {{reagenzien}} Reagenzien.</em></td> | |
</tr> | |
{{/reagenzien}} | |
<tr><td colspan="2" class="sheet-italic">{{beschreibung}}</td></tr> | |
</table> | |
</rolltemplate> | |
<rolltemplate class="sheet-rolltemplate-complex-form"> | |
<div class="sheet-text">{{text}}{{#stufe}} [{{stufe}}]{{/stufe}}</div> | |
<div class="sheet-probe">{{#basis}}{{basis}}{{/basis}}{{#mod}}+{{mod}}{{/mod}}{{#pool}}{{#basis}}={{/basis}}{{pool}}W6{{/pool}}{{#erfolge}}, {{erfolge}} Erfolge{{/erfolge}}</div> | |
<table> | |
<tr> | |
<td class="sheet-w50"><em>Ziel:</em> {{ziel}}</td> | |
<td class="sheet-w50"><em>Dauer:</em> {{dauer}}</td> | |
<td class="sheet-w50"><em>Schwund:</em> {{schwund}}</td> | |
</tr> | |
{{#schwundwiderstand}} | |
<tr> | |
<td colspan="3" class="sheet-schwundschaden"><em>Du erleidest {{schwundwiderstand}} Schwundschaden.</em></td> | |
</tr> | |
{{/schwundwiderstand}} | |
<tr><td colspan="3" class="sheet-italic">{{beschreibung}}</td></tr> | |
</table> | |
</rolltemplate> | |
<rolltemplate class="sheet-rolltemplate-kraft"> | |
<div class="sheet-text">{{text}}{{name}}</div> | |
<table> | |
{{#art}}<tr> | |
<td><em>Art:</em> {{art}}</td> | |
<td><em>Handlung:</em> {{handlung}}</td> | |
</tr> | |
{{/art}} | |
{{#reichweite}} | |
<tr> | |
<td><em>Reichweite:</em> {{reichweite}}</td> | |
<td><em>Dauer:</em> {{dauer}}</td> | |
</tr> | |
{{/reichweite}} | |
<tr><td colspan="2" class="sheet-italic">{{beschreibung}}</td></tr> | |
</table> | |
</rolltemplate> | |
<rolltemplate class="sheet-rolltemplate-schwaeche"> | |
<div class="sheet-text">{{text}}{{name}}</div> | |
<div class="sheet-beschreibung">{{beschreibung}}</div> | |
</rolltemplate> | |
<rolltemplate class="sheet-rolltemplate-rangedattack"> | |
<div class="sheet-text">{{text}}</div> | |
{{#erfolge}}<div class="sheet-probe">{{basis}}+{{mod}}={{pool}}W6{{#erfolge}}, {{erfolge}} Erfolge{{/erfolge}}</div>{{/erfolge}} | |
<table> | |
{{#kurz}}<tr> | |
<td><em>Kurz:</em> {{kurz}}</td> | |
<td><em>Mittel:</em> {{mittel}}</td> | |
<td><em>Weit:</em> {{weit}}</td> | |
<td><em>Extrem:</em> {{extrem}}</td> | |
</tr>{{/kurz}} | |
{{#schaden}}<tr> | |
<td colspan="2"><em>Schaden:</em> {{schaden}}</td> | |
<td><em>DK:</em> {{dk}}</td> | |
<td><em>RK:</em> {{rk}}</td> | |
</tr>{{/schaden}} | |
{{#modus}}<tr> | |
{{#praezision}} | |
<td colspan="1"><em>Modus:</em> {{modus}}</td> | |
<td colspan="1"><em>Präzision:</em> {{praezision}}</td> | |
<td colspan="2"><em>Munition:</em> {{munition_aktuell}}/{{munition_maximum}}</td> | |
{{/praezision}} | |
{{^praezision}} | |
<td colspan="2"><em>Modus:</em> {{modus}}</td> | |
<td colspan="2"><em>Munition:</em> {{munition_aktuell}}/{{munition_maximum}}</td> | |
{{/praezision}} | |
</tr>{{/modus}} | |
{{#anzahlkugeln}} | |
<tr><td colspan="4" class="sheet-italic">Du verschießt {{anzahlkugeln}} Kugeln</td></tr> | |
{{/anzahlkugeln}} | |
{{#recoil}} | |
<tr><td colspan="4" class="sheet-italic">Dein aktueller Rückstoß beträgt -{{recoil}}</td></tr> | |
{{/recoil}} | |
{{#munition_update}} | |
<tr><td colspan="4" class="sheet-italic">Munition muss um -{{munition_update}} aktualisiert werden</td></tr> | |
{{/munition_update}} | |
{{#tarn}} | |
<tr><td colspan="4" class="sheet-italic"><em>Tarnmodifikator:</em> {{tarn}}</td></tr> | |
{{/tarn}} | |
</table> | |
</rolltemplate> | |
<rolltemplate class="sheet-rolltemplate-meleeattack"> | |
<div class="sheet-text">{{text}}</div> | |
{{#erfolge}}<div class="sheet-probe">{{#basis}}{{basis}}{{/basis}}{{#mod}}+({{mod}}){{/mod}}{{#pool}}={{pool}}W6{{/pool}}{{#erfolge}}, {{erfolge}} Erfolge{{/erfolge}}</div>{{/erfolge}} | |
<table> | |
{{#reichweite}}<tr> | |
<td><em>Reichweite:</em> {{reichweite}}</td> | |
<td><em>Schaden:</em> {{schaden}}</td> | |
</tr>{{/reichweite}} | |
{{#praezision}}<tr> | |
<td><em>Präzision:</em> {{praezision}}</td> | |
<td><em>DK:</em> {{dk}}</td> | |
</tr>{{/praezision}} | |
{{#tarn}} | |
<tr><td colspan="2" class="sheet-italic"><em>Tarnmodifikator:</em> {{tarn}}</td></tr> | |
{{/tarn}} | |
</table> | |
</rolltemplate> | |
<rolltemplate class="sheet-rolltemplate-geist"> | |
<div class="sheet-text">{{#text}}{{text}} {{/text}}{{name}} [{{ks}}]</div> | |
{{#erfolge}}<div class="sheet-probe">{{#basis}}{{basis}}{{/basis}}{{#mod}}+({{mod}}){{/mod}}{{#pool}}={{pool}}W6{{/pool}}{{#erfolge}}, {{erfolge}} Erfolge{{/erfolge}}</div>{{/erfolge}} | |
{{#geist-erfolge}}<div class="sheet-probe">Der Geist hat {{geist-erfolge}} Erfolge</div>{{/geist-erfolge}} | |
{{#dienste}}<div class="sheet-probe">Dienste: {{dienste}}</div>{{/dienste}} | |
{{#entzugsschaden}}<div class="sheet-probe">Du erleidest {{entzugsschaden}} Entzugsschaden</div>{{/entzugsschaden}} | |
{{#reagenzien}}<div class="sheet-probe">Der verbrauchst {{reagenzien}} Reagenzien</div>{{/reagenzien}} | |
<table> | |
{{#kon}} | |
<tr> | |
<td><em>Kon:</em></td><td>{{kon}}</td> | |
<td><em>Ges:</em></td><td>{{ges}}</td> | |
<td><em>Rea:</em></td><td>{{rea}}</td> | |
<td><em>Str:</em></td><td>{{str}}</td> | |
</tr> | |
<tr> | |
<td><em>Wil:</em></td><td>{{wil}}</td> | |
<td><em>Log:</em></td><td>{{log}}</td> | |
<td><em>Int:</em></td><td>{{int}}</td> | |
<td><em>Cha:</em></td><td>{{cha}}</td> | |
</tr> | |
<tr> | |
<td><em>Edg:</em></td><td>{{edg}}</td> | |
<td><em>Ess:</em></td><td>{{ess}}</td> | |
<td><em>Mag:</em></td><td>{{mag}}</td> | |
<td></td><td></td> | |
</tr>{{/kon}} | |
{{#ini}}<tr> | |
<td colspan="4"><em>Initiative:</em></td><td colspan="4">{{ini}}</td> | |
</tr> | |
<tr> | |
<td colspan="4"><em>Astrale Initiative:</em></td><td colspan="4">{{a-ini}}</td> | |
</tr>{{/ini}} | |
{{#fertigkeiten}}<tr> | |
<td colspan="8"><em>Fertigkeiten:</em></td> | |
</tr> | |
<tr> | |
<td colspan="8">{{fertigkeiten}}</td> | |
</tr>{{/fertigkeiten}} | |
{{#kräfte}}<tr> | |
<td colspan="8"><em>Kräfte:</em></td> | |
</tr> | |
<tr> | |
<td colspan="8">{{kräfte}}</td> | |
</tr> | |
<tr> | |
<td colspan="8"><em>Zusätzliche Kräfte:</em></td> | |
</tr> | |
<tr> | |
<td colspan="8">{{zusätzliche-kräfte}}</td> | |
</tr> | |
<tr> | |
<td colspan="8"><em>Schwächen:</em></td> | |
</tr> | |
<tr> | |
<td colspan="8">{{schwächen}}</td> | |
</tr>{{/kräfte}} | |
{{#besonderheiten}}<tr> | |
<td colspan="8"><em>Besonderheiten:</em></td> | |
</tr> | |
<tr> | |
<td colspan="8">{{besonderheiten}}</td> | |
</tr>{{/besonderheiten}} | |
</table> | |
</rolltemplate> | |
<rolltemplate class="sheet-rolltemplate-sprite"> | |
<div class="sheet-text">{{#text}}{{text}} {{/text}}{{name}} [{{stufe}}]</div> | |
{{#erfolge}}<div class="sheet-probe">{{#basis}}{{basis}}{{/basis}}{{#mod}}+({{mod}}){{/mod}}{{#pool}}={{pool}}W6{{/pool}}{{#erfolge}}, {{erfolge}} Erfolge{{/erfolge}}</div>{{/erfolge}} | |
{{#sprite-erfolge}}<div class="sheet-probe">Das Sprite hat {{sprite-erfolge}} Erfolge</div>{{/sprite-erfolge}} | |
<table> | |
{{#angriff}} | |
<tr> | |
<td><em>A:</em></td><td>{{angriff}}</td> | |
<td><em>S:</em></td><td>{{schleicher}}</td> | |
<td><em>D:</em></td><td>{{datenverarbeitung}}</td> | |
<td><em>F:</em></td><td>{{firewall}}</td> | |
</tr> | |
<tr> | |
<td><em>RES:</em></td><td>{{resonanz}}</td> | |
<td><em>INI:</em></td><td colspan="5">{{initiative}}</td> | |
</tr> | |
<tr> | |
<td colspan="8"><em>Fertigkeiten:</em></td> | |
</tr> | |
<tr> | |
<td colspan="8">{{fertigkeiten}}</td> | |
</tr> | |
<tr> | |
<td colspan="8"><em>Kräfte:</em></td> | |
</tr> | |
<tr> | |
<td colspan="8">{{kräfte}}</td> | |
</tr> | |
{{/angriff}} | |
<tr> | |
<td colspan="8"><em>Du erleidest </em> {{fadeschaden}} <em>Schwundschaden</em></td> | |
</tr> | |
<tr> | |
<td colspan="8"><em>Das Sprite schuldet dir </em> {{tasks}} <em>Aufgaben</em></td> | |
</tr> | |
{{#beschreibung}} | |
<tr> | |
<td colspan="8"><em>Beschreibung:</em></td> | |
</tr> | |
<tr> | |
<td colspan="8"><em>{{beschreibung}}</em></td> | |
</tr> | |
{{/beschreibung}} | |
</table> | |
</rolltemplate> | |
<rolltemplate class="sheet-rolltemplate-probe"> | |
<div class="sheet-text {{#color}}{{color}}{{/color}}">{{#text}}{{text}} {{/text}}{{#test}}{{test}}{{/test}}</div> | |
{{#erfolge}}<div class="sheet-probe">{{#basis}}{{basis}}{{/basis}}{{#mod}}+({{mod}}){{/mod}}{{#pool}}{{#basis}}={{/basis}}{{pool}}W6{{/pool}}{{#erfolge}}{{#probe}}, {{/probe}}{{erfolge}} Erfolge{{/erfolge}}</div>{{/erfolge}} | |
{{#wert}}<div class="sheet-wert">{{#basis}}{{basis}}{{/basis}}{{#mod}}+({{mod}}){{/mod}}{{#basis}}={{/basis}}{{wert}}</div>{{/wert}} | |
</rolltemplate> | |
<rolltemplate class="sheet-rolltemplate-attribut"> | |
<table> | |
<tr> | |
<td class="sheet-text">{{text}}</td> | |
<td class="sheet-erfolge">{{erfolge}}</td> | |
</tr> | |
</table> | |
</rolltemplate> | |
<rolltemplate class="sheet-rolltemplate-aktionsfertigkeit"> | |
<table> | |
<tr> | |
<td class="sheet-text">{{text}}</td> | |
<td class="sheet-erfolge">{{erfolge}}</td> | |
</tr> | |
</table> | |
</rolltemplate> | |
<rolltemplate class="sheet-rolltemplate-wissensfertigkeit"> | |
<table> | |
<tr> | |
<td class="sheet-text">{{text}}</td> | |
<td class="sheet-erfolge">{{erfolge}}</td> | |
</tr> | |
</table> | |
</rolltemplate> | |
<rolltemplate class="sheet-rolltemplate-entzug"> | |
<table> | |
<tr> | |
<td class="sheet-text">{{text}}</td> | |
<td class="sheet-erfolge">{{erfolge}}</td> | |
</tr> | |
</table> | |
</rolltemplate> | |
<rolltemplate class="sheet-rolltemplate-schwund"> | |
<table> | |
<tr> | |
<td class="sheet-text">{{text}}</td> | |
<td class="sheet-erfolge">{{erfolge}}</td> | |
</tr> | |
</table> | |
</rolltemplate> | |
<rolltemplate class="sheet-rolltemplate-defense"> | |
<table> | |
<tr> | |
<td class="sheet-text">{{text}}</td> | |
<td class="sheet-erfolge">{{erfolge}}</td> | |
</tr> | |
</table> | |
</rolltemplate> | |
<rolltemplate class="sheet-rolltemplate-initiative"> | |
<table> | |
<tr> | |
<td class="sheet-text">{{text}}</td> | |
<td class="sheet-erfolge">{{erfolge}}</td> | |
</tr> | |
</table> | |
</rolltemplate> | |
<rolltemplate class="sheet-rolltemplate-zustandsmonitor"> | |
{{#paktuell}} | |
<table> | |
<tbody> | |
{{#probe}} | |
<tr class="header-white"> | |
<td colspan="2">Probe</td> | |
<td>{{probe}}</td> | |
</tr> | |
{{/probe}} | |
<tr class="header"> | |
<td>Physisch</td> | |
<td>Geistig</td> | |
<td>Überzählig</td> | |
</tr> | |
<tr> | |
<td class="center">{{paktuell}}/{{pmax}}</td> | |
<td class="center">{{gaktuell}}/{{gmax}}</td> | |
<td class="center">{{overflow}}/{{overflowmax}}</td> | |
</tr> | |
{{#mod}} | |
<tr> | |
<td colspan="2" class="roundbottomborder5"><em>Verletzungsmodifikator:</em></td><td class="center">{{mod}}</td> | |
</tr> | |
{{/mod}} | |
{{#hoheschmerztoleranz}} | |
<tr> | |
<td colspan="2" class="roundbottomborder5"><em>Hohe Schmerztoleranz:</em></td><td class="center">{{hoheschmerztoleranz}}</td> | |
</tr> | |
{{/hoheschmerztoleranz}} | |
</tbody> | |
</table> | |
{{/paktuell}} | |
</rolltemplate> | |
<rolltemplate class="sheet-rolltemplate-connection"> | |
<div class="sheet-text">{{#text}}{{text}}{{/text}}</div> | |
{{#typ}}<div class="sheet-typ">{{typ}}</div>{{/typ}} | |
{{#wert}}<div class="sheet-wert">{{wert}}</div>{{/wert}} | |
</rolltemplate> | |
<rolltemplate class="sheet-rolltemplate-item"> | |
<div class="sheet-text">{{#text}}{{text}} {{/text}}{{#test}}{{test}}{{/test}}{{#erfolge}}{{/erfolge}}</div> | |
{{#erfolge}}<div class="sheet-probe">{{#basis}}{{basis}}{{/basis}}{{#mod}}+({{mod}}){{/mod}}{{#pool}}={{pool}}W6{{/pool}}{{#erfolge}}, {{erfolge}} Erfolge{{/erfolge}}</div>{{/erfolge}} | |
{{#wert}}<div class="sheet-wert">{{#basis}}{{basis}}{{/basis}}{{#mod}}+({{mod}}){{/mod}}{{#basis}}={{/basis}}{{wert}}</div>{{/wert}} | |
</rolltemplate> | |
<rolltemplate class="sheet-rolltemplate-edge"> | |
<div class="sheet-text">{{#text}}{{text}} {{/text}}{{#test}}{{test}}{{/test}}{{#erfolge}}{{/erfolge}}</div> | |
{{#erfolge}}<div class="sheet-probe">{{#basis}}{{basis}}{{/basis}}{{#mod}}+({{mod}}){{/mod}}{{#pool}}={{pool}}W6{{/pool}}{{#erfolge}}, {{erfolge}} Erfolge{{/erfolge}}</div>{{/erfolge}} | |
{{#wert}}<div class="sheet-wert">{{#basis}}{{basis}}{{/basis}}{{#mod}}+({{mod}}){{/mod}}{{#basis}}={{/basis}}{{wert}}</div>{{/wert}} | |
</rolltemplate> | |
<rolltemplate class="sheet-rolltemplate-tragkraft"> | |
<div class="sheet-text">{{#text}}{{text}} {{/text}}{{#test}}{{test}}{{/test}}</div> | |
{{#erfolge}}<div class="sheet-erfolge">Erfolge: {{erfolge}}</div>{{/erfolge}} | |
{{#str}}<div class="sheet-erfolge"><em>STR:</em>: {{str}},<em>KON:</em>: {{kon}}</div>{{/str}} | |
{{#heben}}<table> | |
<tbody> | |
<tr> | |
<td>Heben</td> | |
<td>Tragen</td> | |
<td>Stemmen</td> | |
</tr> | |
<tr> | |
<td>{{heben}}</td> | |
<td>{{tragen}}</td> | |
<td>{{stemmen}}</td> | |
</tr> | |
</tbody> | |
</table>{{/heben}} | |
</rolltemplate> | |
<rolltemplate class="sheet-rolltemplate-bewegung"> | |
<div class="sheet-text">{{#text}}{{text}}{{/text}}</div> | |
{{#gehen_frei}}<div class="sheet-wert">Noch {{gehen_frei}}m gehen übrig</div>{{/gehen_frei}} | |
{{#laufen_frei}}<div class="sheet-wert">Noch {{laufen_frei}}m laufen übrig</div>{{/laufen_frei}} | |
{{#sprinten}}<div class="sheet-wert">Inkl. +{{sprinten}}m durch Sprinten</div>{{/sprinten}} | |
</rolltemplate> | |
<rolltemplate class="sheet-rolltemplate-gm-menu"> | |
{{#title}}<div class="sheet-menu-title">{{title}}</div>{{/title}} | |
{{#allprops() title}}<div class="sheet-menu-row">{{value}}</div>{{/allprops() title}} | |
</rolltemplate> | |
<!-- Sheet Worker --> | |
<script type="text/worker"> | |
/* ---- BEGIN: TheAaronSheet.js ---- */ | |
// Github: https://github.com/shdwjk/TheAaronSheet/blob/master/TheAaronSheet.js | |
// By: The Aaron, Arcane Scriptomancer | |
// Contact: https://app.roll20.net/users/104025/the-aaron | |
var TAS = TAS || (function(){ | |
'use strict'; | |
var version = '0.2.1', | |
lastUpdate = 1453794214, | |
loggingSettings = { | |
debug: { | |
key: 'debug', | |
title: 'DEBUG', | |
color: { | |
bgLabel: '#7732A2', | |
label: '#F2EF40', | |
bgText: '#FFFEB7', | |
text: '#7732A2' | |
} | |
}, | |
error: { | |
key: 'error', | |
title: 'Error', | |
color: { | |
bgLabel: '#C11713', | |
label: 'white', | |
bgText: '#C11713', | |
text: 'white' | |
} | |
}, | |
warn: { | |
key: 'warn', | |
title: 'Warning', | |
color: { | |
bgLabel: '#F29140', | |
label: 'white', | |
bgText: '#FFD8B7', | |
text: 'black' | |
} | |
}, | |
info: { | |
key: 'info', | |
title: 'Info', | |
color: { | |
bgLabel: '#413FA9', | |
label: 'white', | |
bgText: '#B3B2EB', | |
text: 'black' | |
} | |
}, | |
notice: { | |
key: 'notice', | |
title: 'Notice', | |
color: { | |
bgLabel: '#33C133', | |
label: 'white', | |
bgText: '#ADF1AD', | |
text: 'black' | |
} | |
}, | |
log: { | |
key: 'log', | |
title: 'Log', | |
color: { | |
bgLabel: '#f2f240', | |
label: 'black', | |
bgText: '#ffff90', | |
text: 'black' | |
} | |
}, | |
callstack: { | |
key: 'TAS', | |
title: 'function', | |
color: { | |
bgLabel: '#413FA9', | |
label: 'white', | |
bgText: '#B3B2EB', | |
text: 'black' | |
} | |
}, | |
callstack_async: { | |
key: 'TAS', | |
title: 'ASYNC CALL', | |
color: { | |
bgLabel: '#413FA9', | |
label: 'white', | |
bgText: '#413FA9', | |
text: 'white' | |
} | |
}, | |
TAS: { | |
key: 'TAS', | |
title: 'TAS', | |
color: { | |
bgLabel: 'grey', | |
label: 'black;background:linear-gradient(#304352,#d7d2cc,#d7d2cc,#d7d2cc,#304352)', | |
bgText: 'grey', | |
text: 'black;background:linear-gradient(#304352,#d7d2cc,#d7d2cc,#d7d2cc,#304352)' | |
} | |
} | |
}, | |
config = { | |
debugMode: false, | |
logging: { | |
log: true, | |
notice: true, | |
info: true, | |
warn: true, | |
error: true, | |
debug: false | |
} | |
}, | |
callstackRegistry = [], | |
queuedUpdates = {}, //< Used for delaying saves till the last momment. | |
complexType = function(o){ | |
switch(typeof o){ | |
case 'string': | |
return 'string'; | |
case 'boolean': | |
return 'boolean'; | |
case 'number': | |
return (_.isNaN(o) ? 'NaN' : (o.toString().match(/\./) ? 'decimal' : 'integer')); | |
case 'function': | |
return 'function: '+(o.name ? o.name+'()' : '(anonymous)'); | |
case 'object': | |
return (_.isArray(o) ? 'array' : (_.isArguments(o) ? 'arguments' : ( _.isNull(o) ? 'null' : 'object'))); | |
default: | |
return typeof o; | |
} | |
}, | |
dataLogger = function(primaryLogger,secondaryLogger,data){ | |
_.each(data,function(m){ | |
var type = complexType(m); | |
switch(type){ | |
case 'string': | |
primaryLogger(m); | |
break; | |
case 'undefined': | |
case 'null': | |
case 'NaN': | |
primaryLogger('['+type+']'); | |
break; | |
case 'number': | |
case 'not a number': | |
case 'integer': | |
case 'decimal': | |
case 'boolean': | |
primaryLogger('['+type+']: '+m); | |
break; | |
default: | |
primaryLogger('['+type+']:========================================='); | |
secondaryLogger(m); | |
primaryLogger('========================================================='); | |
break; | |
} | |
}); | |
}, | |
colorLog = function(options){ | |
var coloredLoggerFunction, | |
key = options.key, | |
label = options.title || 'TAS', | |
lBGColor = (options.color && options.color.bgLabel) || 'blue', | |
lTxtColor = (options.color && options.color.label) || 'white', | |
mBGColor = (options.color && options.color.bgText) || 'blue', | |
mTxtColor = (options.color && options.color.text) || 'white'; | |
coloredLoggerFunction = function(message){ | |
console.log( | |
'%c '+label+': %c '+message, | |
'background-color: '+lBGColor+';color: '+lTxtColor+'; font-weight:bold;', | |
'background-color: '+mBGColor+';color: '+mTxtColor+';' | |
); | |
}; | |
return function(){ | |
if('TAS'===key || config.logging[key]){ | |
dataLogger(coloredLoggerFunction,function(m){console.log(m);},_.toArray(arguments)); | |
} | |
}; | |
}, | |
logDebug = colorLog(loggingSettings.debug), | |
logError = colorLog(loggingSettings.error), | |
logWarn = colorLog(loggingSettings.warn), | |
logInfo = colorLog(loggingSettings.info), | |
logNotice = colorLog(loggingSettings.notice), | |
logLog = colorLog(loggingSettings.log), | |
log = colorLog(loggingSettings.TAS), | |
logCS = colorLog(loggingSettings.callstack), | |
logCSA = colorLog(loggingSettings.callstack_async), | |
registerCallstack = function(callstack,label){ | |
var idx=_.findIndex(callstackRegistry,function(o){ | |
return (_.difference(o.stack,callstack).length === _.difference(callstack,o.stack).length) | |
&& _.difference(o.stack,callstack).length === 0 | |
&& o.label === label; | |
}); | |
if(-1 === idx){ | |
idx=callstackRegistry.length; | |
callstackRegistry.push({ | |
stack: callstack, | |
label: label | |
}); | |
} | |
return idx; | |
}, | |
setConfigOption = function(options){ | |
var newconf =_.defaults(options,config); | |
newconf.logging=_.defaults( | |
(options && options.logging)||{}, | |
config.logging | |
); | |
config=newconf; | |
}, | |
debugMode = function(){ | |
config.logging.debug=true; | |
config.debugMode = true; | |
}, | |
getCallstack = function(){ | |
var e = new Error('dummy'), | |
stack = _.map(_.rest(e.stack.replace(/^[^\(]+?[\n$]/gm, '') | |
.replace(/^\s+at\s+/gm, '') | |
.replace(/^Object.<anonymous>\s*\(/gm, '{anonymous}()@') | |
.split('\n')),function(l){ | |
return l.replace(/\s+.*$/,''); | |
}); | |
return stack; | |
}, | |
logCallstackSub = function(cs){ | |
var matches, csa; | |
_.find(cs,function(line){ | |
matches = line.match(/TAS_CALLSTACK_(\d+)/); | |
if(matches){ | |
csa=callstackRegistry[matches[1]]; | |
logCSA( '===================='+(csa.label ? '> '+csa.label+' <' : '')+'===================='); | |
logCallstackSub(csa.stack); | |
return true; | |
} | |
logCS(line); | |
return false; | |
}); | |
}, | |
logCallstack = function(){ | |
var cs; | |
if(config.debugMode){ | |
cs = getCallstack(); | |
cs.shift(); | |
log('==============================> CALLSTACK <=============================='); | |
logCallstackSub(cs); | |
log('========================================================================='); | |
} | |
}, | |
wrapCallback = function (label, callback,context){ | |
var callstack; | |
if('function' === typeof label){ | |
context=callback; | |
callback=label; | |
label=undefined; | |
} | |
if(!config.debugMode){ | |
return (function(cb,ctx){ | |
return function(){ | |
cb.apply(ctx||{},arguments); | |
}; | |
}(callback,context)); | |
} | |
callstack = getCallstack(); | |
callstack.shift(); | |
return (function(cb,ctx,cs,lbl){ | |
var ctxref=registerCallstack(cs,lbl); | |
return new Function('cb','ctx','TASlog', | |
"return function TAS_CALLSTACK_"+ctxref+"(){"+ | |
"TASlog('Entering: '+(cb.name||'(anonymous function)'));"+ | |
"cb.apply(ctx||{},arguments);"+ | |
"TASlog('Exiting: '+(cb.name||'(anonymous function)'));"+ | |
"};")(cb,ctx,log); | |
}(callback,context,callstack,label)); | |
}, | |
prepareUpdate = function( attribute, value ){ | |
queuedUpdates[attribute]=value; | |
}, | |
applyQueuedUpdates = function() { | |
setAttrs(queuedUpdates); | |
queuedUpdates = {}; | |
}, | |
namesFromArgs = function(args,base){ | |
return _.chain(args) | |
.reduce(function(memo,attr){ | |
if('string' === typeof attr) { | |
memo.push(attr); | |
} else if(_.isArray(args) || _.isArguments(args)){ | |
memo = namesFromArgs(attr,memo); | |
} | |
return memo; | |
},(_.isArray(base) && base) || []) | |
.uniq() | |
.value(); | |
}, | |
addId = function(obj,value){ | |
Object.defineProperty(obj,'id',{ | |
value: value, | |
writeable: false, | |
enumerable: false | |
}); | |
}, | |
addProp = function(obj,prop,value,fullname){ | |
(function(){ | |
var pname=(_.contains(['S','F','I','D'],prop) ? '_'+prop : prop), | |
full_pname = fullname || prop, | |
pvalue=value; | |
_.each(['S','I','F'],function(p){ | |
if( !_.has(obj,p)){ | |
Object.defineProperty(obj, p, { | |
value: {}, | |
enumerable: false, | |
readonly: true | |
}); | |
} | |
}); | |
if( !_.has(obj,'D')){ | |
Object.defineProperty(obj, 'D', { | |
value: _.reduce(_.range(10),function(m,d){ | |
Object.defineProperty(m, d, { | |
value: {}, | |
enumerable: true, | |
readonly: true | |
}); | |
return m; | |
},{}), | |
enumerable: false, | |
readonly: true | |
}); | |
} | |
// Raw value | |
Object.defineProperty(obj, pname, { | |
enumerable: true, | |
set: function(v){ | |
pvalue=v; | |
prepareUpdate(full_pname,v); | |
}, | |
get: function(){ | |
return pvalue; | |
} | |
}); | |
// string value | |
Object.defineProperty(obj.S, pname, { | |
enumerable: true, | |
set: function(v){ | |
var val=v.toString(); | |
pvalue=val; | |
prepareUpdate(full_pname,val); | |
}, | |
get: function(){ | |
return pvalue.toString(); | |
} | |
}); | |
// int value | |
Object.defineProperty(obj.I, pname, { | |
enumerable: true, | |
set: function(v){ | |
var val=parseInt(v,10) || 0; | |
pvalue=val; | |
prepareUpdate(full_pname,val); | |
}, | |
get: function(){ | |
return parseInt(pvalue,10) || 0; | |
} | |
}); | |
// float value | |
Object.defineProperty(obj.F, pname, { | |
enumerable: true, | |
set: function(v){ | |
var val=parseFloat(v) || 0; | |
pvalue=val; | |
prepareUpdate(full_pname,val); | |
}, | |
get: function(){ | |
return parseFloat(pvalue) || 0; | |
} | |
}); | |
_.each(_.range(10),function(d){ | |
Object.defineProperty(obj.D[d], pname, { | |
enumerable: true, | |
set: function(v){ | |
var val=(parseFloat(v) || 0).toFixed(d); | |
pvalue=val; | |
prepareUpdate(full_pname,val); | |
}, | |
get: function(){ | |
return (parseFloat(pvalue) || 0).toFixed(d); | |
} | |
}); | |
}); | |
}()); | |
}, | |
repeating = function( section ) { | |
return (function(s){ | |
var sectionName = s, | |
attrNames = [], | |
fieldNames = [], | |
operations = [], | |
after = [], | |
repAttrs = function TAS_Repeating_Attrs(){ | |
attrNames = namesFromArgs(arguments,attrNames); | |
return this; | |
}, | |
repFields = function TAS_Repeating_Fields(){ | |
fieldNames = namesFromArgs(arguments,fieldNames); | |
return this; | |
}, | |
repReduce = function TAS_Repeating_Reduce(func, initial, final, context) { | |
operations.push({ | |
type: 'reduce', | |
func: (func && _.isFunction(func) && func) || _.noop, | |
memo: (_.isUndefined(initial) && 0) || initial, | |
final: (final && _.isFunction(final) && final) || _.noop, | |
context: context || {} | |
}); | |
return this; | |
}, | |
repMap = function TAS_Repeating_Map(func, final, context) { | |
operations.push({ | |
type: 'map', | |
func: (func && _.isFunction(func) && func) || _.noop, | |
final: (final && _.isFunction(final) && final) || _.noop, | |
context: context || {} | |
}); | |
return this; | |
}, | |
repEach = function TAS_Repeating_Each(func, final, context) { | |
operations.push({ | |
type: 'each', | |
func: (func && _.isFunction(func) && func) || _.noop, | |
final: (final && _.isFunction(final) && final) || _.noop, | |
context: context || {} | |
}); | |
return this; | |
}, | |
repTap = function TAS_Repeating_Tap(final, context) { | |
operations.push({ | |
type: 'tap', | |
final: (final && _.isFunction(final) && final) || _.noop, | |
context: context || {} | |
}); | |
return this; | |
}, | |
repAfter = function TAS_Repeating_After(callback,context) { | |
after.push({ | |
callback: (callback && _.isFunction(callback) && callback) || _.noop, | |
context: context || {} | |
}); | |
return this; | |
}, | |
repExecute = function TAS_Repeating_Execute(callback,context){ | |
var rowSet = {}, | |
attrSet = {}, | |
fieldIds = [], | |
fullFieldNames = []; | |
repAfter(callback,context); | |
// call each operation per row. | |
// call each operation's final | |
getSectionIDs("repeating_"+sectionName,function(ids){ | |
fieldIds = ids; | |
fullFieldNames = _.reduce(fieldIds,function(memo,id){ | |
return memo.concat(_.map(fieldNames,function(name){ | |
return 'repeating_'+sectionName+'_'+id+'_'+name; | |
})); | |
},[]); | |
getAttrs( _.uniq(attrNames.concat(fullFieldNames)), function(values){ | |
_.each(attrNames,function(aname){ | |
if(values.hasOwnProperty(aname)){ | |
addProp(attrSet,aname,values[aname]); | |
} | |
}); | |
rowSet = _.reduce(fieldIds,function(memo,id){ | |
var r={}; | |
addId(r,id); | |
_.each(fieldNames,function(name){ | |
var fn = 'repeating_'+sectionName+'_'+id+'_'+name; | |
addProp(r,name,values[fn],fn); | |
}); | |
memo[id]=r; | |
return memo; | |
},{}); | |
_.each(operations,function(op){ | |
var res; | |
switch(op.type){ | |
case 'tap': | |
_.bind(op.final,op.context,rowSet,attrSet)(); | |
break; | |
case 'each': | |
_.each(rowSet,function(r){ | |
_.bind(op.func,op.context,r,attrSet,r.id,rowSet)(); | |
}); | |
_.bind(op.final,op.context,rowSet,attrSet)(); | |
break; | |
case 'map': | |
res = _.map(rowSet,function(r){ | |
return _.bind(op.func,op.context,r,attrSet,r.id,rowSet)(); | |
}); | |
_.bind(op.final,op.context,res,rowSet,attrSet)(); | |
break; | |
case 'reduce': | |
res = op.memo; | |
_.each(rowSet,function(r){ | |
res = _.bind(op.func,op.context,res,r,attrSet,r.id,rowSet)(); | |
}); | |
_.bind(op.final,op.context,res,rowSet,attrSet)(); | |
break; | |
} | |
}); | |
// finalize attrs | |
applyQueuedUpdates(); | |
_.each(after,function(op){ | |
_.bind(op.callback,op.context)(); | |
}); | |
}); | |
}); | |
}; | |
return { | |
attrs: repAttrs, | |
attr: repAttrs, | |
column: repFields, | |
columns: repFields, | |
field: repFields, | |
fields: repFields, | |
reduce: repReduce, | |
inject: repReduce, | |
foldl: repReduce, | |
map: repMap, | |
collect: repMap, | |
each: repEach, | |
forEach: repEach, | |
tap: repTap, | |
'do': repTap, | |
after: repAfter, | |
last: repAfter, | |
done: repAfter, | |
execute: repExecute, | |
go: repExecute, | |
run: repExecute | |
}; | |
}(section)); | |
}, | |
repeatingSimpleSum = function(section, field, destination){ | |
repeating(section) | |
.attr(destination) | |
.field(field) | |
.reduce(function(m,r){ | |
return m + (r.F[field]); | |
},0,function(t,r,a){ | |
a[destination]=t; | |
}) | |
.execute(); | |
}; | |
console.log('%c•.¸¸.•*´¨`*•.¸¸.•*´¨`*•.¸ The Aaron Sheet v'+version+' ¸.•*´¨`*•.¸¸.•*´¨`*•.¸¸.•','background: linear-gradient(to right,green,white,white,green); color:black;text-shadow: 0 0 8px white;'); | |
console.log('%c•.¸¸.•*´¨`*•.¸¸.•*´¨`*•.¸ Last update: '+(new Date(lastUpdate*1000))+' ¸.•*´¨`*•.¸¸.•*´¨`*•.¸¸.•','background: linear-gradient(to right,green,white,white,green); color:black;text-shadow: 0 0 8px white;'); | |
return { | |
/* Repeating Sections */ | |
repeatingSimpleSum: repeatingSimpleSum, | |
repeating: repeating, | |
/* Configuration */ | |
config: setConfigOption, | |
/* Debugging */ | |
callback: wrapCallback, | |
callstack: logCallstack, | |
debugMode: debugMode, | |
_fn: wrapCallback, | |
/* Logging */ | |
debug: logDebug, | |
error: logError, | |
warn: logWarn, | |
info: logInfo, | |
notice: logNotice, | |
log: logLog | |
}; | |
}()); | |
/* ---- END: TheAaronSheet.js ---- */ | |
// Attributes | |
on("sheet:opened change:kon_basis change:kon_mod",function(){update_kon();}); | |
on("sheet:opened change:ges_basis change:ges_mod",function(){update_ges();}); | |
on("sheet:opened change:rea_basis change:rea_mod",function(){update_rea();}); | |
on("sheet:opened change:str_basis change:str_mod",function(){update_str();}); | |
on("sheet:opened change:wil_basis change:wil_mod",function(){update_wil();}); | |
on("sheet:opened change:int_basis change:int_mod",function(){update_int();}); | |
on("sheet:opened change:log_basis change:log_mod",function(){update_log();}); | |
on("sheet:opened change:cha_basis change:cha_mod",function(){update_cha();}); | |
on("sheet:opened change:mag_basis change:mag_mod",function(){update_mag();}); | |
on("sheet:opened change:res_basis change:res_mod",function(){update_res();}); | |
on("sheet:opened change:edg_basis change:edg_mod",function(){update_edg();}); | |
on("sheet:opened change:ess_basis change:ess_mod",function(){update_ess();}); | |
// Initiative | |
on("sheet:opened change:ini_active "+ | |
"change:initiative_basis change:ar_initiative_basis change:vr_cold_initiative_basis change:vr_hot_initiative_basis change:astral_initiative_basis "+ | |
"change:initiative_mod change:ar_initiative_mod change:vr_cold_initiative_mod change:vr_hot_initiative_mod change:astral_initiative_mod "+ | |
"change:initiative_wuerfel change:ar_initiative_wuerfel change:vr_cold_initiative_wuerfel change:vr_hot_initiative_wuerfel change:astral_initiative_wuerfel", function() { | |
set_active_ini() | |
}); | |
on("sheet:opened change:rea change:int",function(){update_initiative();}); | |
on("sheet:opened change:rea change:int",function(){update_ar_initiative();}); | |
on("sheet:opened", function() { | |
update_vr_cold_initiative(); | |
update_vr_hot_initiative(); | |
}); | |
on("sheet:opened change:int",function(){update_astral_initiative();}); | |
// Limits | |
on("sheet:opened change:str change:kon change:rea change:klimit_mod",function(){update_klimit();}); | |
on("sheet:opened change:log change:int change:wil change:glimit_mod",function(){update_glimit();}); | |
on("sheet:opened change:cha change:wil change:ess change:slimit_mod",function(){update_slimit();}); | |
on("sheet:opened change:glimit change:slimit", function(){update_alimit();}); | |
// Bewegung / Tragen | |
on("sheet:opened change:ges change:bewegung_gehen_mult change:bewegung_laufen_mult", function(){update_movement();}); | |
on("sheet:opened change:str change:tragkraft_heben_mult change:tragkraft_tragen_mult change:tragkraft_stemmen_mult",function(){update_lifting();}); | |
// attribute tests | |
on("sheet:opened change:cha change:wil change:selbstbeherrschung_mod",function(){update_composure();}); | |
on("sheet:opened change:cha change:int change:menschenkenntnis_mod", function(){update_judge();}); | |
on("sheet:opened change:log change:int change:erinnerung_mod", function(){update_memory();}); | |
// SUM | |
// Karma | |
on("sheet:opened change:repeating_advancementkarma remove:repeating_advancementkarma", function() { | |
TAS.repeating('advancementkarma') | |
.attrs('karma_total','karma_current') //< getting the attributes for the totals | |
.fields('advancementkarma_karma') //< specifying the fields we care about | |
.reduce(function(m,r){ | |
m.income += r.I.advancementkarma_karma>0 ? r.I.advancementkarma_karma:0; //< Generate a running cost | |
m.expense += r.I.advancementkarma_karma<0 ? r.I.advancementkarma_karma:0; | |
return m; | |
},{income:0,expense:0},function(m,r,a){ | |
a.I.karma_total = m.income; //< take the final sum and set it on the total attribute | |
console.log("Set karma_total to"+m.income) | |
a.I.karma_current = m.income + m.expense; | |
console.log("Set karma_current to"+a.I.karma_current) | |
}) | |
.execute(); //< begin executing the above operations | |
}); | |
// nuyen | |
on("sheet:opened change:repeating_advancementnuyen remove:repeating_advancementnuyen", function() { | |
TAS.repeating('advancementnuyen') | |
.attrs('nuyen_total') //< getting the attributes for the totals | |
.fields('advancementnuyen_nuyen') //< specifying the fields we care about | |
.reduce(function(m,r){ | |
m += r.I.advancementnuyen_nuyen; //< Generate a running cost | |
return m; | |
},0,function(m,r,a){ | |
a.I.nuyen_total = m; //< take the final sum and set it on the total attribute | |
console.log("Set nuyen to"+m) | |
}) | |
.execute(); //< begin executing the above operations | |
}); | |
on("sheet:opened change:nuyen_total change:nuyen_aktuell", function() { | |
getAttrs(["nuyen_total","nuyen_aktuell"], function(v) { | |
setAttrs({ | |
'nuyen_neu': safe.I(v.nuyen_aktuell) - safe.I(v.nuyen_total) | |
}); | |
}); | |
}); | |
// essence | |
on("sheet:opened change:repeating_augmentation remove:repeating_augmentations", function() { | |
TAS.repeating('augmentations') | |
.attrs('ess_mod') //< getting the attributes for the totals | |
.fields('augmentations_essence') //< specifying the fields we care about | |
.reduce(function(m,r){ | |
m += r.F.augmentations_essence; //< Generate a running cost | |
return m; | |
},0,function(m,r,a){ | |
a.F.ess_mod = m; //< take the final sum and set it on the total attribute | |
console.log("Set ess_mod to"+m) | |
}) | |
.execute(); //< begin executing the above operations | |
}); | |
// settings | |
on("sheet:opened change:use_edge", function() { | |
getAttrs(["use_edge"], function(v) { | |
console.log("USE EDGE:"+v.use_edge) | |
use_edge = (v.use_edge == "on") | |
if(use_edge){ | |
setAttrs({ | |
'cmd_use_edge_token': "!", | |
'cmd_use_edge_text' : "{{edge=Edge @{edg}}}", | |
'cmd_use_edge_mod' : "+@{edg}" | |
}); | |
}else{ | |
setAttrs({ | |
'cmd_use_edge_token': "", | |
'cmd_use_edge_text' : "", | |
'cmd_use_edge_mod' : "" | |
}); | |
} | |
}); | |
}); | |
on("sheet:opened change:use_injury_mod change:injury_mod", function() { | |
getAttrs(["use_injury_mod","injury_mod"], function(v) { | |
use_injury = (v.use_injury_mod == "on"); | |
if(use_injury && v.injury_mod > 0){ | |
setAttrs({ | |
'cmd_injury_mod': "-@{injury_mod}", | |
'cmd_injury_text': "{{injurymod=-@{injury_mod}}}" | |
}); | |
}else{ | |
setAttrs({ | |
'cmd_injury_mod': "", | |
'cmd_injury_text': "" | |
}); | |
} | |
setAttrs({ | |
'injury_mod_negative': -safe.I(v.injury_mod) | |
}); | |
}); | |
}); | |
on("sheet:opened change:hide_rolls", function() { | |
getAttrs(["hide_rolls"], function(v) { | |
hide_rolls = (v.hide_rolls == "on"); | |
if(hide_rolls){ | |
setAttrs({ | |
'hide_rolls_cmd': "/w gm " | |
}); | |
}else{ | |
setAttrs({ | |
'hide_rolls_cmd': "/em " | |
}); | |
} | |
}); | |
}); | |
// Actionskills | |
on("change:repeating_skillsaction:skillsaction_id change:repeating_skillsaction:skillsaction_limit "+ | |
"change:repeating_skillsaction:skillsaction_limit change:repeating_skillsaction:skillsaction_limit_mod "+ | |
"change:repeating_skillsaction:skillsaction_note change:repeating_skillsaction:skillsaction_include_note", function() { | |
getAttrs(["klimit","glimit","slimit","alimit", | |
"repeating_skillsaction_skillsaction_id", | |
"repeating_skillsaction_skillsaction_limit","repeating_skillsaction_skillsaction_limit_mod", | |
"repeating_skillsaction_skillsaction_note","repeating_skillsaction_skillsaction_include_note"], function(v) { | |
if(v.repeating_skillsaction_skillsaction_id = "" || v.repeating_skillsaction_skillsaction_id == undefined){ | |
return; | |
} | |
console.log("Selected Limit:"+v.repeating_skillsaction_skillsaction_limit); | |
var mod = safe.I(v.repeating_skillsaction_skillsaction_limit_mod); | |
if(v.repeating_skillsaction_skillsaction_limit == "@{klimit}"){ | |
console.log("@{klimit}:"+v.klimit); | |
var total = safe.I(v.klimit) + mod; | |
setAttrs({ | |
'repeating_skillsaction_skillsaction_limit_text': "{{limit="+total+"}}", | |
'repeating_skillsaction_skillsaction_limit_formatted': "kh"+total, | |
'repeating_skillsaction_skillsaction_limit_display': safe.I(v.klimit), | |
'repeating_skillsaction_skillsaction_limit_total': total | |
}); | |
}else if(v.repeating_skillsaction_skillsaction_limit == "@{glimit}"){ | |
console.log("@{glimit}:"+v.glimit); | |
var total = safe.I(v.glimit) + mod; | |
setAttrs({ | |
'repeating_skillsaction_skillsaction_limit_text': "{{limit="+total+"}}", | |
'repeating_skillsaction_skillsaction_limit_formatted': "kh"+total, | |
'repeating_skillsaction_skillsaction_limit_display': safe.I(v.glimit), | |
'repeating_skillsaction_skillsaction_limit_total': total | |
}); | |
}else if(v.repeating_skillsaction_skillsaction_limit == "@{slimit}"){ | |
console.log("@{slimit}:"+v.slimit); | |
var total = safe.I(v.slimit) + mod; | |
setAttrs({ | |
'repeating_skillsaction_skillsaction_limit_text': "{{limit="+total+"}}", | |
'repeating_skillsaction_skillsaction_limit_formatted': "kh"+total, | |
'repeating_skillsaction_skillsaction_limit_display': safe.I(v.slimit), | |
'repeating_skillsaction_skillsaction_limit_total': total | |
}); | |
}else if(v.repeating_skillsaction_skillsaction_limit == "@{alimit}"){ | |
console.log("@{alimit}:"+v.alimit); | |
var total = safe.I(v.alimit) + mod; | |
setAttrs({ | |
'repeating_skillsaction_skillsaction_limit_text': "{{limit="+total+"}}", | |
'repeating_skillsaction_skillsaction_limit_formatted': "kh"+total, | |
'repeating_skillsaction_skillsaction_limit_display': safe.I(v.alimit), | |
'repeating_skillsaction_skillsaction_limit_total': total | |
}); | |
}else if(v.repeating_skillsaction_skillsaction_limit == "0"){ | |
console.log("0+"+v.repeating_skillsaction_skillsaction_limit_mod); | |
var total = mod; | |
setAttrs({ | |
'repeating_skillsaction_skillsaction_limit_text': "{{limit="+total+"}}", | |
'repeating_skillsaction_skillsaction_limit_formatted': "kh"+total, | |
'repeating_skillsaction_skillsaction_limit_display': "-", | |
'repeating_skillsaction_skillsaction_limit_total': total | |
}); | |
}else if(v.repeating_skillsaction_skillsaction_limit == "99"){ | |
console.log("99: NO LIMIT"); | |
setAttrs({ | |
'repeating_skillsaction_skillsaction_limit_text': "{{unused}}", | |
'repeating_skillsaction_skillsaction_limit_formatted': "kh9999", | |
'repeating_skillsaction_skillsaction_limit_display': "-", | |
'repeating_skillsaction_skillsaction_limit_total': "-" | |
}); | |
}else{ | |
console.log("ELSE "+v.repeating_skillsaction_skillsaction_limit); | |
} | |
if(v.repeating_skillsaction_skillsaction_include_note == "on"){ | |
setAttrs({ | |
'repeating_skillsaction_skillsaction_desc': "{{desc=@{skillsaction_note}}}" | |
}); | |
}else{ | |
setAttrs({ | |
'repeating_skillsaction_skillsaction_desc': "{{unused}}" | |
}); | |
} | |
}); | |
}); | |
on("change:repeating_skillsknowledge:skillsknowledge_id change:repeating_skillsknowledge:skillsknowledge_limit change:repeating_skillsknowledge:skillsknowledge_limit_mod "+ | |
"change:repeating_skillsknowledge:skillsknowledge_limit_note change:repeating_skillsknowledge:skillsknowledge_include_note", function(eventInfo) { | |
getAttrs(["klimit","glimit","slimit","alimit", | |
"repeating_skillsknowledge_skillsknowledge_id", | |
"repeating_skillsknowledge_skillsknowledge_limit","repeating_skillsknowledge_skillsknowledge_limit_mod", | |
"repeating_skillsknowledge_skillsknowledge_note","repeating_skillsknowledge_skillsknowledge_include_note"], function(v) { | |
if(v.repeating_skillsknowledge_skillsknowledge_id = "" || v.repeating_skillsknowledge_skillsknowledge_id == undefined){ | |
return; | |
} | |
var mod = safe.I(v.repeating_skillsknowledge_skillsknowledge_limit_mod); | |
if(v.repeating_skillsknowledge_skillsknowledge_limit == "@{glimit}"){ | |
var total = safe.I(v.glimit) + mod; | |
setAttrs({ | |
'repeating_skillsknowledge_skillsknowledge_limit_text': "{{limit="+safe.I(v.glimit)+"}}", | |
'repeating_skillsknowledge_skillsknowledge_limit_formatted': "kh"+safe.I(v.glimit), | |
'repeating_skillsknowledge_skillsknowledge_limit_display': v.glimit, | |
'repeating_skillsknowledge_skillsknowledge_limit_total': total | |
}); | |
}else if(v.repeating_skillsknowledge_skillsknowledge_limit == "0"){ | |
var total = mod; | |
setAttrs({ | |
'repeating_skillsknowledge_skillsknowledge_limit_text': "{{limit="+safe.I(v.repeating_skillsknowledge_skillsknowledge_limit_mod)+"}}", | |
'repeating_skillsknowledge_skillsknowledge_limit_formatted': "kh"+safe.I(v.repeating_skillsknowledge_skillsknowledge_limit_mod), | |
'repeating_skillsknowledge_skillsknowledge_limit_display': "-", | |
'repeating_skillsknowledge_skillsknowledge_limit_total': total | |
}); | |
}else if(v.repeating_skillsknowledge_skillsknowledge_limit == "99"){ | |
setAttrs({ | |
'repeating_skillsknowledge_skillsknowledge_limit_text': "{{unused}}", | |
'repeating_skillsknowledge_skillsknowledge_limit_formatted': "kh9999", | |
'repeating_skillsknowledge_skillsknowledge_limit_display': "-", | |
'repeating_skillsknowledge_skillsknowledge_limit_total': "-" | |
}); | |
} | |
if(v.repeating_skillsknowledge_skillsknowledge_include_note == "on"){ | |
setAttrs({ | |
'repeating_skillsknowledge_skillsknowledge_desc': "{{desc=@{skillsknowledge_note}}}" | |
}); | |
}else{ | |
setAttrs({ | |
'repeating_skillsknowledge_skillsknowledge_desc': "{{unused}}" | |
}); | |
} | |
}); | |
}); | |
//Zustandsmonitor | |
on("change:zmp_aktuell change:zmp_maximum change:zmp_toleranz "+ | |
"change:zmg_aktuell change:zmg_maximum change:zmg_toleranz "+ | |
"change:overflow_aktuell change:overflow_maximum change:overflow_toleranz", function() { | |
getAttrs(["zmp_aktuell","zmp_maximum","zmp_toleranz", | |
"zmg_aktuell","zmg_maximum","zmg_toleranz", | |
"overflow_aktuell","overflow_maximum","overflow_toleranz"], function(v) { | |
var pc = safe.I(v.zmp_aktuell); | |
var pm = safe.I(v.zmp_maximum); | |
var pt = safe.I(v.zmp_toleranz); | |
var gc = safe.I(v.zmg_aktuell); | |
var gm = safe.I(v.zmg_maximum); | |
var gt = safe.I(v.zmg_toleranz); | |
var oc = safe.I(v.overflow_aktuell); | |
var om = safe.I(v.overflow_maximum); | |
var ot = safe.I(v.overflow_toleranz); | |
if(gc > gm + 1){ | |
//Overflow -> physical per 2 boxes | |
var overflow = Math.floor((gc - gm)/2.0); | |
pc = pc + overflow; | |
//Substract overflow from mental | |
gc = gc - overflow*2; | |
} | |
if(pc > pm){ | |
var overflow = pc - pm; | |
oc = oc + overflow; | |
//Substract overflow from physical | |
pc = pc - overflow; | |
} | |
if(pt<=0){ | |
pt =1; | |
} | |
if(gt<=0){ | |
gt =1; | |
} | |
if(ot<=0){ | |
ot = 1; | |
} | |
var mod_p = Math.floor(pc/pt); | |
var mod_g = Math.floor(gc/gt); | |
var injurymod = mod_p + mod_g; | |
setAttrs({ | |
"zmp_aktuell":pc, | |
"zmp_toleranz":pt, | |
"zmg_aktuell":gc, | |
"zmg_toleranz":gt, | |
"overflow_aktuell":oc, | |
"overflow_toleranz":ot, | |
"injury_mod":injurymod | |
}); | |
}); | |
}); | |
//ROW ID | |
on("sheet:opened change:repeating_spellcasting", function() {update_id("spellcasting");}); | |
on("sheet:opened change:repeating_alchemyspells", function() {update_id("alchemyspells");}); | |
on("sheet:opened change:repeating_preparations:preparations_name", function() {update_id("preparations");}); | |
on("sheet:opened change:repeating_summonspirit", function() {update_id("summonspirit");}); | |
on("sheet:opened change:repeating_rituals", function() {update_id("rituals");}); | |
on("sheet:opened change:repeating_adeptpowers", function() {update_id("adeptpowers");}); | |
on("sheet:opened change:repeating_positivequalities", function() {update_id("positivequalities");}); | |
on("sheet:opened change:repeating_negativequalities", function() {update_id("negativequalities");}); | |
on("sheet:opened change:repeating_advancementkarma", function() {update_id("advancementkarma");}); | |
on("sheet:opened change:repeating_advancementnuyen", function() {update_id("advancementnuyen");}); | |
on("sheet:opened change:repeating_skillsaction", function() {update_id("skillsaction");}); | |
on("sheet:opened change:repeating_skillsknowledge", function() {update_id("skillsknowledge");}); | |
on("sheet:opened change:repeating_weaponsranged", function() {update_id("weaponsranged");}); | |
on("sheet:opened change:repeating_weaponsmelee", function() {update_id("weaponsmelee");}); | |
on("sheet:opened change:repeating_combatpools", function() {update_id("combatpools");}); | |
on("sheet:opened change:repeating_armor", function() {update_id("armor");}); | |
on("sheet:opened change:repeating_cyberdecks", function() {update_id("cyberdecks");}); | |
on("sheet:opened change:repeating_riggerconsoles", function() {update_id("riggerconsoles");}); | |
on("sheet:opened change:repeating_matrixprograms", function() {update_id("matrixprograms");}); | |
on("sheet:opened change:repeating_complexforms", function() {update_id("complexforms");}); | |
on("sheet:opened change:repeating_compilesprites", function() {update_id("compilesprites");}); | |
on("sheet:opened change:repeating_sins", function() {update_id("sins");}); | |
on("sheet:opened change:repeating_licenses", function() {update_id("licenses");}); | |
on("sheet:opened change:repeating_lifestyles", function() {update_id("lifestyles");}); | |
on("sheet:opened change:repeating_connections", function() {update_id("connections");}); | |
on("sheet:opened change:repeating_equipment", function() {update_id("equipment");}); | |
on("sheet:opened change:repeating_augmentations", function() {update_id("augmentations");}); | |
on("sheet:opened change:repeating_ammunition", function() {update_id("ammunition");}); | |
on("sheet:opened change:repeating_vehicles", function() {update_id("vehicles");}); | |
on("sheet:opened change:repeating_drones", function() {update_id("drones");}); | |
on("sheet:opened change:repeating_orders", function() {update_id("orders");}); | |
var update_id = function(name){ getSectionIDs("repeating_"+name, function(idarray) {for(var i=0; i < idarray.length; i++) {var attrs ={};attrs['repeating_'+name+'_' + idarray[i] + '_'+name+'_id'] = idarray[i];setAttrs(attrs,{silent:true});}});}; | |
var update_kon = function(){getAttrs(["kon_basis","kon_mod"],function(v){setAttrs({"kon":safe.I(v["kon_basis"])+safe.I(v["kon_mod"])});});}; | |
var update_ges = function(){getAttrs(["ges_basis","ges_mod"],function(v){setAttrs({"ges":safe.I(v["ges_basis"])+safe.I(v["ges_mod"])});});}; | |
var update_rea = function(){getAttrs(["rea_basis","rea_mod"],function(v){setAttrs({"rea":safe.I(v["rea_basis"])+safe.I(v["rea_mod"])});});}; | |
var update_str = function(){getAttrs(["str_basis","str_mod"],function(v){setAttrs({"str":safe.I(v["str_basis"])+safe.I(v["str_mod"])});});}; | |
var update_wil = function(){getAttrs(["wil_basis","wil_mod"],function(v){setAttrs({"wil":safe.I(v["wil_basis"])+safe.I(v["wil_mod"])});});}; | |
var update_int = function(){getAttrs(["int_basis","int_mod"],function(v){setAttrs({"int":safe.I(v["int_basis"])+safe.I(v["int_mod"])});});}; | |
var update_log = function(){getAttrs(["log_basis","log_mod"],function(v){setAttrs({"log":safe.I(v["log_basis"])+safe.I(v["log_mod"])});});}; | |
var update_cha = function(){getAttrs(["cha_basis","cha_mod"],function(v){setAttrs({"cha":safe.I(v["cha_basis"])+safe.I(v["cha_mod"])});});}; | |
// special attributes | |
var update_mag = function(){getAttrs(["mag_basis","mag_mod"],function(v){setAttrs({"mag":safe.I(v["mag_basis"])+safe.I(v["mag_mod"])});});}; | |
var update_res = function(){getAttrs(["res_basis","res_mod"],function(v){setAttrs({"res":safe.I(v["res_basis"])+safe.I(v["res_mod"])});});}; | |
// edge/essence | |
var update_edg = function(){ | |
getAttrs(["edg_basis","edg_mod"], function(v) { | |
setAttrs({ | |
"edg": safe.I(v.edg_basis) + safe.I(v.edg_mod), | |
"edgpunkte_max": safe.I(v.edg_basis) + safe.I(v.edg_mod) | |
}); | |
}); | |
}; | |
var update_ess = function(){ | |
getAttrs(["ess_basis","ess_mod"], function(v) { | |
setAttrs({ | |
"ess": safe.F(v.ess_basis) - safe.F(v.ess_mod) | |
}); | |
}); | |
}; | |
var update_initiative = function(){ | |
getAttrs(["rea","int"], function(v) { | |
setAttrs({ | |
"initiative_basis": safe.F(v.rea) + safe.F(v.int) | |
}); | |
}); | |
}; | |
var update_ar_initiative = function(){ | |
getAttrs(["rea","int"], function(v) { | |
setAttrs({ | |
"ar_initiative_basis": safe.F(v.rea) + safe.F(v.int) | |
}); | |
}); | |
}; | |
var update_vr_cold_initiative = function(){ | |
return;//Do nothing at the moment -> Later we want to update this from the active deck | |
getAttrs(["int"], function(v) { | |
setAttrs({ | |
"vr_cold_initiative_basis": safe.F(v.int)*2.0 | |
}); | |
}); | |
}; | |
var update_vr_hot_initiative = function(){ | |
return;//Do nothing at the moment -> Later we want to update this from the active deck | |
getAttrs(["int"], function(v) { | |
setAttrs({ | |
"vr_hot_initiative_basis": safe.F(v.int)*2.0 | |
}); | |
}); | |
}; | |
var update_astral_initiative = function(){ | |
getAttrs(["int"], function(v) { | |
setAttrs({ | |
"astral_initiative_basis": safe.F(v.int)*2.0 | |
}); | |
}); | |
}; | |
var set_active_ini = function(){ | |
getAttrs(["ini_active", | |
"initiative_basis","initiative_mod","initiative_wuerfel", | |
"ar_initiative_basis","ar_initiative_mod","ar_initiative_wuerfel", | |
"vr_cold_initiative_basis","vr_cold_initiative_mod","vr_cold_initiative_wuerfel", | |
"vr_hot_initiative_basis","vr_hot_initiative_mod","vr_hot_initiative_wuerfel", | |
"ar_initiative_basis","ar_initiative_mod","ar_initiative_wuerfel", | |
"astral_initiative_basis","astral_initiative_mod","astral_initiative_wuerfel"], function(v) { | |
if (v.ini_active == "INI"){ | |
setAttrs({ | |
"initiative_basis_active": safe.I(v.initiative_basis), | |
"initiative_mod_active": safe.I(v.initiative_mod), | |
"initiative_wuerfel_active": safe.I(v.initiative_wuerfel) | |
}); | |
}else if (v.ini_active == "AR"){ | |
setAttrs({ | |
"initiative_basis_active": safe.I(v.ar_initiative_basis), | |
"initiative_mod_active": safe.I(v.ar_initiative_mod), | |
"initiative_wuerfel_active": safe.I(v.ar_initiative_wuerfel) | |
}); | |
}else if (v.ini_active == "VRk"){ | |
setAttrs({ | |
"initiative_basis_active": safe.I(v.vr_cold_initiative_basis), | |
"initiative_mod_active": safe.I(v.vr_cold_initiative_mod), | |
"initiative_wuerfel_active": safe.I(v.vr_cold_initiative_wuerfel) | |
}); | |
}else if (v.ini_active == "VRh"){ | |
setAttrs({ | |
"initiative_basis_active": safe.I(v.vr_hot_initiative_basis), | |
"initiative_mod_active": safe.I(v.vr_hot_initiative_mod), | |
"initiative_wuerfel_active": safe.I(v.vr_hot_initiative_wuerfel) | |
}); | |
}else if (v.ini_active == "Astral"){ | |
setAttrs({ | |
"initiative_basis_active": safe.I(v.astral_initiative_basis), | |
"initiative_mod_active": safe.I(v.astral_initiative_mod), | |
"initiative_wuerfel_active": safe.I(v.astral_initiative_wuerfel) | |
}); | |
} | |
}); | |
}; | |
// limits | |
var update_klimit = function(){ | |
getAttrs(["str","kon","rea","klimit_mod"], function(v) { | |
klimit = Math.ceil((safe.I(v.str)*2.0 + safe.I(v.kon) + safe.I(v.rea))/3.0); | |
klimit_mod = safe.I(v.klimit_mod); | |
setAttrs({ | |
"klimit_basis": klimit, | |
"klimit": klimit + klimit_mod | |
}); | |
}); | |
}; | |
var update_glimit = function(){ | |
getAttrs(["log","int","wil","glimit_mod"], function(v) { | |
glimit = Math.ceil((safe.I(v.log)*2.0 + safe.I(v.int) + safe.I(v.wil))/3.0); | |
glimit_mod = safe.I(v.glimit_mod); | |
setAttrs({ | |
"glimit_basis": glimit, | |
"glimit": glimit + glimit_mod | |
}); | |
}); | |
}; | |
var update_slimit = function(){ | |
getAttrs(["cha","wil","ess","slimit_mod"], function(v) { | |
slimit = Math.ceil((safe.I(v.cha)*2.0 + safe.I(v.wil) + safe.I(v.ess))/3.0); | |
slimit_mod = safe.I(v.slimit_mod); | |
setAttrs({ | |
"slimit_basis": slimit, | |
"slimit": slimit + slimit_mod | |
}); | |
}); | |
}; | |
var update_alimit = function(){ | |
getAttrs(["glimit","slimit","alimit_mod"], function(v) { | |
alimit = Math.max(safe.I(v.glimit),safe.I(v.slimit)); | |
alimit_mod = safe.I(v.alimit_mod); | |
setAttrs({ | |
"alimit_basis": alimit, | |
"alimit": alimit + alimit_mod | |
}); | |
}); | |
}; | |
// movement | |
var update_movement = function(){ | |
getAttrs(["ges","bewegung_gehen_mult","bewegung_laufen_mult"], function(v) { | |
ges = safe.I(v.ges); | |
gehen_mult = safe.I(v.bewegung_gehen_mult); | |
laufen_mult = safe.I(v.bewegung_laufen_mult); | |
setAttrs({ | |
"bewegung_gehen": ges*gehen_mult, | |
"bewegung_laufen": ges*laufen_mult, | |
"bewegung_sprinten": 0 | |
}); | |
}); | |
}; | |
// lifting | |
var update_lifting = function(){ | |
getAttrs(["str","tragkraft_heben_mult","tragkraft_tragen_mult","tragkraft_stemmen_mult"], function(v) { | |
str = safe.I(v.str); | |
heben_mult = safe.I(v.tragkraft_heben_mult); | |
tragen_mult = safe.I(v.tragkraft_tragen_mult); | |
stemmen_mult = safe.I(v.tragkraft_stemmen_mult); | |
setAttrs({ | |
"tragkraft_heben": str*heben_mult, | |
"tragkraft_tragen": str*tragen_mult, | |
"tragkraft_stemmen": str*stemmen_mult | |
}); | |
}); | |
}; | |
// attribute rolls | |
var update_composure = function(){ | |
getAttrs(["cha","wil","selbstbeherrschung_mod"], function(v) { | |
cha = safe.I(v.cha); | |
wil = safe.I(v.wil); | |
mod = safe.I(v.selbstbeherrschung_mod); | |
setAttrs({ | |
"selbstbeherrschung_basis": cha+wil, | |
"selbstbeherrschung": cha+wil+mod | |
}); | |
}); | |
}; | |
var update_judge = function(){ | |
getAttrs(["cha","int","menschenkenntnis_mod"], function(v) { | |
cha = safe.I(v.cha); | |
intuition = safe.I(v.int); | |
mod = safe.I(v.menschenkenntnis_mod); | |
setAttrs({ | |
"menschenkenntnis_basis": cha+intuition, | |
"menschenkenntnis": cha+intuition+mod | |
}); | |
}); | |
}; | |
var update_memory = function(){ | |
getAttrs(["log","int","erinnerung_mod"], function(v) { | |
log = safe.I(v.log); | |
intuition = safe.I(v.int); | |
mod = safe.I(v.erinnerung_mod); | |
setAttrs({ | |
"erinnerung_basis": log+intuition, | |
"erinnerung": log+intuition+mod | |
}); | |
}); | |
}; | |
var safe = { | |
I:function(x){return x = isNaN(parseInt(x)) ?0:parseInt(x);}, | |
F:function(x){return x = isNaN(parseFloat(x)) ?0:parseFloat(x);} | |
}; | |
</script> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Github: | |
// By: Wandler, The Apprentice | |
// Contact: | |
var Shadowrun = Shadowrun || (function() { | |
'use strict'; | |
var version = '0.0.1', | |
lastUpdate = 1427604268, | |
tableCache = {}, | |
ch = function (c) { | |
var entities = { | |
'<' : 'lt', | |
'>' : 'gt', | |
"'" : '#39', | |
'@' : '#64', | |
'{' : '#123', | |
'|' : '#124', | |
'}' : '#125', | |
'[' : '#91', | |
']' : '#93', | |
'"' : 'quot', | |
'-' : 'mdash', | |
' ' : 'nbsp' | |
}; | |
if(_.has(entities,c) ){ | |
return ('&'+entities[c]+';'); | |
} | |
return ''; | |
}, | |
checkInstall = function() { | |
log('-=> Shadowrun v'+version+' <=- ['+(new Date(lastUpdate*1000))+']'); | |
}, | |
showHelp = function() { | |
sendChat('','/w gm The help is not implemented yet.'); | |
}; | |
var handleShadowrunInput = function(msg) { | |
var args; | |
if (msg.type !== "api") { | |
return; | |
} | |
args = msg.content.splitArgs(/\s+/); | |
if(args[0] == "!shadowrun"){ | |
log(msg); | |
var character,character_id,action; | |
if(args.indexOf("--character") !== -1){ | |
character_id = args[args.indexOf("--character") + 1]; | |
character = getObj("character", character_id); | |
} | |
if(args.indexOf("--action") !== -1){ | |
action = args[args.indexOf("--action") + 1]; | |
} | |
if(character){ | |
if(action == "edge-use"){ | |
handleEdgeUse(msg,character); | |
}else if(action == "edge-refill"){ | |
handleEdgeRefill(msg,character); | |
}else if(action == "move"){ | |
var distance = parseInt(args[args.indexOf("--action") + 2]); | |
if(isNaN(distance)){ | |
whisperTo(msg.who,msg.who,"Bitte als Zahl angeben"); | |
return; | |
} | |
handleMove(msg,character,distance); | |
}else if(action == "run"){ | |
var distance = parseInt(args[args.indexOf("--action") + 2]); | |
handleRun(msg,character,distance); | |
}else if(action == "sprint"){ | |
var pool = parseInt(args[args.indexOf("--action") + 2]); | |
handleSprint(msg,character,pool); | |
}else if(action == "move-reset"){ | |
handleMoveReset(msg,character); | |
}else if(action == "run-reset"){ | |
handleRunReset(msg,character); | |
}else if(action == "sprint-reset"){ | |
handleSprintReset(msg,character); | |
}else if(action == "heben"){ | |
handleHeben(msg,character); | |
}else if(action == "tragen"){ | |
handleTragen(msg,character); | |
}else if(action == "stemmen"){ | |
handleStemmen(msg,character); | |
}else if(action == "heben-reset"){ | |
handleHebenReset(msg,character); | |
}else if(action == "tragen-reset"){ | |
handleTragenReset(msg,character); | |
}else if(action == "stemmen-reset"){ | |
handleStemmenReset(msg,character); | |
}else if(action == "alchemy-prepare"){ | |
var spellname = args[args.indexOf("--spell-name") + 1]; | |
var force = parseInt(args[args.indexOf("--ks") + 1]); | |
var basis = parseInt(args[args.indexOf("--basis") + 1]); | |
var mod = parseInt(args[args.indexOf("--mod") + 1]); | |
if(isNaN(force)||isNaN(basis)||isNaN(mod)){ | |
whisperTo(msg.who,msg.who,"Bitte als Zahl angeben"); | |
return; | |
} | |
var trigger_name = args[args.indexOf("--trigger") + 1]; | |
var trigger = 0; | |
switch(trigger_name){ | |
case 'Befehl':trigger=2;break; | |
case 'Kontakt':trigger=1;break; | |
case 'Zeitzünder':trigger=2;break; | |
case 'Ver._Befehl':trigger=2;break; | |
case 'Ver._Kontakt':trigger=1;break; | |
case 'Ver._Kontakt_Geschlecht/Metatyp':trigger=3;break; | |
} | |
trigger_name = trigger_name.replace(/\_/g," "); | |
handleAlchemyPrepare(msg,character,spellname,force,basis,mod,trigger,trigger_name); | |
}else if(action == "alchemy-use"){ | |
var id = args[args.indexOf("--id") + 1]; | |
var wirksamkeit = parseInt(args[args.indexOf("--wirksamkeit") + 1]); | |
var force = parseInt(args[args.indexOf("--force") + 1]); | |
var mod = parseInt(args[args.indexOf("--mod") + 1]); | |
handleAlchemyUse(msg,character,id,force,wirksamkeit); | |
}else if(action == "spellcasting-cast"){ | |
var id = args[args.indexOf("--id") + 1]; | |
var spellname = args[args.indexOf("--spellname") + 1]; | |
var force = parseInt(args[args.indexOf("--force") + 1]); | |
var basis = parseInt(args[args.indexOf("--basis") + 1]); | |
var mod = parseInt(args[args.indexOf("--mod") + 1]); | |
if(isNaN(force)||isNaN(basis)||isNaN(mod)){ | |
whisperTo(msg.who,msg.who,"Bitte als Zahl angeben"); | |
return; | |
} | |
handleSpellcastingCast(msg,character,spellname,id,force,basis,mod); | |
}else if(action == "summon-spirit"){ | |
var force = parseInt(args[args.indexOf("--force") + 1]); | |
var basis = parseInt(args[args.indexOf("--basis") + 1]); | |
var mod = parseInt(args[args.indexOf("--mod") + 1]); | |
if(isNaN(force)||isNaN(basis)||isNaN(mod)){ | |
whisperTo(msg.who,msg.who,"Bitte als Zahl angeben"); | |
return; | |
} | |
var aargs = msg.content.split(/\--+/); | |
var spiritname = aargs[3].substring(12,aargs[3].length - 1); | |
handleSummonSpirit(msg,character,spiritname,basis,mod,force); | |
}else if(action == "complexforms-use"){ | |
var id = args[args.indexOf("--id") + 1]; | |
var name = args[args.indexOf("--name") + 1]; | |
var force = parseInt(args[args.indexOf("--force") + 1]); | |
var basis = parseInt(args[args.indexOf("--basis") + 1]); | |
var mod = parseInt(args[args.indexOf("--mod") + 1]); | |
if(isNaN(force)||isNaN(basis)||isNaN(mod)){ | |
whisperTo(msg.who,msg.who,"Bitte als Zahl angeben"); | |
return; | |
} | |
handleComplexFormUse(msg,character,name,id,force,basis,mod); | |
}else if(action == "compile-sprite"){ | |
var force = parseInt(args[args.indexOf("--force") + 1]); | |
var basis = parseInt(args[args.indexOf("--basis") + 1]); | |
var mod = parseInt(args[args.indexOf("--mod") + 1]); | |
if(isNaN(force)||isNaN(basis)||isNaN(mod)){ | |
whisperTo(msg.who,msg.who,"Bitte als Zahl angeben"); | |
return; | |
} | |
var aargs = msg.content.split(/\--+/); | |
var spritename = aargs[3].substring(12,aargs[3].length - 1); | |
handleCompileSprite(msg,character,spritename,basis,mod,force); | |
}else if(action == "recoil-reset"){ | |
handleRecoilReset(msg,character); | |
}else if(action == "physical-damage"){ | |
var damage = parseInt(args[args.indexOf("--value") + 1]); | |
var resistpool = parseInt(args[args.indexOf("--resist") + 1]); | |
if(isNaN(damage)||isNaN(resistpool)){ | |
whisperTo(msg.who,msg.who,"Bitte als Zahl angeben"); | |
return; | |
} | |
physicalDamage(msg,character,damage,resistpool); | |
}else if(action == "physical-healing"){ | |
var healingpool = parseInt(args[args.indexOf("--pool") + 1]); | |
if(isNaN(healingpool)){ | |
whisperTo(msg.who,msg.who,"Bitte als Zahl angeben"); | |
return; | |
} | |
physicalHealing(msg,character,healingpool); | |
}else if(action == "physical-reset"){ | |
physicalReset(msg,character); | |
}else if(action == "mental-damage"){ | |
var damage = parseInt(args[args.indexOf("--value") + 1]); | |
var resistpool = parseInt(args[args.indexOf("--resist") + 1]); | |
if(isNaN(damage)||isNaN(resistpool)){ | |
whisperTo(msg.who,msg.who,"Bitte als Zahl angeben"); | |
return; | |
} | |
mentalDamage(msg,character,damage,resistpool); | |
}else if(action == "mental-healing"){ | |
var healingpool = parseInt(args[args.indexOf("--pool") + 1]); | |
if(isNaN(healingpool)){ | |
whisperTo(msg.who,msg.who,"Bitte als Zahl angeben"); | |
return; | |
} | |
mentalHealing(msg,character,healingpool); | |
}else if(action == "mental-reset"){ | |
mentalReset(msg,character); | |
}else if(action == "overflow-damage"){ | |
var damage = parseInt(args[args.indexOf("--value") + 1]); | |
var resistpool = parseInt(args[args.indexOf("--resist") + 1]); | |
if(isNaN(damage)||isNaN(resistpool)){ | |
whisperTo(msg.who,msg.who,"Bitte als Zahl angeben"); | |
return; | |
} | |
overflowDamage(msg,character,damage,resistpool); | |
}else if(action == "overflow-healing"){ | |
var healingpool = parseInt(args[args.indexOf("--pool") + 1]); | |
overflowHealing(msg,character,healingpool); | |
}else if(action == "overflow-reset"){ | |
overflowReset(msg,character); | |
}else if(action == "weaponsranged-attack"){ | |
var id = args[args.indexOf("--id") + 1]; | |
var mod = parseInt(args[args.indexOf("--mod") + 1]); | |
var bullets = parseInt(args[args.indexOf("--bullets") + 1]); | |
if(isNaN(mod)||isNaN(bullets)){ | |
whisperTo(msg.who,msg.who,"Bitte als Zahl angeben"); | |
return; | |
} | |
weaponsRangedAttack(msg,character,id,mod,bullets); | |
}else if(action == "weaponsranged-reload"){ | |
var id = args[args.indexOf("--id") + 1]; | |
weaponsRangedReload(msg,character,id); | |
}else if(action == "order-buy"){ | |
var name = args[args.indexOf("--name") + 1]; | |
var id = args[args.indexOf("--id") + 1]; | |
var count = parseInt(args[args.indexOf("--count") + 1]); | |
var price = parseInt(args[args.indexOf("--price") + 1]); | |
var availability = parseInt(args[args.indexOf("--availability") + 1]); | |
if(isNaN(count)||isNaN(price)||isNaN(availability)){ | |
whisperTo(msg.who,msg.who,"Bitte als Zahl angeben"); | |
return; | |
} | |
handleOrderBuy(msg,character,id,name,count,availability,price); | |
}else if(action == "order-buy-roll"){ | |
var name = args[args.indexOf("--name") + 1]; | |
var id = args[args.indexOf("--id") + 1]; | |
var count = parseInt(args[args.indexOf("--count") + 1]); | |
var price = parseInt(args[args.indexOf("--price") + 1]); | |
var availability = parseInt(args[args.indexOf("--availability") + 1]); | |
var pool = undefined; | |
if(args.indexOf("--pool") > -1){ | |
pool = parseInt(args[args.indexOf("--pool") + 1]); | |
if(isNaN(pool)){ | |
whisperTo(msg.who,msg.who,"Bitte als Zahl angeben"); | |
return; | |
} | |
} | |
var connection = undefined; | |
if(args.indexOf("--connection") > -1){ | |
connection = args[args.indexOf("--connection") + 1]; | |
} | |
var tryself = undefined; | |
if(args.indexOf("--try-self") > -1){ | |
tryself = args[args.indexOf("--try-self") + 1]; | |
if(tryself=="True"){ | |
tryself = true; | |
}else{ | |
tryself = false; | |
} | |
} | |
handleOrderRoll(msg,character,id,name,count,availability,price,connection,tryself,pool); | |
}else if(action == "contact-connection"){ | |
var id = args[args.indexOf("--id") + 1]; | |
handleContactConnection(msg,character,id); | |
}else if(action == "connection-test-availability"){ | |
var id = args[args.indexOf("--id") + 1]; | |
handleConnectionTestAvailability(msg,character,id); | |
}else if(action == "connection-answer-call"){ | |
var id = args[args.indexOf("--id") + 1]; | |
handleConnectionAnswerCall(msg,character,id); | |
}else if(action == "fix-repeating"){ | |
log("Try to fix"); | |
var name = args[args.indexOf("--name") + 1]; | |
//var nameRegex = /repeating_skillsknowledge_[^_]+_skillsknowledge_id/; | |
var nameRegex = new RegExp('repeating_'+name+'_[^_]*_'+name+'.*'); | |
var searchResult = filterObjs(function(o){return o.get('type')==='attribute' && o.get('characterid') === character.id && o.get('name').match(nameRegex);}); | |
log(searchResult); | |
_.each(searchResult,function(r){ | |
log(r); | |
}); | |
} | |
}else{ | |
log("Parse Actions for commands without character"); | |
if(action == "extended-test"){ | |
args = msg.content.splitArgs(); | |
var pool = undefined; | |
if(args.indexOf("--pool")>-1){pool = parseInt(args[args.indexOf("--pool") + 1]);} | |
var target = undefined; | |
if(args.indexOf("--target")>-1){target = parseInt(args[args.indexOf("--target") + 1]);} | |
var intervall = undefined; | |
if(args.indexOf("--intervall")>-1){intervall = args[args.indexOf("--intervall") + 1];} | |
var id = undefined; | |
if(args.indexOf("--id")){id = args[args.indexOf("--id") + 1];} | |
log(intervall); | |
handleExtendedTest(msg,pool,target,intervall,id); | |
}else if(action == "extended-test-reset"){ | |
var extendedTests = state.Shadowrun["extendedTests"]; | |
for(var e in extendedTests){ | |
log(extendedTests[e]); | |
delete extendedTests[e]; | |
} | |
}else if(action == "extended-test-menu"){ | |
var id = undefined; | |
if(args.indexOf("--id")){id = args[args.indexOf("--id") + 1];} | |
handleExtendedTestMenu(msg,id); | |
}else if(action == "extended-test-rename"){ | |
log(msg); | |
log(action); | |
var id = undefined; | |
if(args.indexOf("--id")){id = args[args.indexOf("--id") + 1];} | |
var name = undefined; | |
if(args.indexOf("--name")){name = args[args.indexOf("--name") + 1];} | |
handleExtendedTestRename(msg,id,name); | |
}else if(action == "skillcheck"){ | |
log("Parse skill"); | |
var skill = undefined; | |
if(args.indexOf("--skill")){skill = args[args.indexOf("--skill") + 1];} | |
handleSkillCheck(msg,skill); | |
}else if(action == "extended-test-delete"){ | |
var id = undefined; | |
if(args.indexOf("--id")){id = args[args.indexOf("--id") + 1];} | |
handleExtendedTestDelete(msg,id); | |
} | |
} | |
} | |
}; | |
var handleRecoilReset = function (msg,character){ | |
var recoil = attributes.get(character,"recoil"); | |
attributes.set(recoil,0); | |
whisperToGM(msg.who,msg.who,"Rückstoß zurückgesetzt"); | |
}; | |
var messageConditionMonitor = function(msg,character,probe){ | |
var zmg_aktuell = attributes.get(character,"zmg_aktuell"); | |
var zmg_maximum = attributes.get(character,"zmg_maximum"); | |
var zmg_toleranz = attributes.get(character,"zmg_toleranz"); | |
var zmp_aktuell = attributes.get(character,"zmp_aktuell"); | |
var zmp_maximum = attributes.get(character,"zmp_maximum"); | |
var zmp_toleranz = attributes.get(character,"zmp_toleranz"); | |
var overflow_aktuell = attributes.get(character,"overflow_aktuell"); | |
var overflow_maximum = attributes.get(character,"overflow_maximum"); | |
var overflow_toleranz = attributes.get(character,"overflow_toleranz"); | |
var injury_mod = attributes.get(character,"injury_mod"); | |
var ic = attributes.I(injury_mod); | |
var pc = attributes.I(zmp_aktuell); | |
var pm = attributes.I(zmp_maximum); | |
var pt = attributes.I(zmp_toleranz); | |
var gc = attributes.I(zmg_aktuell); | |
var gm = attributes.I(zmg_maximum); | |
var gt = attributes.I(zmg_toleranz); | |
var oc = attributes.I(overflow_aktuell); | |
var om = attributes.I(overflow_maximum); | |
var ot = attributes.I(overflow_toleranz); | |
var rt = '&{template:zustandsmonitor}{{paktuell='+pc+'}}{{pmax='+pm+'}}{{gaktuell='+gc+'}}{{gmax='+gm+'}}{{overflow='+oc+'}}{{overflowmax='+om+'}}{{mod='+ic+'}}'; | |
if(probe != undefined){ | |
rt +='{{probe='+probe+'}}'; | |
} | |
whisperTo(msg.who,"gm",rt); | |
} | |
var physicalDamage = function (msg,character,damage,resistpool){ | |
var zmp_aktuell = attributes.get(character,"zmp_aktuell"); | |
var p = attributes.I(zmp_aktuell); | |
var process = function(x) { | |
var RollValue = x[0].inlinerolls[0]; | |
var roll = buildInline(RollValue, undefined, undefined); | |
var s = parseInt(RollValue["results"]["total"]); | |
var unresistedDamage = Math.max(0,damage-s); | |
var pnew = p + unresistedDamage; | |
attributes.set(zmp_aktuell,pnew); | |
updateConditionMonitorAndInjury(character); | |
messageConditionMonitor(msg,character,damage+"P-"+roll+"="+pnew); | |
}; | |
sendChat(msg.who, "/roll [["+resistpool+"d6sacs5cs6>5]]", process); | |
}; | |
var physicalHealing = function (msg,character,healingpool){ | |
var zmp_aktuell = attributes.get(character,"zmp_aktuell"); | |
var p = attributes.I(zmp_aktuell); | |
var process = function(x) { | |
var RollValue = x[0].inlinerolls[0]; | |
var roll = buildInline(RollValue, undefined, undefined); | |
var s = parseInt(RollValue["results"]["total"]); | |
var pnew = Math.max(0,p-s); | |
attributes.set(zmp_aktuell,pnew); | |
updateConditionMonitorAndInjury(character); | |
messageConditionMonitor(msg,character,"Heilt "+s+"P Schaden"); | |
}; | |
sendChat(msg.who, "/roll [["+healingpool+"d6sacs5cs6>5]]", process); | |
}; | |
var physicalReset = function (msg,character){ | |
var zmp_aktuell = attributes.get(character,"zmp_aktuell"); | |
attributes.set(zmp_aktuell,0); | |
updateConditionMonitorAndInjury(character); | |
messageConditionMonitor(msg,character,"Physisch -> 0"); | |
}; | |
var mentalDamage = function (msg,character,damage,resistpool){ | |
var zmg_aktuell = attributes.get(character,"zmg_aktuell"); | |
var g = attributes.I(zmg_aktuell); | |
var process = function(x) { | |
var RollValue = x[0].inlinerolls[0]; | |
var roll = buildInline(RollValue, undefined, undefined); | |
var s = parseInt(RollValue["results"]["total"]); | |
var unresistedDamage = Math.max(0,damage-s); | |
var gnew = g + unresistedDamage; | |
attributes.set(zmg_aktuell,gnew); | |
updateConditionMonitorAndInjury(character); | |
messageConditionMonitor(msg,character,damage+"G-"+roll+"="+gnew); | |
}; | |
sendChat(msg.who, "/roll [["+resistpool+"d6sacs5cs6>5]]", process); | |
}; | |
var mentalHealing = function (msg,character,healingpool){ | |
var zmg_aktuell = attributes.get(character,"zmg_aktuell"); | |
var g = attributes.I(zmg_aktuell); | |
var process = function(x) { | |
var RollValue = x[0].inlinerolls[0]; | |
var roll = buildInline(RollValue, undefined, undefined); | |
var s = parseInt(RollValue["results"]["total"]); | |
var gnew = Math.max(0,g-s); | |
attributes.set(zmp_aktuell,pnew); | |
updateConditionMonitorAndInjury(character); | |
messageConditionMonitor(msg,character,"Heilt "+s+"G Schaden"); | |
}; | |
sendChat(msg.who, "/roll [["+healingpool+"d6sacs5cs6>5]]", process); | |
}; | |
var mentalReset = function (msg,character){ | |
var zmg_aktuell = attributes.get(character,"zmg_aktuell"); | |
attributes.set(zmg_aktuell,0); | |
updateConditionMonitorAndInjury(character); | |
messageConditionMonitor(msg,character,"Geistig -> 0"); | |
}; | |
var overflowDamage = function (msg,character,damage,resistpool){ | |
var overflow_aktuell = attributes.get(character,"overflow_aktuell"); | |
var o = attributes.I(overflow_aktuell); | |
var process = function(x) { | |
var RollValue = x[0].inlinerolls[0]; | |
var roll = buildInline(RollValue, undefined, undefined); | |
var s = parseInt(RollValue["results"]["total"]); | |
var unresistedDamage = Math.max(0,damage-s); | |
var onew = o + unresistedDamage; | |
attributes.set(overflow_aktuell,onew); | |
updateConditionMonitorAndInjury(character); | |
messageConditionMonitor(msg,character,damage+"Überzählig-"+roll+"="+onew); | |
}; | |
sendChat(msg.who, "/roll [["+resistpool+"d6sacs5cs6>5]]", process); | |
}; | |
var overflowHealing = function (msg,character,healingpool){ | |
var overflow_aktuell = attributes.get(character,"overflow_aktuell"); | |
var o = attributes.I(overflow_aktuell); | |
var process = function(x) { | |
var RollValue = x[0].inlinerolls[0]; | |
var roll = buildInline(RollValue, undefined, undefined); | |
var s = parseInt(RollValue["results"]["total"]); | |
var onew = Math.max(0,o-s); | |
attributes.set(overflow_aktuell,onew); | |
updateConditionMonitorAndInjury(character); | |
messageConditionMonitor(msg,character,"Heilt "+s+" überzähligen Schaden"); | |
}; | |
sendChat(msg.who, "/roll [["+healingpool+"d6sacs5cs6>5]]", process); | |
}; | |
var overflowReset = function (msg,character){ | |
var overflow_aktuell = attributes.get(character,"overflow_aktuell"); | |
attributes.set(overflow_aktuell,0); | |
updateConditionMonitorAndInjury(character); | |
messageConditionMonitor(msg,character,"Überzählig -> 0"); | |
}; | |
var weaponsRangedReload = function(msg,character,id){ | |
var weapon_name = attributes.S(attributes.get(character,"repeating_weaponsranged_"+id+"_weaponsranged_name")); | |
var weapon_pool = attributes.I(attributes.get(character,"repeating_weaponsranged_"+id+"_weaponsranged")); | |
var weapon_tarn = attributes.S(attributes.get(character,"repeating_weaponsranged_"+id+"_weaponsranged_tarn")); | |
var weapon_short = attributes.S(attributes.get(character,"repeating_weaponsranged_"+id+"_weaponsranged_short")); | |
var weapon_medium = attributes.S(attributes.get(character,"repeating_weaponsranged_"+id+"_weaponsranged_medium")); | |
var weapon_long = attributes.S(attributes.get(character,"repeating_weaponsranged_"+id+"_weaponsranged_long")); | |
var weapon_extreme = attributes.S(attributes.get(character,"repeating_weaponsranged_"+id+"_weaponsranged_extreme")); | |
var weapon_dv = attributes.S(attributes.get(character,"repeating_weaponsranged_"+id+"_weaponsranged_dv")); | |
var weapon_precision = attributes.I(attributes.get(character,"repeating_weaponsranged_"+id+"_weaponsranged_precision")); | |
var weapon_dk = attributes.S(attributes.get(character,"repeating_weaponsranged_"+id+"_weaponsranged_dk")); | |
var weapon_rk = attributes.S(attributes.get(character,"repeating_weaponsranged_"+id+"_weaponsranged_rk")); | |
var weapon_mod = attributes.S(attributes.get(character,"repeating_weaponsranged_"+id+"_weaponsranged_mod")); | |
var weapon_amm_current = attributes.get(character,"repeating_weaponsranged_"+id+"_weaponsranged_ammunition_current"); | |
var ac = attributes.I(weapon_amm_current); | |
var weapon_amm_max = attributes.get(character,"repeating_weaponsranged_"+id+"_weaponsranged_ammunition_maximum"); | |
var am = attributes.I(weapon_amm_max); | |
attributes.set(weapon_amm_current,am); | |
var weapon_amm_mag = attributes.S(attributes.get(character,"repeating_weaponsranged_"+id+"_weaponsranged_magazin")); | |
whisperToGM(msg.who,msg.who,weapon_name+" mit "+am+" Schuss Munition ("+weapon_amm_mag+") geladen"); | |
}; | |
var weaponsRangedAttack = function(msg,character,id,mod,bullets){ | |
var weapon_name = attributes.S(attributes.get(character,"repeating_weaponsranged_"+id+"_weaponsranged_name")); | |
var weapon_pool = attributes.I(attributes.get(character,"repeating_weaponsranged_"+id+"_weaponsranged")); | |
var weapon_tarn = attributes.S(attributes.get(character,"repeating_weaponsranged_"+id+"_weaponsranged_tarn")); | |
var weapon_short = attributes.S(attributes.get(character,"repeating_weaponsranged_"+id+"_weaponsranged_short")); | |
var weapon_medium = attributes.S(attributes.get(character,"repeating_weaponsranged_"+id+"_weaponsranged_medium")); | |
var weapon_long = attributes.S(attributes.get(character,"repeating_weaponsranged_"+id+"_weaponsranged_long")); | |
var weapon_extreme = attributes.S(attributes.get(character,"repeating_weaponsranged_"+id+"_weaponsranged_extreme")); | |
var weapon_dv = attributes.S(attributes.get(character,"repeating_weaponsranged_"+id+"_weaponsranged_dv")); | |
var weapon_precision = attributes.I(attributes.get(character,"repeating_weaponsranged_"+id+"_weaponsranged_precision")); | |
var weapon_dk = attributes.S(attributes.get(character,"repeating_weaponsranged_"+id+"_weaponsranged_dk")); | |
var weapon_rk = attributes.S(attributes.get(character,"repeating_weaponsranged_"+id+"_weaponsranged_rk")); | |
var weapon_mod = attributes.S(attributes.get(character,"repeating_weaponsranged_"+id+"_weaponsranged_mod")); | |
var weapon_amm_current = attributes.get(character,"repeating_weaponsranged_"+id+"_weaponsranged_ammunition_current"); | |
var ac = attributes.I(weapon_amm_current); | |
if(bullets>ac){ | |
whisperToGM(msg.who,msg.who,"Ungenügend Munition geladen "+bullets+"/"+ac); | |
bullets = Math.min(bullets,ac); | |
} | |
attributes.set(weapon_amm_current,Math.max(0,ac-bullets)); | |
var recoil = attributes.get(character,"recoil"); | |
var r = attributes.I(recoil); | |
attributes.set(recoil,r+bullets); | |
var weapon_amm_max = attributes.get(character,"repeating_weaponsranged_"+id+"_weaponsranged_ammunition_maximum"); | |
var am = attributes.I(weapon_amm_max); | |
var weapon_amm_mag = attributes.S(attributes.get(character,"repeating_weaponsranged_"+id+"_weaponsranged_magazin")); | |
var dicepool = Math.max(weapon_pool + mod,0); | |
var process = function(x) { | |
var RollValue = x[0].inlinerolls[0]; | |
var roll = buildInline(RollValue, undefined, undefined); | |
var s = parseInt(RollValue["results"]["total"]); | |
var message = '&{template:rangedattack}{{text=feuert '+weapon_name+' ab}}{{basis='+weapon_pool+'}}{{mod='+mod+'}}{{pool='+dicepool+'}}{{erfolge='+roll+'}}'+ | |
'{{kurz='+weapon_short+'}}'+'{{mittel='+weapon_medium+'}}'+'{{weit='+weapon_long+'}}'+'{{extrem='+weapon_extreme+'}}'+ | |
'{{schaden='+weapon_dv+'}}'+'{{dk='+weapon_dk+'}}'+'{{rk='+weapon_rk+'}}'+ | |
'{{modus='+weapon_mod+'}}'+'{{praezision='+weapon_precision+'}}'+'{{munition_aktuell='+ac+'}}'+'{{munition_maximum='+am+'}}'+ | |
'{{tarn='+weapon_tarn+'}}{{anzahlkugeln='+bullets+'}}'; | |
var hiderolls = attributes.S(attributes.get(character,"hide_rolls_cmd")); | |
sendChatRoll(msg.who,hiderolls,message); | |
//whisperToGM(msg.who,msg.who,message); | |
}; | |
sendChat(msg.who, "/roll [["+dicepool+"d6sacs5cs6>5kh"+weapon_precision+"]]", process); | |
}; | |
var processSkillCheck = function(name,attribute,base,mod,pool,who,x) { | |
log(name+" "+attribute+" "+base+" "+mod+" "+pool+" "+x); | |
var RollValue = x[0].inlinerolls[0]; | |
var roll = buildInline(RollValue, undefined, undefined); | |
var s = parseInt(RollValue["results"]["total"]); | |
var result = "&{template:roll}"+ | |
"{{text="+name+"}}"+ | |
"{{color=darkred}}"+ | |
"{{basis="+attribute+"+"+base+"}}"+ | |
"{{mod="+mod+"}}"+ | |
"{{total="+pool+"}}"+ | |
"{{erfolge="+roll+"}}"; | |
whisperToGM(x[0].who,who,result); | |
}; | |
var handleSkillCheck = function(msg,skill){ | |
log("Enter handleSkillCheck"); | |
var selected = msg['selected']; | |
if(selected == undefined){ | |
whisperTo(msg.who,msg.who,"Du musst einen Token auswählen für diesen Befehl"); | |
return; | |
} | |
var attrs = findObjs({type:'attribute'}); | |
for(var s in selected){ | |
s = selected[s]; | |
var id = s["_id"]; | |
var token = getObj('graphic', id); | |
var represents = token.get("represents"); | |
if(represents != undefined && represents != ""){ | |
//var character = characters.get_by_id(represents); | |
var character = getObj("character",represents); | |
if(character != undefined){ | |
var chr_attr = _.filter(attrs,function(o){return o.get('characterid') === represents}); | |
var chr_skillsaction = _.filter(chr_attr,function(o){return o.get('name').match(/repeating_skillsaction_.+/g); }); | |
var IDregex = /repeating_skillsaction_[^_]+_skillsaction_id+/; | |
var ids = _.filter(chr_skillsaction,function(o){return o.get('name').match(IDregex);}); | |
log(ids); | |
var hasSkill = false; | |
_.each(ids,function(id){ | |
id = id.get("current").toLowerCase(); | |
var rowregex = new RegExp("repeating_skillsaction_"+id+"_skillsaction_[^_]+"); | |
//var rows = filterObjs(function(o){return o.get('type')==='attribute' && o.get('characterid') === represents && o.get('name').toLowerCase().match(rowregex);}); | |
var row = _.filter(chr_skillsaction,function(o){return o.get('name').toLowerCase().match(rowregex);}); | |
var name = _.filter(row,function(o){return o.get('name').toLowerCase() == "repeating_skillsaction_"+id+"_skillsaction_name";})[0].get("current"); | |
if(name != skill){return;} | |
hasSkill = true; | |
var attribute = _.filter(row,function(o){return o.get('name').toLowerCase() == "repeating_skillsaction_"+id+"_skillsaction_attribut";})[0].get("current"); | |
attribute = attribute.replace(/[\{\}@]/g,"");//Strip @{} | |
attribute = _.filter(chr_attr,function(o){return o.get('name').toLowerCase() == attribute;})[0].get("current"); | |
var base = _.filter(row,function(o){return o.get('name').toLowerCase() == "repeating_skillsaction_"+id+"_skillsaction_basis";})[0].get("current"); | |
var mod = _.filter(row,function(o){return o.get('name').toLowerCase() == "repeating_skillsaction_"+id+"_skillsaction_mod";})[0].get("current"); | |
//log(name+" "+ attribute+" "+base+" "+mod); | |
attribute = parseInt(attribute); | |
base = parseInt(base); | |
mod = parseInt(mod); | |
var pool = attribute + base + mod; | |
sendChat(token.get("name"), "/roll [["+pool+"d6sacs5cs6>5]]", _.partial(processSkillCheck,name,attribute,base,mod,pool,msg.who)); | |
}); | |
if(hasSkill == false){ | |
whisperTo(token.get("name"),msg.who,"Ich besitze die Fertigkeit "+skill+" nicht."); | |
} | |
}else{ | |
whisperTo(token.get("name"),msg.who,"Der Charakter des Tokens wurde nicht gefunden"); | |
} | |
}else{ | |
whisperTo(token.get("name"),msg.who,"Der Token repräsentiert keinen Charakter"); | |
} | |
} | |
sendChat("","/desc Die Würfel des Spielleiters rollen."); | |
}; | |
var handleExtendedTestMenu = function(msg,id) { | |
var extendedTests = state.Shadowrun["extendedTests"]; | |
if(msg.playerid in extendedTests){ | |
/* Player does have tests */ | |
var etp = extendedTests[msg.playerid]; | |
if(!(id in etp)){ | |
whisperToGM(msg.who,msg.who,"This Extended Test does not exist anymore"); | |
return; | |
} | |
var test = etp[id]; | |
var outputText='<div class="sheet-rolltemplate-script extended-test"><table><tr class="header"><td class="who">'+msg.who+'</td><td class="what">Ausgedehnte Proben</td></tr>'; | |
outputText +='<tr class="extended-test-roll">'; | |
outputText +='<td class="extended-test-number"><a href="!shadowrun --action extended-test-rename --id '+test.id+' --name "?{Name}"">Umbenennen</a></td>'; | |
outputText +='<td class="extended-test-successes"><a href="!shadowrun --action extended-test-delete --id '+test.id+'">Löschen</a></td>'; | |
outputText +='</tr>'; | |
outputText +='</div>'; | |
whisperToGM(msg.who,msg.who,outputText); | |
} | |
}; | |
var handleExtendedTestRename = function(msg,id,name) { | |
var extendedTests = state.Shadowrun["extendedTests"]; | |
if(msg.playerid in extendedTests){ | |
/* Player does have tests */ | |
if(!(msg.playerid in extendedTests)){ | |
whisperToGM(msg.who,msg.who,"This Player has no active Extended Tests"); | |
return; | |
} | |
var etp = extendedTests[msg.playerid]; | |
log(etp); | |
log("ID IS "); | |
log(id); | |
if(!(id in etp)){ | |
whisperToGM(msg.who,msg.who,"This Extended Test does not exist anymore"); | |
return; | |
} | |
var test = etp[id]; | |
log(test); | |
test["name"] = name; | |
var outputText = "Test "+test.pool+"W6("+test.target+","+test.intervall+") für "+msg.who+" umbenannt in "+name; | |
whisperToGM(msg.who,msg.who,outputText); | |
} | |
}; | |
var handleExtendedTestDelete = function(msg,id) { | |
var extendedTests = state.Shadowrun["extendedTests"]; | |
if(msg.playerid in extendedTests){ | |
/* Player does have tests */ | |
if(!(msg.playerid in extendedTests)){ | |
whisperToGM(msg.who,msg.who,"This Extended Test does not exist anymore"); | |
return; | |
} | |
var etp = extendedTests[msg.playerid]; | |
if(!(id in etp)){ | |
whisperToGM(msg.who,msg.who,"This Extended Test does not exist anymore"); | |
return; | |
} | |
var test = etp[id]; | |
var outputText = "Test "+test.pool+"W6("+test.target+","+test.intervall+") für "+msg.who+" gelöscht"; | |
whisperToGM(msg.who,msg.who,outputText); | |
delete etp[id]; | |
} | |
}; | |
var handleExtendedTest = function(msg,p,t,intervall,id) { | |
if(p == undefined || t == undefined || intervall == undefined){ | |
log(p); | |
log(t); | |
log(intervall); | |
// The player has just called extendedTest but did not provide a pool or anything. List all active extendedTest by the player. | |
var outputText='<div class="sheet-rolltemplate-script extended-test"><table><tr class="header"><td class="who">'+msg.who+'</td><td class="what">Ausgedehnte Proben</td></tr>'; | |
var extendedTests = state.Shadowrun["extendedTests"]; | |
log("ExtendedTests IS:"); | |
log(extendedTests); | |
if(msg.playerid in extendedTests){ | |
log("List the player which tests he already started") | |
// The player already has started some extendedTests earlier, list them first | |
if(!(msg.playerid in extendedTests)){ | |
whisperToGM(msg.who,msg.who,"This Extended Test does not exist anymore"); | |
return; | |
} | |
var etp = extendedTests[msg.playerid]; | |
log("ETP IS:") | |
log(etp); | |
var i = 0; | |
for(var key in etp){ | |
i++; | |
var test = etp[key]; | |
log("Test "+i); | |
log(test); | |
var label; | |
if("name" in test){ | |
label = '<a href="!shadowrun --action extended-test-menu --id '+test.id+'">'+test.name+'</a>'; | |
}else{ | |
label = '<a href="!shadowrun --action extended-test-menu --id '+test.id+'">Test '+i+'</a>'; | |
} | |
var rolls = test.rolls; | |
outputText +='<tr class="extended-test-roll">'; | |
outputText +='<td class="extended-test-number">'+label+'</td>'; | |
if(rolls == undefined){ | |
outputText +='<td class="extended-test-successes"><a href="!shadowrun --action extended-test --pool '+test.pool+' --target '+test.target+' --intervall "'+test.intervall+'" --id '+test.id+'">'+test.pool+'W6('+test.target+','+test.intervall+')</a></td>'; | |
}else{ | |
var lastRoll = rolls[rolls.length - 1]; | |
log("Last Roll:"); | |
log(lastRoll); | |
var pool = lastRoll.pool - 1; | |
outputText +='<td class="extended-test-successes"><a href="!shadowrun --action extended-test --pool '+pool+' --target '+test.target+' --intervall "'+test.intervall+'" --id '+test.id+'">'+pool+'W6('+test.target+','+test.intervall+')</a></td>'; | |
} | |
outputText +='</tr>'; | |
} | |
} | |
outputText +='<tr class="extended-test-roll">'; | |
outputText +='<td class="extended-test-number">Ausgedehnte Probe</td>'; | |
outputText +='<td class="extended-test-successes"><a href="!shadowrun --action extended-test --pool ?{Pool|0} --target ?{Benötigte Erfolge?|0} --intervall "?{Intervall?|1 Kampfrunde|1 Minute|10 Minuten|30 Minuten|1 Stunde|1 Tag|1 Woche|1 Monat}" --id new">Neue Probe</a></td>'; | |
outputText +='</tr>'; | |
// Close outputText | |
outputText += "</div>"; | |
whisperToGM(msg.who,msg.who,outputText); | |
return; | |
} | |
if(id != undefined){ | |
/* We want to roll "roll-by-roll" */ | |
var extendedTests = state.Shadowrun["extendedTests"]; | |
var etp; | |
if(msg.playerid in extendedTests){ | |
log("Load existing Tests by player"); | |
etp = extendedTests[msg.playerid]; | |
}else{ | |
log("Create new tests for player"); | |
etp = {}; | |
extendedTests[msg.playerid] = etp; | |
} | |
var test = undefined; | |
log("ETP IS:"); | |
log(etp); | |
if(id in etp){ | |
test = etp[id]; | |
}else{ | |
id = generateRowID(); | |
var rolls = []; | |
test = {id:id,intervall:intervall,pool:p,target:t,rolls:rolls}; | |
etp[id] = test; | |
} | |
var outputText='<div class="sheet-rolltemplate-script extended-test"><table><tr class="header"><td class="name"><a href="!shadowrun --action extended-test-rename --id '+id+' --name "?{Name}"">'+(test.name==undefined?msg.who:test.name)+'</a></td><td class="what">'+p+'W6('+t+','+intervall+')</td></tr>'; | |
var intervall = intervall; | |
var pool = p; | |
var target = t; | |
var process = function(x) { | |
var RollValue = x[0].inlinerolls[0]; | |
var roll = buildInline(RollValue, undefined, undefined); | |
var s = parseInt(RollValue["results"]["total"]); | |
var totalSucccesses = s; | |
/* Old rolls */ | |
var i=0; | |
for(i=0; i < test.rolls.length; i++){ | |
var rollI = test.rolls[i]; | |
totalSucccesses += rollI.successes; | |
outputText +='<tr class="extended-test-roll">'; | |
outputText +='<td class="extended-test-number">'+rollI.rollnumber+':'+rollI.pool+'W6</td>'; | |
outputText +='<td class="extended-test-successes">'+rollI.roll+'</td>'; | |
outputText +='</tr>'; | |
} | |
var currentRoll = {who:msg.who,rollnumber:test.rolls.length,successes:s,pool:pool,target:target,intervall:intervall,roll:roll}; | |
test.rolls[test.rolls.length] = currentRoll; | |
/* Current roll */ | |
outputText +='<tr class="extended-test-roll">'; | |
outputText +='<td class="extended-test-number">'+currentRoll.rollnumber+':'+currentRoll.pool+'W6</td>'; | |
outputText +='<td class="extended-test-successes">'+currentRoll.roll+'</td>'; | |
outputText +='</tr>'; | |
/* Next roll or sum */ | |
if(totalSucccesses < target){ | |
pool -= 1; | |
if(pool>0){ | |
outputText +='<tr class="extended-test-roll">'; | |
outputText +='<td class="extended-test-number"><a href="!shadowrun --action extended-test --pool '+pool+' --target '+target+' --intervall "'+intervall+'" --id '+id+'">'+(test.rolls.length)+':'+pool+'W6</a></td>'; | |
outputText +='<td class="extended-test-successes">'+totalSucccesses+'+?</td>'; | |
outputText +='</tr>'; | |
whisperToGM(msg.who,msg.who,outputText); | |
}else{ | |
//Test Fehlgeschlagen | |
outputText +='<tr class="extended-test-roll">'; | |
outputText +='<td class="extended-test-number">Fehlschlag</td>'; | |
outputText +='<td class="extended-test-successes">'+totalSucccesses+'</td>'; | |
outputText +='</tr>'; | |
/*extended-test*/ | |
outputText +='</table></div>'; | |
whisperToGM(msg.who,msg.who,outputText); | |
delete etp[id]; | |
} | |
}else{ | |
//Test Erfolgreich | |
outputText +='<tr class="extended-test-roll userscript-final">'; | |
outputText +='<td class="extended-test-number">Erfolgreich</td>'; | |
outputText +='<td class="extended-test-successes">'+totalSucccesses+'</td>'; | |
outputText +='</tr>'; | |
/*extended-test*/ | |
outputText +='</table></div>'; | |
whisperToGM(msg.who,msg.who,outputText); | |
delete etp[id]; | |
} | |
}; | |
sendChat(msg.who, "/roll [["+pool+"d6sacs5cs6>5]]", process); | |
}else{ | |
/* We want to roll "all-at-once" */ | |
var rollnumber =0; | |
var pool = p; | |
var successes = 0; | |
var target = t; | |
var process = function(x) { | |
var RollValue = x[0].inlinerolls[0]; | |
var roll = buildInline(RollValue, undefined, undefined); | |
var s = parseInt(RollValue["results"]["total"]); | |
rollnumber += 1; | |
successes += s; | |
outputText +='<tr class="extended-test-roll">'; | |
outputText +='<td class="extended-test-number">'+rollnumber+':'+pool+'W6</td>'; | |
outputText +='<td class="extended-test-successes">'+roll+'</td>'; | |
outputText +='</tr>'; | |
if(successes<target){ | |
pool-=1; | |
if(pool>0){ | |
sendChat(msg.who, "/roll [["+pool+"d6sacs5cs6>5]]", process); | |
}else{ | |
//Test Fehlgeschlagen | |
outputText +='<tr class="extended-test-roll">'; | |
outputText +='<td class="extended-test-number">Fehlschlag</td>'; | |
outputText +='<td class="extended-test-successes">'+successes+'</td>'; | |
outputText +='</tr>'; | |
/*extended-test*/ | |
outputText +='</table></div>'; | |
whisperToGM(msg.who,msg.who,outputText); | |
} | |
}else{ | |
//Test Erfolgreich | |
outputText +='<tr class="extended-test-roll userscript-final">'; | |
outputText +='<td class="extended-test-number">Erfolgreich</td>'; | |
outputText +='<td class="extended-test-successes">'+successes+'</td>'; | |
outputText +='</tr>'; | |
/*extended-test*/ | |
outputText +='</table></div>'; | |
whisperToGM(msg.who,msg.who,outputText); | |
} | |
}; | |
sendChat(msg.who, "/roll [["+pool+"d6sacs5cs6>5]]", process); | |
} | |
}; | |
var handleToken = function(token) { | |
if( 'graphic' === token.get('type') && 'token' === token.get('subtype')) { | |
handleLinkedBars(token); | |
} | |
}; | |
var handleMove = function(msg,character,distance){ | |
var available_move = attributes.get(character,"bewegung_gehen"); | |
var available_run = attributes.get(character,"bewegung_laufen"); | |
var avdm = attributes.I(available_move); | |
var avdr = attributes.I(available_run); | |
if(avdm < distance){ | |
if(avdr < distance){ | |
whisperToGM(msg.who,msg.who,"Du kannst dich nicht so weit bewegen. Du musst sprinten."); | |
}else{ | |
whisperToGM(msg.who,msg.who,"Du musst laufen"); | |
attributes.set(available_move,0); | |
attributes.set(available_run,avdr-distance); | |
} | |
}else{ | |
attributes.set(available_move,avdm-distance); | |
attributes.set(available_run,avdr-distance); | |
} | |
}; | |
var handleRun = function(msg,character,distance){ | |
log(character); | |
log(distance); | |
var available_move = attributes.get(character,"bewegung_gehen"); | |
log(available_move); | |
var available_run = attributes.get(character,"bewegung_laufen"); | |
log(available_run); | |
var avdm = attributes.I(available_move); | |
log(avdm); | |
var avdr = attributes.I(available_run); | |
log(avdr); | |
if(avdm < distance){ | |
if(avdr < distance){ | |
whisperToGM(msg.who,msg.who,"Du kannst dich nicht so weit bewegen. Du musst sprinten."); | |
}else{ | |
whisperToGM(msg.who,msg.who,"Du läufst"); | |
attributes.set(available_move,0); | |
attributes.set(available_run,avdr-distance); | |
} | |
}else{ | |
attributes.set(available_move,avdm-distance); | |
attributes.set(available_run,avdr-distance); | |
} | |
}; | |
var handleSprint = function(msg,character,pool){ | |
var sprinten_mod = attributes.get(character,"bewegung_sprinten_mod"); | |
var sprinten_distanz = attributes.get(character,"bewegung_sprinten"); | |
var bewegung_laufen = attributes.get(character,"bewegung_laufen"); | |
var sm = attributes.I(sprinten_mod); | |
var bl = attributes.I(bewegung_laufen); | |
var use_edge = attributes.get(character,"use_edge"); | |
var edge = attributes.get(character,"edg"); | |
var edg = attributes.I(edge); | |
var use_injury_mod = attributes.get(character,"use_injury_mod"); | |
var injury_mod = attributes.get(character,"injury_mod"); | |
var injury_modi = -attributes.I(injury_mod); | |
var edgetoken = (attributes.S(use_edge)=="on")?"!":""; | |
var edgetext = (attributes.S(use_edge)=="on")?"{{edge=Edge "+edg+"}}":""; | |
var edgemod = (attributes.S(use_edge)=="on")?edg:0; | |
var injurytext = (attributes.S(use_injury_mod)=="on")?"{{injurymod=-"+injury_modi+"}}":""; | |
var injurymod = (attributes.S(use_injury_mod)=="on")?injury_modi:0; | |
pool = pool + injurymod + edgemod; | |
if(pool > 0){ | |
sendChat(character.get('name'), "/roll [["+pool+"d6"+edgetoken+"sacs5cs6>5]]", function(x) { | |
var RollValue = 0; | |
var i = 1; | |
Object.keys(x[0].inlinerolls).forEach(function(i) { | |
RollValue = x[0].inlinerolls[i]; | |
var roll = buildInline(RollValue, undefined, undefined); | |
var s = parseInt(RollValue["results"]["total"]); | |
var bonus = s*sm; | |
attributes.set(sprinten_distanz,bonus); | |
attributes.set(bewegung_laufen,bl+bonus); | |
whisperToGM(msg.who,msg.who,"&{template:roll}{{erfolge="+roll+"}}{{text=Sprinten}}{{total="+pool+"}}"+edgetext+injurytext+"{{desc=<div style=\"text-align:center;\">+"+bonus+"m</div>}}"); | |
}); | |
}); | |
}else{ | |
whisperToGM(msg.who,msg.who,"Nicht genug Würfel! "+pool); | |
} | |
}; | |
var handleMoveReset = function(msg,character){ | |
log(character); | |
var available_move = attributes.get(character,"bewegung_gehen"); | |
var available_run = attributes.get(character,"bewegung_laufen"); | |
var available_move_mult = attributes.get(character,"bewegung_gehen_mult"); | |
var available_run_mult = attributes.get(character,"bewegung_laufen_mult"); | |
var sprinten_distanz = attributes.get(character,"bewegung_sprinten"); | |
var ges = attributes.get(character,"ges"); | |
var g = attributes.I(ges); | |
var mm = attributes.F(available_move_mult); | |
var rm = attributes.F(available_run_mult); | |
attributes.set(available_move,g*mm); | |
attributes.set(available_run,g*rm); | |
attributes.set(sprinten_distanz,0); | |
}; | |
var handleRunReset = function(msg,character){ | |
handleMoveReset(msg,character); | |
}; | |
var handleSprintReset = function(msg,character){ | |
handleMoveReset(msg,character); | |
}; | |
var handleEdgeUse = function(msg,character){ | |
var edge_current = attributes.get(character,"edgepunkte_aktuell"); | |
var current = attributes.I(edge_current); | |
if (current == 0){ | |
whisperToGM(msg.who,msg.who,"Nicht genügend Edgepunkte!"); | |
}else{ | |
attributes.set(edge_current,current - 1) | |
} | |
}; | |
var handleHebenReset = function(msg,character){ | |
var str = attributes.get(character,"str"); | |
var kon = attributes.get(character,"kon"); | |
var heben = attributes.get(character,"tragkraft_heben"); | |
var tragen = attributes.get(character,"tragkraft_tragen"); | |
var stemmen = attributes.get(character,"tragkraft_stemmen"); | |
var heben_mult = attributes.get(character,"tragkraft_heben_mult"); | |
var tragen_mult = attributes.get(character,"tragkraft_tragen_mult"); | |
var stemmen_mult = attributes.get(character,"tragkraft_stemmen_mult"); | |
var h = attributes.I(heben); | |
var t = attributes.I(tragen); | |
var s = attributes.I(stemmen); | |
var hm = attributes.I(heben_mult); | |
var tm = attributes.I(tragen_mult); | |
var sm = attributes.I(stemmen_mult); | |
var stri = attributes.I(str); | |
var koni = attributes.I(kon); | |
attributes.set(heben,stri*15); | |
attributes.set(tragen,stri*10); | |
attributes.set(stemmen,stri*5); | |
}; | |
var handleTragenReset = function(msg,character){ | |
handleHebenReset(msg,character); | |
}; | |
var handleStemmenReset = function(msg,character){ | |
handleHebenReset(msg,character); | |
}; | |
var handleHeben = function(msg,character){ | |
var str = attributes.get(character,"str"); | |
var kon = attributes.get(character,"kon"); | |
var heben = attributes.get(character,"tragkraft_heben"); | |
var tragen = attributes.get(character,"tragkraft_tragen"); | |
var stemmen = attributes.get(character,"tragkraft_stemmen"); | |
var heben_mult = attributes.get(character,"tragkraft_heben_mult"); | |
var tragen_mult = attributes.get(character,"tragkraft_tragen_mult"); | |
var stemmen_mult = attributes.get(character,"tragkraft_stemmen_mult"); | |
var h = attributes.I(heben); | |
var t = attributes.I(tragen); | |
var s = attributes.I(stemmen); | |
var hm = attributes.I(heben_mult); | |
var tm = attributes.I(tragen_mult); | |
var sm = attributes.I(stemmen_mult); | |
var stri = attributes.I(str); | |
var koni = attributes.I(kon); | |
var pool = stri+koni; | |
var use_edge = attributes.get(character,"use_edge"); | |
var edge = attributes.get(character,"edg"); | |
var edg = attributes.I(edge); | |
var use_injury_mod = attributes.get(character,"use_injury_mod"); | |
var injury_mod = attributes.get(character,"injury_mod"); | |
var injury_modi = -attributes.I(injury_mod); | |
var edgetoken = (attributes.S(use_edge)=="on")?"!":""; | |
var edgetext = (attributes.S(use_edge)=="on")?"{{edge=Edge "+edg+"}}":""; | |
var edgemod = (attributes.S(use_edge)=="on")?edg:0; | |
var injurytext = (attributes.S(use_injury_mod)=="on")?"{{injurymod=-"+injury_modi+"}}":""; | |
var injurymod = (attributes.S(use_injury_mod)=="on")?injury_modi:0; | |
pool = pool + injurymod + edgemod; | |
if(pool > 0 ){ | |
sendChat(character.get('name'), "/roll [[("+pool+")d6sacs5cs6>5]]", function(x) { | |
var RollValue = 0; | |
var i = 1; | |
Object.keys(x[0].inlinerolls).forEach(function(i) { | |
RollValue = x[0].inlinerolls[i]; | |
var roll = buildInline(RollValue, undefined, undefined); | |
var s = parseInt(RollValue["results"]["total"]); | |
heben.set('current',(stri+s)*15); | |
tragen.set('current',(stri+s)*10); | |
stemmen.set('current',(stri+s)*5); | |
whisperToGM(msg.who,msg.who,"&{template:roll}{{erfolge="+roll+"}}{{text=Heben & Tragen}}{{total="+pool+"}}"+edgetext+injurytext+"{{desc=<div style=\"text-align:center;\">+"+(s*15)+"kg/"+(s*10)+"kg/"+(s*5)+"kg</div>}}"); | |
}); | |
}); | |
}else{ | |
whisperToGM(msg.who,msg.who,"Nicht genug Würfel! "+pool); | |
} | |
}; | |
var handleTragen = function(msg,character){ | |
handleHeben(msg,character); | |
}; | |
var handleStemmen = function(msg,character){ | |
handleHeben(msg,character); | |
}; | |
var handleEdgeRefill = function(msg,character){ | |
var edge_total = attributes.get(character,"edg"); | |
var edge_current = attributes.get(character,"edgepunkte_aktuell"); | |
var edge_total = attributes.I(edge_total); | |
attributes.set(edge_current,edge_total); | |
}; | |
var handleConnectionTestAvailability = function(msg,character,id){ | |
var connection_name = attributes.S(attributes.get(character,"repeating_connections_"+id+"_connections_name")); | |
var connection_loyality = attributes.I(attributes.get(character,"repeating_connections_"+id+"_connections_loyality")); | |
var connection_rating = attributes.I(attributes.get(character,"repeating_connections_"+id+"_connections_rating")); | |
var process = function(x) { | |
var RollValue = x[0].inlinerolls[0]; | |
var roll = buildInline(RollValue, undefined, undefined); | |
var s = parseInt(RollValue["results"]["total"]); | |
if(s>=connection_rating){ | |
var rt = '<div class="sheet-rolltemplate-roll">'+ | |
'<table class="sheet-box sheet-cyan">'+ | |
'<tr>'+ | |
'<td class="sheet-text">'+ | |
'<div class="sheet-desc">'+connection_name+'(L:'+connection_loyality+',E:'+connection_rating+'<='+roll+')</div>'+ | |
'</td>'+ | |
'</tr>'+ | |
'<tr>'+ | |
'<td class="border-top" colspan="2"><div class="sheet-note">Hallo, Was gibt es?'+ | |
'</div></td>'+ | |
'</tr>'+ | |
'</table>'+ | |
'</div>'; | |
whisperTo(connection_name,msg.who,rt); | |
}else{ | |
var rt = '<div class="sheet-rolltemplate-roll">'+ | |
'<table class="sheet-box sheet-cyan">'+ | |
'<tr>'+ | |
'<td class="sheet-text">'+ | |
'<div class="sheet-desc">'+connection_name+'(L:'+connection_loyality+',E:'+connection_rating+'>'+roll+')</div>'+ | |
'</td>'+ | |
'</tr>'+ | |
'<tr>'+ | |
'<td class="border-top" colspan="2"><div class="sheet-note">... es hebt niemand ab...'+ | |
'</div></td>'+ | |
'</tr>'+ | |
'</table>'+ | |
'</div>'; | |
whisperTo(connection_name,msg.who,rt); | |
} | |
}; | |
sendChat(msg.who, "/roll [[2d6sacs5cs6]]", process); | |
}; | |
var handleConnectionAnswerCall = function(msg,character,id){ | |
log(character); | |
log(id); | |
var connection_name = attributes.S(attributes.get(character,"repeating_connections_"+id+"_connections_name")); | |
var connection_loyality = attributes.I(attributes.get(character,"repeating_connections_"+id+"_connections_loyality")); | |
var connection_rating = attributes.I(attributes.get(character,"repeating_connections_"+id+"_connections_rating")); | |
var rt = '<div class="sheet-rolltemplate-roll">'+ | |
'<table class="sheet-box sheet-cyan">'+ | |
'<tr>'+ | |
'<td class="sheet-text">'+ | |
'<div class="sheet-desc">'+connection_name+'(L:'+connection_loyality+',E:'+connection_rating+')</div>'+ | |
'</td>'+ | |
'</tr>'+ | |
'<tr>'+ | |
'<td class="border-top" colspan="2"><div class="sheet-note">Hallo, Was gibt es?'+ | |
'</div></td>'+ | |
'</tr>'+ | |
'</table>'+ | |
'</div>'; | |
whisperTo(connection_name,msg.who,rt); | |
}; | |
var handleContactConnection = function(msg,character,id){ | |
log(id); | |
var connection_name = attributes.S(attributes.get(character,"repeating_connections_"+id+"_connections_name")); | |
var connection_loyality = attributes.I(attributes.get(character,"repeating_connections_"+id+"_connections_loyality")); | |
var connection_rating = attributes.I(attributes.get(character,"repeating_connections_"+id+"_connections_rating")); | |
var rt = '<div class="sheet-rolltemplate-roll">'+ | |
'<table class="sheet-box sheet-cyan">'+ | |
'<tr>'+ | |
'<td class="sheet-text">'+ | |
'<div class="sheet-desc">'+msg.who+' möchte '+connection_name+'(L:'+connection_loyality+',E:'+connection_rating+') kontaktieren</div>'+ | |
'</td>'+ | |
'</tr>'+ | |
'<tr>'+ | |
'<td class="border-top" colspan="2"><div class="sheet-note">'+ | |
'<a href="!shadowrun --character '+character.id+' --action connection-test-availability --id '+id+' --name '+connection_name+' --loyality '+connection_loyality+' --rating '+connection_rating+'">2W6 ob verfügbar</a><br/>'+ | |
'<a href="!shadowrun --character '+character.id+' --action connection-answer-call --id '+id+' --name '+connection_name +' --loyality '+connection_loyality+' --rating '+connection_rating+'">Abheben</a><br/>'+ | |
'</div></td>'+ | |
'</tr>'+ | |
'</table>'+ | |
'</div>'; | |
whisperToGM(msg.who,"gm",rt); | |
}; | |
var handleOrderRoll = function(msg,character,id,name,count,availability,price,connection,tryself,pool){ | |
if(connection != undefined){ | |
log(connection); | |
var connection_name = attributes.S(attributes.get(character,"repeating_connections_"+connection+"_connections_name")); | |
log(connection_name); | |
var connection_loyality = attributes.I(attributes.get(character,"repeating_connections_"+connection+"_connections_loyality")); | |
log(connection_loyality); | |
var connection_rating = attributes.I(attributes.get(character,"repeating_connections_"+connection+"_connections_rating")); | |
log(connection_rating); | |
var connectionCharacter = characters.get(connection_name); | |
if(connectionCharacter != undefined){ | |
log("Connection exists as character"); | |
log(connectionCharacter); | |
var nameRegex = /repeating_skillsaction_[^_]+_skillsaction_id/; | |
var skillIDs = filterObjs(function(o){return o.get('type')==='attribute' && o.get('characterid') === connectionCharacter.id && o.get('name').match(nameRegex);}); | |
var connectionButtons = ""; | |
_.each(skillIDs,function(sid){ | |
sid = attributes.S(sid); | |
var satt = attributes.I(attributes.unwrap(connectionCharacter,"repeating_skillsaction_"+sid+"_skillsaction_attribut")); | |
var sname = attributes.S(attributes.get(connectionCharacter,"repeating_skillsaction_"+sid+"_skillsaction_name")); | |
var sbase = attributes.I(attributes.get(connectionCharacter,"repeating_skillsaction_"+sid+"_skillsaction_basis")); | |
var smod = attributes.I(attributes.get(connectionCharacter,"repeating_skillsaction_"+sid+"_skillsaction_mod")); | |
if(sname.toLowerCase().trim() =="verhandlung"){ | |
pool = satt + sbase + smod; | |
} | |
}); | |
} | |
if(pool == undefined){ | |
whisperTo(msg.who,msg.who,"Anfrage an den Spielleiter geschickt"); | |
/* Ask the GM for the NSC Pool*/ | |
var rt = '<div class="sheet-rolltemplate-roll">'+ | |
'<table class="sheet-box sheet-cyan">'+ | |
'<tr>'+ | |
'<td class="sheet-text">'+ | |
'<div class="sheet-desc">'+msg.who+' möchte bei '+connection_name+'(L:'+connection_loyality+',E:'+connection_rating+') bestellen</div>'+ | |
'</td>'+ | |
'</tr>'+ | |
'<tr>'+ | |
'<td class="border-top" colspan="2"><div class="sheet-note">'+ | |
count+"x "+name+" um "+price+"¥ mit Verfügbarkeit "+availability+"<br/>"+ | |
'<a href="!shadowrun --character '+character.id+' --action order-buy-roll --id '+id+' --name '+name+' --count '+count+' --availability '+availability+' --connection '+connection+' --price '+price+' --pool ?{Pool|1}">Würfeln</a><br/>'+ | |
'</div></td>'+ | |
'</tr>'+ | |
'</table>'+ | |
'</div>'; | |
whisperTo(msg.who,"gm",rt); | |
return; | |
}else{ | |
var pool = pool + connection_rating; | |
var intervalX = 0; | |
var intervalUnit = ""; | |
if(price<=100.0){ | |
intervalX = 6.0; | |
intervalUnit = "Stunden"; | |
}else if(price<=1000.0){ | |
intervalX = 1.0; | |
intervalUnit = "Tag"; | |
}else if(price<=10000.0){ | |
intervalX = 2.0; | |
intervalUnit = "Tage"; | |
}else if(price<=100000.0){ | |
intervalX = 1.0; | |
intervalUnit = "Woche"; | |
}else{ | |
intervalX = 1.0; | |
intervalUnit = "Monat"; | |
} | |
var outputText='<div class="sheet-rolltemplate-script extended-test"><table><tr class="header"><td class="who">'+connection_name+'<br/>'+pool+'W6</td><td class="what">'+pool+'W6 vs '+availability+'W6<br/>'+intervalX+' '+intervalUnit+'</td></tr>'; | |
var rollnumber = 0; | |
var usedTime = 0; | |
var processVendor = function(x) { | |
var RollValueVendor = x[0].inlinerolls[0]; | |
var rollVendor = buildInline(RollValueVendor, undefined, undefined); | |
var sVendor = parseInt(RollValueVendor["results"]["total"]); | |
var processItem = function(x) { | |
var RollValueItem = x[0].inlinerolls[0]; | |
var rollItem = buildInline(RollValueItem, undefined, undefined); | |
var sItem = parseInt(RollValueItem["results"]["total"]); | |
if(sVendor < sItem){ | |
usedTime += 2*intervalX; | |
outputText +='<tr class="extended-test-roll">'; | |
outputText +='<td class="extended-test-number">'+rollnumber+':'+usedTime+' '+intervalUnit+'</td>'; | |
outputText +='<td class="extended-test-successes">'+rollVendor+' vs '+rollItem+'</td>'; | |
outputText +='</tr>'; | |
if(rollnumber < 100){ | |
sendChat(character.get('name'), "/roll [["+pool+"d6sacs5cs6>5]]", processVendor); | |
}else{ | |
outputText +='<tr><td colspan="2">Nach 100 Versuchen abgebrochen</td></tr>'; | |
whisperToGM(msg.who,"gm",outputText); | |
} | |
}else if(sVendor==sItem){ | |
/* Double Time but found */ | |
usedTime += 2*intervalX; | |
outputText +='<tr class="extended-test-roll">'; | |
outputText +='<td class="extended-test-number">'+rollnumber+':'+usedTime+' '+intervalUnit+'</td>'; | |
outputText +='<td class="extended-test-successes">'+rollVendor+' vs '+rollItem+'</td>'; | |
outputText +='</tr>'; | |
outputText +='</table></div>'; | |
whisperToGM(msg.who,"gm",outputText); | |
}else{ | |
/* X / Net Successes */ | |
var ns = sVendor - sItem; | |
/*extended-test*/ | |
usedTime += intervalX/ns; | |
usedTime = Math.round(usedTime * 100) / 100; | |
outputText +='<tr class="extended-test-roll">'; | |
outputText +='<td class="extended-test-number">'+rollnumber+':'+usedTime+' '+intervalUnit+'</td>'; | |
outputText +='<td class="extended-test-successes">'+rollVendor+' vs '+rollItem+'</td>'; | |
outputText +='</tr>'; | |
outputText +='</table></div>'; | |
whisperToGM(msg.who,"gm",outputText); | |
} | |
}; | |
rollnumber += 1; | |
sendChat(character.get('name'), "/roll [["+availability+"d6sacs5cs6>5]]", processItem); | |
}; | |
sendChat(character.get('name'), "/roll [["+pool+"d6sacs5cs6>5]]", processVendor); | |
} | |
}else{ | |
var pool = pool; | |
var intervalX = 0; | |
var intervalUnit = ""; | |
if(price<=100.0){ | |
intervalX = 6.0; | |
intervalUnit = "Stunden"; | |
}else if(price<=1000.0){ | |
intervalX = 1.0; | |
intervalUnit = "Tag"; | |
}else if(price<=10000.0){ | |
intervalX = 2.0; | |
intervalUnit = "Tage"; | |
}else if(price<=100000.0){ | |
intervalX = 1.0; | |
intervalUnit = "Wochen"; | |
}else{ | |
intervalX = 1.0; | |
intervalUnit = "Monat"; | |
} | |
var outputText='<div class="sheet-rolltemplate-script extended-test"><table><tr class="header"><td class="who">'+msg.who+'<br/>'+pool+'W6</td><td class="what">'+pool+'W6 vs '+availability+'W6<br/>'+intervalX+' '+intervalUnit+'</td></tr>'; | |
var rollnumber = 0; | |
var usedTime = 0; | |
var processPlayer = function(x) { | |
var RollValuePlayer = x[0].inlinerolls[0]; | |
var rollPlayer = buildInline(RollValuePlayer, undefined, undefined); | |
var sPlayer = parseInt(RollValuePlayer["results"]["total"]); | |
var processItem = function(x) { | |
var RollValueItem = x[0].inlinerolls[0]; | |
var rollItem = buildInline(RollValueItem, undefined, undefined); | |
var sItem = parseInt(RollValueItem["results"]["total"]); | |
if(sPlayer < sItem){ | |
usedTime += intervalX*2; | |
outputText +='<tr class="extended-test-roll">'; | |
outputText +='<td class="extended-test-number">'+rollnumber+':'+usedTime+' '+intervalUnit+'</td>'; | |
outputText +='<td class="extended-test-successes">'+rollPlayer+' vs '+rollItem+'</td>'; | |
outputText +='</tr>'; | |
if(rollnumber < 100){ | |
sendChat(character.get('name'), "/roll [["+pool+"d6sacs5cs6>5]]", processPlayer); | |
}else{ | |
outputText +='<tr><td colspan="2">Nach 100 Versuchen abgebrochen</td></tr>'; | |
whisperToGM(msg.who,"gm",outputText); | |
} | |
}else if(sPlayer==sItem){ | |
/* Double Time but found */ | |
usedTime += 2*intervalX; | |
outputText +='<tr class="extended-test-roll">'; | |
outputText +='<td class="extended-test-number">'+rollnumber+':'+usedTime+' '+intervalUnit+'</td>'; | |
outputText +='<td class="extended-test-successes">'+rollPlayer+' vs '+rollItem+'</td>'; | |
outputText +='</tr>'; | |
outputText +='</table></div>'; | |
whisperToGM(msg.who,"gm",outputText); | |
}else{ | |
/* X / Net Successes */ | |
var ns = sPlayer - sItem; | |
/*extended-test*/ | |
usedTime += intervalX/ns; | |
outputText +='<tr class="extended-test-roll">'; | |
outputText +='<td class="extended-test-number">'+rollnumber+':'+usedTime+' '+intervalUnit+'</td>'; | |
outputText +='<td class="extended-test-successes">'+rollPlayer+' vs '+rollItem+'</td>'; | |
outputText +='</tr>'; | |
outputText +='</table></div>'; | |
whisperToGM(msg.who,"gm",outputText); | |
} | |
}; | |
rollnumber += 1; | |
sendChat(character.get('name'), "/roll [["+availability+"d6sacs5cs6>5]]", processItem); | |
}; | |
sendChat(character.get('name'), "/roll [["+pool+"d6sacs5cs6>5]]", processPlayer); | |
} | |
} | |
var handleOrderBuy = function(msg,character,id,name,count,availability,price){ | |
//var itemname = attributes.get(character,"repeating_orders_"+id+"_orders_name"); | |
var nameRegex = /repeating_connections_[^_]+_connections_id/; | |
var connectionIDs = filterObjs(function(o){return o.get('type')==='attribute' && o.get('characterid') === character.id && o.get('name').match(nameRegex);}); | |
var connectionButtons = ""; | |
_.each(connectionIDs,function(cid){ | |
cid = attributes.S(cid); | |
log(cid); | |
var cname = attributes.S(attributes.get(character,"repeating_connections_"+cid+"_connections_name")); | |
log(cname); | |
var rating = attributes.I(attributes.get(character,"repeating_connections_"+cid+"_connections_rating")); | |
log(rating); | |
var loyality = attributes.I(attributes.get(character,"repeating_connections_"+cid+"_connections_loyality")); | |
log(loyality); | |
var note = attributes.S(attributes.get(character,"repeating_connections_"+cid+"_connections_note")); | |
log(note); | |
connectionButtons += '<a href="!shadowrun --character '+character.id+' --action order-buy-roll --id '+id+' --name '+name+' --count '+count+' --availability '+availability+' --connection '+cid+' --price '+price+'">'+cname+'(L'+loyality+',E'+rating+')</a>'; | |
}); | |
var rt = '<div class="sheet-rolltemplate-roll">'+ | |
'<table class="sheet-box sheet-cyan">'+ | |
'<tr>'+ | |
'<td class="sheet-text">'+ | |
'<div class="sheet-desc">Hey, ich bräuchte da was!</div>'+ | |
'</td>'+ | |
'</tr>'+ | |
'<tr>'+ | |
'<td class="border-top" colspan="2"><div class="sheet-note">'+ | |
count+"x "+name+" um "+price+"¥ mit Verfügbarkeit "+availability+"<br/>"+ | |
"Ich möchte es "+ | |
'<a href="!shadowrun --character '+character.id+' --action order-buy-roll --id '+id+' --name '+name+' --count '+count+' --availability '+availability+' --tryself True --price '+price+' --pool ?{Pool|1}">selbst</a> versuchen.<br/>'+ | |
"Ich möchte, dass es<br/>"+connectionButtons+"<br/>versucht."+ | |
'</div></td>'+ | |
'</tr>'+ | |
'</table>'+ | |
'</div>'; | |
whisperToGM(msg.who,msg.who,rt); | |
} | |
var handleSummonSpirit = function(msg,character,spiritname,basis,mod,force){ | |
spiritname = spiritname.replace(/\\/g,"").replace(/"/g,""); | |
var castpool = basis + mod; | |
var spirit = characters.get("Geister-"+spiritname); | |
if(spirit==undefined){ | |
whisperToGM(msg.who,msg.who," Geist: "+spiritname+" nicht gefunden"); | |
return; | |
} | |
var kon = Math.max(force+abilities.I(abilities.get(spirit,"Kon")),1); | |
var ges = Math.max(force+abilities.I(abilities.get(spirit,"Ges")),1); | |
var rea = Math.max(force+abilities.I(abilities.get(spirit,"Ges")),1); | |
var str = Math.max(force+abilities.I(abilities.get(spirit,"Str")),1); | |
var wil = Math.max(force+abilities.I(abilities.get(spirit,"Wil")),1); | |
var intu = Math.max(force+abilities.I(abilities.get(spirit,"Int")),1); | |
var logic = Math.max(force+abilities.I(abilities.get(spirit,"Log")),1); | |
var cha = Math.max(force+abilities.I(abilities.get(spirit,"Cha")),1); | |
var edg = Math.max(force/parseInt(abilities.S(abilities.get(spirit,"Edg")).replace(/\//g,"")),1); | |
var ess = Math.max(force+abilities.I(abilities.get(spirit,"Ess")),1); | |
var mag = Math.max(force+abilities.I(abilities.get(spirit,"Mag")),1); | |
var ini = abilities.S(abilities.get(spirit,"Ini")); | |
var aini = abilities.S(abilities.get(spirit,"A-Ini")); | |
var skills = abilities.S(abilities.get(spirit,"Fertigkeiten")); | |
var powers = abilities.S(abilities.get(spirit,"Kräfte")); | |
var additional_powers = abilities.S(abilities.get(spirit,"Zusätzliche-Kräfte")); | |
var weaknesses = abilities.S(abilities.get(spirit,"Schwächen")); | |
var specials = abilities.S(abilities.get(spirit,"Besonderheiten")); | |
var skillsplit = skills.split(",").map(function(e){return e.trim();}); | |
var powerssplit = powers.split(",").map(function(e){return e.trim();}); | |
var weaknessessplit = weaknesses.split(",").map(function(e){return e.trim();}); | |
var additional_powerssplit = additional_powers.splitArgs(",").map(function(e){return e.trim();}); | |
// Unwrap the @{attribute} | |
var drainattribute = attributes.I(attributes.unwrap(character,"tradition_drainattribute")); | |
var drainmod = attributes.get(character,"tradition_drainmod"); | |
drainmod = attributes.I(drainmod); | |
var wil = attributes.I(attributes.get(character,"wil")); | |
var drainpool = drainattribute + drainmod + wil; | |
//Roll for Summoner | |
sendChat(character.get('name'), "/roll [["+castpool+"d6sacs5cs6>5kh"+force+"]]", function(x) { | |
Object.keys(x[0].inlinerolls).forEach(function(i) { | |
var RollValueSummoner = x[0].inlinerolls[i]; | |
var rollCast = buildInline(RollValueSummoner, undefined, undefined); | |
var successesSummoner = parseInt(RollValueSummoner["results"]["total"]); | |
//Roll for Spirit | |
sendChat(character.get('name'),"/roll [["+force+"d6sacs5cs6>5]]",function(x) { | |
Object.keys(x[0].inlinerolls).forEach(function(i) { | |
var RollValueSpirit = x[0].inlinerolls[i]; | |
var rollSpirit = buildInline(RollValueSpirit, undefined, undefined); | |
var successesSpirit = parseInt(RollValueSpirit["results"]["total"]); | |
//Roll Entzug | |
var totaldrain = Math.max(successesSpirit*2,2); | |
var tasks = Math.max(successesSummoner-successesSpirit,0); | |
sendChat(character.get('name'),"/roll [["+drainpool+"d6sacs5cs6>5]]",function(x) { | |
Object.keys(x[0].inlinerolls).forEach(function(i) { | |
var RollValueDrain = x[0].inlinerolls[i]; | |
var rollDrain = buildInline(RollValueDrain, undefined, undefined); | |
var successesDrain = parseInt(RollValueDrain["results"]["total"]); | |
var draindamage = Math.max(totaldrain-successesDrain,0); | |
if(tasks > 0){ | |
var newid = generateRowID(); | |
var name = "repeating_activespirits_"+newid+"_activespirits_name"; | |
createObj("attribute", {name: name, current: spiritname, max:"", _characterid: character.id}); | |
name = "repeating_activespirits_"+newid+"_activespirits_stufe"; | |
createObj("attribute", {name: name, current: force, max:"", _characterid: character.id}); | |
name = "repeating_activespirits_"+newid+"_activespirits_dienste"; | |
createObj("attribute", {name: name, current: tasks, max:"", _characterid: character.id}); | |
name = "repeating_activespirits_"+newid+"_activespirits_kon"; | |
createObj("attribute", {name: name, current: kon, max:"", _characterid: character.id}); | |
name = "repeating_activespirits_"+newid+"_activespirits_str"; | |
createObj("attribute", {name: name, current: str, max:"", _characterid: character.id}); | |
name = "repeating_activespirits_"+newid+"_activespirits_rea"; | |
createObj("attribute", {name: name, current: rea, max:"", _characterid: character.id}); | |
name = "repeating_activespirits_"+newid+"_activespirits_ges"; | |
createObj("attribute", {name: name, current: ges, max:"", _characterid: character.id}); | |
name = "repeating_activespirits_"+newid+"_activespirits_int"; | |
createObj("attribute", {name: name, current: intu, max:"", _characterid: character.id}); | |
name = "repeating_activespirits_"+newid+"_activespirits_log"; | |
createObj("attribute", {name: name, current: logic, max:"", _characterid: character.id}); | |
name = "repeating_activespirits_"+newid+"_activespirits_wil"; | |
createObj("attribute", {name: name, current: wil, max:"", _characterid: character.id}); | |
name = "repeating_activespirits_"+newid+"_activespirits_cha"; | |
createObj("attribute", {name: name, current: cha, max:"", _characterid: character.id}); | |
name = "repeating_activespirits_"+newid+"_activespirits_mag"; | |
createObj("attribute", {name: name, current: mag, max:"", _characterid: character.id}); | |
name = "repeating_activespirits_"+newid+"_activespirits_ess"; | |
createObj("attribute", {name: name, current: ess, max:"", _characterid: character.id}); | |
name = "repeating_activespirits_"+newid+"_activespirits_edg"; | |
createObj("attribute", {name: name, current: edg, max:"", _characterid: character.id}); | |
var skillpool = force; | |
for (var i = 0; i < skillsplit.length;i = i + 1) { | |
var index = i + 1; | |
var skillname = skillsplit[i]; | |
name = "repeating_activespirits_" + newid + "_activespirits_skill_" + index + "_name"; | |
createObj("attribute", {name: name, current: skillname, max:"", _characterid: character.id}); | |
name = "repeating_activespirits_" + newid + "_activespirits_skill_" + index + "_pool"; | |
createObj("attribute", {name: name, current: skillpool, max:"", _characterid: character.id}); | |
} | |
for (var i = 0; i < powerssplit.length;i = i + 1) { | |
var index = i + 1; | |
var powername = powerssplit[i]; | |
name = "repeating_activespirits_" + newid + "_activespirits_power_" + index + "_name"; | |
createObj("attribute", {name: name, current: powername, max:"", _characterid: character.id}); | |
name = "repeating_activespirits_" + newid + "_activespirits_power_" + index + "_pool"; | |
createObj("attribute", {name: name, current: skillpool, max:"", _characterid: character.id}); | |
} | |
for (var i = 0; i < weaknessessplit.length;i = i + 1) { | |
var index = i + 1; | |
var weaknessname = weaknessessplit[i]; | |
name = "repeating_activespirits_" + newid + "_activespirits_weakness_" + index + "_name"; | |
createObj("attribute", {name: name, current: weaknessname, max:"", _characterid: character.id}); | |
name = "repeating_activespirits_" + newid + "_activespirits_weakness_" + index + "_pool"; | |
createObj("attribute", {name: name, current: skillpool, max:"", _characterid: character.id}); | |
} | |
var add_power_button = ""; | |
for (var i = 0; i < additional_powerssplit.length;i = i + 1) { | |
var index = i + 1; | |
var additionalpower = additional_powerssplit[i]; | |
additionalpower = additionalpower.replace(/"/g,"").replace(/\([^)]*\)/g,"").trim(); | |
add_power_button = add_power_button + "["+additionalpower+"](!shadowrun --character "+character.id+" --action spirit-select-additional-power --power-name '"+additionalpower+"' --spirit-id "+newid+")"; | |
} | |
var message = "&{template:geist}"+ | |
"{{text=beschwört }}"+ | |
"{{name="+spiritname+"}}"+ | |
"{{basis="+basis+"}}"+ | |
"{{mod="+mod+"}}"+ | |
"{{pool="+castpool+"}}"+ | |
"{{erfolge="+rollCast+"}}"+ | |
"{{geist-erfolge="+rollSpirit+"}}"+ | |
"{{entzugsschaden="+totaldrain+"-"+rollDrain+"="+draindamage+"}}"+ | |
"{{dienste="+tasks+"}}"+ | |
"{{ks="+force+"}}"+ | |
"{{kon="+kon+"}}"+ | |
"{{ges="+ges+"}}"+ | |
"{{rea="+rea+"}}"+ | |
"{{str="+str+"}}"+ | |
"{{wil="+wil+"}}"+ | |
"{{log="+logic+"}}"+ | |
"{{int="+intu+"}}"+ | |
"{{cha="+cha+"}}"+ | |
"{{edg="+edg+"}}"+ | |
"{{ess="+ess+"}}"+ | |
"{{mag="+mag+"}}"+ | |
"{{ini="+ini+"}}"+ | |
"{{a-ini="+aini+"}}"+ | |
"{{fertigkeiten="+skills+"}}"+ | |
"{{kräfte="+powers+"}}"+ | |
"{{zusätzliche-kräfte="+add_power_button+"}}"+ | |
"{{schwächen="+weaknesses+"}}"+ | |
"{{besonderheiten="+specials+"}}"; | |
var hiderolls = attributes.S(attributes.get(character,"hide_rolls_cmd")); | |
sendChatRoll(msg.who,hiderolls,message); | |
//whisperToGM(msg.who,msg.who,message); | |
}else{ | |
var message = "&{template:geist}"+ | |
"{{text=beschwört }}"+ | |
"{{name="+spiritname+"}}"+ | |
"{{basis="+basis+"}}"+ | |
"{{mod="+mod+"}}"+ | |
"{{ks="+force+"}}"+ | |
"{{pool="+castpool+"}}"+ | |
"{{erfolge="+rollCast+"}}"+ | |
"{{geist-erfolge="+rollSpirit+"}}"+ | |
"{{entzugsschaden="+totaldrain+"-"+rollDrain+"="+draindamage+"}}"; | |
var hiderolls = attributes.S(attributes.get(character,"hide_rolls_cmd")); | |
sendChatRoll(msg.who,hiderolls,message); | |
//whisperToGM(msg.who,msg.who,message); | |
} | |
}); | |
}); | |
}); | |
}); | |
}); | |
}); | |
}; | |
var handleAlchemyPrepare = function(msg,character,spellname,force,basis,mod,trigger,trigger_name){ | |
var castpool = basis + mod; | |
var spell = characters.get("Zauber-"+spellname); | |
if(spell==undefined){ | |
whisperToGM(msg.who,msg.who,"Zauber: "+spellname+" nicht gefunden"); | |
return; | |
} | |
var art = abilities.S(abilities.get(spell,"Art")); | |
var category = abilities.S(abilities.get(spell,"Kategorie")); | |
var range = abilities.S(abilities.get(spell,"Reichweite")); | |
var damage = abilities.S(abilities.get(spell,"Schaden")); | |
var duration = abilities.S(abilities.get(spell,"Dauer")); | |
var drain = abilities.I(abilities.get(spell,"Entzug")); | |
var description = abilities.S(abilities.get(spell,"Beschreibung")); | |
// Unwrap the @{attribute} | |
var drainattribute = attributes.I(attributes.unwrap(character,"tradition_drainattribute")); | |
var drainmod = attributes.I(attributes.get(character,"tradition_drainmod")); | |
var wil = attributes.I(attributes.get(character,"wil")); | |
var drainpool = drainattribute + drainmod + wil; | |
var wirksamkeit = 0; | |
//Alchemist roll | |
sendChat(character.get('name'), "/roll [["+castpool+"d6sacs5cs6>5kh"+force+"]]", function(x) { | |
Object.keys(x[0].inlinerolls).forEach(function(i) { | |
var RollValueAlchemist = x[0].inlinerolls[i]; | |
var rollCast = buildInline(RollValueAlchemist, undefined, undefined); | |
var successesAlchemist = parseInt(RollValueAlchemist["results"]["total"]); | |
//Roll for Preparations | |
sendChat(character.get('name'),"/roll [["+force+"d6sacs5cs6>5]]",function(x) { | |
Object.keys(x[0].inlinerolls).forEach(function(i) { | |
var RollValuePreparation = x[0].inlinerolls[i]; | |
var rollPreparation = buildInline(RollValuePreparation, undefined, undefined); | |
var successesPreparation = parseInt(RollValuePreparation["results"]["total"]); | |
var totaldrain = Math.max(force + drain + trigger,2); | |
wirksamkeit = Math.max(successesAlchemist-successesPreparation,0); | |
sendChat(character.get('name'),"/roll [["+drainpool+"d6sacs5cs6>5]]",function(x) { | |
var RollValueDrain = 0; | |
var i = 1; | |
Object.keys(x[0].inlinerolls).forEach(function(i) { | |
RollValueDrain = x[0].inlinerolls[i]; | |
var rollDrain = buildInline(RollValueDrain, undefined, undefined); | |
var successesDrain = parseInt(RollValueDrain["results"]["total"]); | |
var draindamage = Math.max(totaldrain-successesDrain,0); | |
if(wirksamkeit>0){ | |
var newid = generateRowID(); | |
var name = "repeating_preparations_"+newid+"_preparations_name"; | |
createObj("attribute", {name: name, current: spellname, max:"", _characterid: character.id}); | |
name = "repeating_preparations_"+newid+"_preparations_basis"; | |
createObj("attribute", {name: name, current: wirksamkeit, max:"", _characterid: character.id}); | |
name = "repeating_preparations_"+newid+"_preparations_mod"; | |
createObj("attribute", {name: name, current: force, max:"", _characterid: character.id}); | |
//name = "repeating_preparations_"+newid+"_preparations"; | |
//createObj("attribute", {name: name, current: 0, max:"", _characterid: character.id}); | |
name = "repeating_preparations_"+newid+"_preparations_date"; | |
createObj("attribute", {name: name, current: "", max:"", _characterid: character.id}); | |
name = "repeating_preparations_"+newid+"_preparations_note"; | |
createObj("attribute", {name: name, current: "", max:"", _characterid: character.id}); | |
name = "repeating_preparations_"+newid+"_preparations_id"; | |
createObj("attribute", {name: name, current: newid, max:"", _characterid: character.id}); | |
}else{ | |
description = "Vorbereitung fehlgeschlagen."; | |
} | |
var message = "&{template:alchemie}"+ | |
"{{text=präpariert "+spellname+"}}"+ | |
"{{ks="+force+"}}"+ | |
"{{basis="+basis+"}}"+ | |
"{{mod="+mod+"}}"+ | |
"{{pool="+castpool+"}}"+ | |
"{{art="+art+"}}"+ | |
"{{schaden="+damage+"}}"+ | |
"{{kategorie="+category+"}}"+ | |
"{{reichweite="+range+"}}"+ | |
"{{dauer="+duration+"}}"+ | |
"{{entzug="+force+"+"+drain+"+"+trigger+"="+totaldrain+"}}"+ | |
"{{beschreibung="+description+"}}"+ | |
"{{erfolge="+rollCast+"-"+rollPreparation+"="+wirksamkeit+"}}"+ | |
"{{entzugswiderstand="+totaldrain+"-"+rollDrain+"="+draindamage+"}}"+ | |
"{{ausloeser="+trigger_name+"}}"; | |
var hiderolls = attributes.S(attributes.get(character,"hide_rolls_cmd")); | |
sendChatRoll(msg.who,hiderolls,message); | |
//whisperToGM(msg.who,msg.who,message); | |
}); | |
}); | |
}); | |
}); | |
}); | |
}); | |
}; | |
var handleAlchemyUse = function(msg,character,id,force,wirksamkeit){ | |
var spellname = attributes.get(character,"repeating_preparations_"+id+"_preparations_name"); | |
if(spellname==undefined){ | |
whisperToGM(msg.who,msg.who,"Präparat mit ID: "+id+" nicht gefunden"); | |
return; | |
} | |
spellname = attributes.S(spellname); | |
var wirksamkeit = attributes.I(attributes.get(character,"repeating_preparations_"+id+"_preparations_basis")); | |
var force = attributes.I(attributes.get(character,"repeating_preparations_"+id+"_preparations_mod")); | |
if(isNaN(wirksamkeit) || isNaN(force)){ | |
whisperTo(msg.who,msg.who,"Wirksamkeit oder Krafstufe müssen eine Zahl sein"); | |
return; | |
} | |
var castpool = wirksamkeit + force; | |
var spell = characters.get("Zauber-"+spellname); | |
if(spell==undefined){ | |
whisperToGM(msg.who,msg.who,"Zauber "+spellname+" nicht gefunden"); | |
return; | |
} | |
var art = abilities.S(abilities.get(spell,"Art")); | |
var category = abilities.S(abilities.get(spell,"Kategorie")); | |
var range = abilities.S(abilities.get(spell,"Reichweite")); | |
var damage = abilities.S(abilities.get(spell,"Schaden")); | |
var duration = abilities.S(abilities.get(spell,"Dauer")); | |
var drain = abilities.I(abilities.get(spell,"Entzug")); | |
var description = abilities.S(abilities.get(spell,"Beschreibung")); | |
// Unwrap the @{attribute} | |
var drainattribute = attributes.I(attributes.unwrap(character,"tradition_drainattribute")); | |
var drainmod = attributes.I(attributes.get(character,"tradition_drainmod")); | |
var wil = attributes.I(attributes.get(character,"wil")); | |
var drainpool = drainattribute + drainmod + wil; | |
var myid = id; | |
//Cast roll | |
sendChat(character.get('name'), "/roll [["+castpool+"d6sacs5cs6>5kh"+force+"]]", function(x) { | |
var RollValueCaster = x[0].inlinerolls[0]; | |
var rollCast = buildInline(RollValueCaster, undefined, undefined); | |
var successesCaster = parseInt(RollValueCaster["results"]["total"]); | |
var totaldrain = Math.max(force + drain,2); | |
sendChat(character.get('name'),"/roll [["+drainpool+"d6sacs5cs6>5]]",function(x) { | |
var RollValueDrain = x[0].inlinerolls[0]; | |
var rollDrain = buildInline(RollValueDrain, undefined, undefined); | |
var successesDrain = parseInt(RollValueDrain["results"]["total"]); | |
var draindamage = Math.max(totaldrain-successesDrain,0); | |
var message = "&{template:zauber}"+ | |
"{{text=zaubert "+spellname+"}}"+ | |
"{{beschreibung="+description+"}}"+ | |
"{{ks="+force+"}}"+ | |
"{{basis="+wirksamkeit+"}}"+ | |
"{{mod="+force+"}}"+ | |
"{{pool="+castpool+"}}"+ | |
"{{erfolge="+rollCast+"}}"+ | |
"{{art="+art+"}}"+ | |
"{{schaden="+damage+"}}"+ | |
"{{kategorie="+category+"}}"+ | |
"{{reichweite="+range+"}}"+ | |
"{{entzug="+force+"+"+drain+"="+totaldrain+"}}"+ | |
"{{entzugswiderstand="+totaldrain+"-"+rollDrain+"="+draindamage+"}}"+ | |
"{{dauer="+duration+"}}"; | |
var hiderolls = attributes.S(attributes.get(character,"hide_rolls_cmd")); | |
sendChatRoll(msg.who,hiderolls,message); | |
//whisperToGM(msg.who,msg.who,message); | |
log("Delete preparation "+myid); | |
spellname = attributes.get(character,"repeating_preparations_"+myid+"_preparations_name"); | |
if(spellname != undefined){ | |
log("Delete spellname"); | |
spellname.remove(); | |
} | |
wirksamkeit = attributes.get(character,"repeating_preparations_"+myid+"_preparations_basis"); | |
if(wirksamkeit!=undefined){ | |
log("Delete basis"); | |
wirksamkeit.remove(); | |
} | |
force = attributes.get(character,"repeating_preparations_"+myid+"_preparations_mod"); | |
if(force != undefined){ | |
log("Delete mod"); | |
force.remove(); | |
} | |
castpool = attributes.get(character,"repeating_preparations_"+myid+"_preparations"); | |
if(castpool != undefined){ | |
log("Delete preparations"); | |
castpool.remove(); | |
} | |
var show_details = attributes.get(character,"repeating_preparations_"+myid+"_preparations_show_details"); | |
if(show_details != undefined){ | |
log("Delete show details"); | |
show_details.remove(); | |
} | |
var note = attributes.get(character,"repeating_preparations_"+myid+"_preparations_note"); | |
if(note != undefined){ | |
log("Delete note"); | |
note.remove(); | |
} | |
var preparations_date = attributes.get(character,"repeating_preparations_"+myid+"_preparations_date"); | |
if(preparations_date != undefined){ | |
log("Delete preparations date"); | |
preparations_date.remove(); | |
} | |
var id = attributes.get(character,"repeating_preparations_"+myid+"_preparations_id"); | |
if(id != undefined){ | |
log("Delete id"); | |
id.remove(); | |
} | |
}); | |
}); | |
}; | |
var handleSpellcastingCast = function(msg,character,spellname,id,force,basis,mod){ | |
var castpool = basis + mod; | |
var spell = characters.get("Zauber-"+spellname); | |
if(spell==undefined){ | |
whisperToGM(msg.who,msg.who," Zauber "+spellname+" nicht gefunden"); | |
return; | |
} | |
var art = abilities.S(abilities.get(spell,"Art")); | |
var category = abilities.S(abilities.get(spell,"Kategorie")); | |
var range = abilities.S(abilities.get(spell,"Reichweite")); | |
var damage = abilities.S(abilities.get(spell,"Schaden")); | |
var duration = abilities.S(abilities.get(spell,"Dauer")); | |
var drain = abilities.I(abilities.get(spell,"Entzug")); | |
var description = abilities.S(abilities.get(spell,"Beschreibung")); | |
// Unwrap the @{attribute} | |
var drainattribute = attributes.I(attributes.unwrap(character,"tradition_drainattribute")); | |
var drainmod = attributes.I(attributes.get(character,"tradition_drainmod")); | |
var wil = attributes.I(attributes.get(character,"wil")); | |
var drainpool = drainattribute + drainmod + wil; | |
var myid = id; | |
//Cast roll | |
sendChat(character.get('name'), "/roll [["+castpool+"d6sacs5cs6>5kh"+force+"]]", function(x) { | |
var RollValueCaster = x[0].inlinerolls[0]; | |
var rollCast = buildInline(RollValueCaster, undefined, undefined); | |
var successesCaster = parseInt(RollValueCaster["results"]["total"]); | |
var totaldrain = Math.max(force + drain,2); | |
sendChat(character.get('name'),"/roll [["+drainpool+"d6sacs5cs6>5]]",function(x) { | |
var RollValueDrain = x[0].inlinerolls[0]; | |
var rollDrain = buildInline(RollValueDrain, undefined, undefined); | |
var successesDrain = parseInt(RollValueDrain["results"]["total"]); | |
var draindamage = Math.max(totaldrain-successesDrain,0); | |
var message = "&{template:zauber}"+ | |
"{{text=zaubert "+spellname+"}}"+ | |
"{{beschreibung="+description+"}}"+ | |
"{{ks="+force+"}}"+ | |
"{{basis="+basis+"}}"+ | |
"{{mod="+mod+"}}"+ | |
"{{pool="+castpool+"}}"+ | |
"{{erfolge="+rollCast+"}}"+ | |
"{{art="+art+"}}"+ | |
"{{schaden="+damage+"}}"+ | |
"{{kategorie="+category+"}}"+ | |
"{{reichweite="+range+"}}"+ | |
"{{entzug="+force+"+"+drain+"="+totaldrain+"}}"+ | |
"{{entzugswiderstand="+totaldrain+"-"+rollDrain+"="+draindamage+"}}"+ | |
"{{dauer="+duration+"}}"; | |
var hiderolls = attributes.S(attributes.get(character,"hide_rolls_cmd")); | |
sendChatRoll(msg.who,hiderolls,message); | |
//whisperToGM(msg.who,msg.who,message); | |
}); | |
}); | |
}; | |
var handleComplexFormUse = function(msg,character,name,id,force,basis,mod){ | |
var pool = basis + mod; | |
var spell = characters.get("Complex-Form-"+name); | |
if(spell==undefined){ | |
whisperToGM(msg.who,msg.who," Komplexe Form "+name+" nicht gefunden"); | |
return; | |
} | |
var target = abilities.S(abilities.get(spell,"Ziel")); | |
var duration = abilities.S(abilities.get(spell,"Dauer")); | |
var fade = abilities.I(abilities.get(spell,"Schwund")); | |
var description = abilities.S(abilities.get(spell,"Beschreibung")); | |
description = description.replace(/(?:\r\n|\r|\n)/g, ''); | |
// Unwrap the @{attribute} | |
var res = attributes.I(attributes.get(character,"res")); | |
var wil = attributes.I(attributes.get(character,"wil")); | |
var fadepool = res + wil; | |
var myid = id; | |
//Cast roll | |
sendChat(character.get('name'), "/roll [["+pool+"d6sacs5cs6>5kh"+force+"]]", function(x) { | |
var RollValueTechnomancer = x[0].inlinerolls[0]; | |
var rollTechnomancer = buildInline(RollValueTechnomancer, undefined, undefined); | |
var successesTechnomancer = parseInt(RollValueTechnomancer["results"]["total"]); | |
var totalfade = Math.max(force + fade,2); | |
sendChat(character.get('name'),"/roll [["+fadepool+"d6sacs5cs6>5]]",function(x) { | |
var RollValueFade = x[0].inlinerolls[0]; | |
var rollFade = buildInline(RollValueFade, undefined, undefined); | |
var successesFade = parseInt(RollValueFade["results"]["total"]); | |
var fadedamage = Math.max(totalfade-successesFade,0); | |
var message = "&{template:complex-form}"+ | |
"{{text=nutzt "+name+"}}"+ | |
"{{beschreibung="+description+"}}"+ | |
"{{stufe="+force+"}}"+ | |
"{{basis="+basis+"}}"+ | |
"{{mod="+mod+"}}"+ | |
"{{pool="+pool+"}}"+ | |
"{{erfolge="+rollTechnomancer+"}}"+ | |
"{{ziel="+target+"}}"+ | |
"{{dauer="+duration+"}}"+ | |
"{{schwund="+force+"+"+fade+"="+totalfade+"}}"+ | |
"{{schwundwiderstand="+totalfade+"-"+rollFade+"="+fadedamage+"}}"; | |
var hiderolls = attributes.S(attributes.get(character,"hide_rolls_cmd")); | |
sendChatRoll(msg.who,hiderolls,message); | |
//whisperToGM(msg.who,msg.who,message); | |
}); | |
}); | |
}; | |
var handleCompileSprite = function(msg,character,spritename,basis,mod,force){ | |
spritename = spritename.replace(/\\/g,"").replace(/"/g,""); | |
var compilepool = basis + mod; | |
var sprite = characters.get("Sprites-"+spritename); | |
if(sprite==undefined){ | |
whisperToGM(msg.who,msg.who," Sprite: "+spritename+" nicht gefunden."); | |
return; | |
} | |
var attack = Math.max(force+abilities.I(abilities.get(sprite,"Angriff")),1); | |
var sleaze = Math.max(force+abilities.I(abilities.get(sprite,"Schleicher")),1); | |
var dataprocessing = Math.max(force+abilities.I(abilities.get(sprite,"Datenverarbeitung")),1); | |
var firewall = Math.max(force+abilities.I(abilities.get(sprite,"Firewall")),1); | |
var spriteres = force; | |
var ini = abilities.S(abilities.get(sprite,"Initiative")); | |
var description = abilities.S(abilities.get(sprite,"Beschreibung")); | |
var skills = abilities.S(abilities.get(sprite,"Fertigkeiten")); | |
var powers = abilities.S(abilities.get(sprite,"Kräfte")); | |
var skillsplit = skills.split(",").map(function(e){return e.trim();}); | |
var powerssplit = powers.split(",").map(function(e){return e.trim();}); | |
// Unwrap the @{attribute} | |
var res = attributes.I(attributes.get(character,"res")); | |
var wil = attributes.I(attributes.get(character,"res")); | |
var fadepool = res+wil; | |
//Roll for Technomancer | |
sendChat(character.get('name'), "/roll [["+compilepool+"d6sacs5cs6>5kh"+force+"]]", function(x) { | |
Object.keys(x[0].inlinerolls).forEach(function(i) { | |
var RollValueTechnomancer = x[0].inlinerolls[i]; | |
var rollCompile = buildInline(RollValueTechnomancer, undefined, undefined); | |
var successesTechnomancer = parseInt(RollValueTechnomancer["results"]["total"]); | |
//Roll for Sprite | |
sendChat(character.get('name'),"/roll [["+force+"d6sacs5cs6>5]]",function(x) { | |
Object.keys(x[0].inlinerolls).forEach(function(i) { | |
var RollValueSprite = x[0].inlinerolls[i]; | |
var rollSprite = buildInline(RollValueSprite, undefined, undefined); | |
var successesSprite = parseInt(RollValueSprite["results"]["total"]); | |
//Roll Entzug | |
var totalfade = Math.max(successesSprite*2,2); | |
var tasks = Math.max(successesTechnomancer-successesSprite,0); | |
sendChat(character.get('name'),"/roll [["+fadepool+"d6sacs5cs6>5]]",function(x) { | |
Object.keys(x[0].inlinerolls).forEach(function(i) { | |
var RollValueFade = x[0].inlinerolls[i]; | |
var rollFade = buildInline(RollValueFade, undefined, undefined); | |
var successesFade = parseInt(RollValueFade["results"]["total"]); | |
var fadedamage = Math.max(totalfade-successesFade,0); | |
if(tasks > 0){ | |
var newid = generateRowID(); | |
var name = "repeating_activesprites_"+newid+"_activesprites_name"; | |
createObj("attribute", {name: name, current: spritename, max:"", _characterid: character.id}); | |
name = "repeating_activesprites_"+newid+"_activesprites_stufe"; | |
createObj("attribute", {name: name, current: force, max:"", _characterid: character.id}); | |
name = "repeating_activesprites_"+newid+"_activesprites_dienste"; | |
createObj("attribute", {name: name, current: tasks, max:"", _characterid: character.id}); | |
name = "repeating_activesprites_"+newid+"_activesprites_attack"; | |
createObj("attribute", {name: name, current: attack, max:"", _characterid: character.id}); | |
name = "repeating_activesprites_"+newid+"_activesprites_sleaze"; | |
createObj("attribute", {name: name, current: sleaze, max:"", _characterid: character.id}); | |
name = "repeating_activesprites_"+newid+"_activesprites_dataprocessing"; | |
createObj("attribute", {name: name, current: dataprocessing, max:"", _characterid: character.id}); | |
name = "repeating_activesprites_"+newid+"_activesprites_firewall"; | |
createObj("attribute", {name: name, current: firewall, max:"", _characterid: character.id}); | |
name = "repeating_activesprites_"+newid+"_activesprites_res"; | |
createObj("attribute", {name: name, current: spriteres, max:"", _characterid: character.id}); | |
var skillpool = force; | |
for (var i = 0; i < skillsplit.length;i = i + 1) { | |
var index = i + 1; | |
var skillname = skillsplit[i]; | |
name = "repeating_activesprites_" + newid + "_activesprites_skill_" + index + "_name"; | |
createObj("attribute", {name: name, current: skillname, max:"", _characterid: character.id}); | |
name = "repeating_activesprites_" + newid + "_activesprites_skill_" + index + "_pool"; | |
createObj("attribute", {name: name, current: skillpool, max:"", _characterid: character.id}); | |
} | |
for (var i = 0; i < powerssplit.length;i = i + 1) { | |
var index = i + 1; | |
var powername = powerssplit[i]; | |
name = "repeating_activesprites_" + newid + "_activesprites_power_" + index + "_name"; | |
createObj("attribute", {name: name, current: powername, max:"", _characterid: character.id}); | |
name = "repeating_activesprites_" + newid + "_activesprites_power_" + index + "_pool"; | |
createObj("attribute", {name: name, current: skillpool, max:"", _characterid: character.id}); | |
} | |
var message = "&{template:sprite}"+ | |
"{{text=kompiliert }}"+ | |
"{{name="+spritename+"}}"+ | |
"{{basis="+basis+"}}"+ | |
"{{mod="+mod+"}}"+ | |
"{{pool="+compilepool+"}}"+ | |
"{{erfolge="+rollCompile+"}}"+ | |
"{{sprite-erfolge="+rollSprite+"}}"+ | |
"{{fadeschaden="+totalfade+"-"+rollFade+"="+fadedamage+"}}"+ | |
"{{tasks="+tasks+"}}"+ | |
"{{stufe="+force+"}}"+ | |
"{{angriff="+attack+"}}"+ | |
"{{schleicher="+sleaze+"}}"+ | |
"{{datenverarbeitung="+dataprocessing+"}}"+ | |
"{{firewall="+firewall+"}}"+ | |
"{{resonanz="+spriteres+"}}"+ | |
"{{initiative="+ini+"}}"+ | |
"{{fertigkeiten="+skills+"}}"+ | |
"{{kräfte="+powers+"}}"+ | |
"{{beschreibung="+description+"}}"; | |
var hiderolls = attributes.S(attributes.get(character,"hide_rolls_cmd")); | |
sendChatRoll(msg.who,hiderolls,message); | |
//whisperToGM(msg.who,msg.who,message); | |
}else{ | |
var message = "&{template:sprite}"+ | |
"{{text=scheitert bei Kompilierung von }}"+ | |
"{{name="+spritename+"}}"+ | |
"{{basis="+basis+"}}"+ | |
"{{mod="+mod+"}}"+ | |
"{{pool="+compilepool+"}}"+ | |
"{{erfolge="+rollCompile+"}}"+ | |
"{{sprite-erfolge="+rollSprite+"}}"+ | |
"{{fadeschaden="+totalfade+"-"+rollFade+"="+fadedamage+"}}"+ | |
"{{stufe="+force+"}}"; | |
var hiderolls = attributes.S(attributes.get(character,"hide_rolls_cmd")); | |
sendChatRoll(msg.who,hiderolls,message); | |
//whisperToGM(msg.who,msg.who,message); | |
} | |
}); | |
}); | |
}); | |
}); | |
}); | |
}); | |
}; | |
var handleLinkedBars = function(token){ | |
var represents = token.get('represents'); | |
var bar1_link = token.get('bar1_link'); | |
var bar2_link = token.get('bar2_link'); | |
var bar3_link = token.get('bar3_link'); | |
if(represents){ | |
var character = characters.get_by_id(represents); | |
if(bar1_link){ | |
//Update Injury Mod | |
var injury_mod = attributes.get(character,"injury_mod"); | |
var im = attributes.I(injury_mod); | |
if(isNaN(parseInt(im))){ | |
im = 0; | |
attributes.set(injury_mod,0); | |
} | |
var injury_mod_negative = attributes.get(character,"injury_mod_negative"); | |
attributes.set(injury_mod_negative,-im); | |
var use_injury = attributes.get(character,"use_injury_mod",true); | |
var cmd_injury_mod = attributes.get(character,"cmd_injury_mod",true); | |
var cmd_injury_text = attributes.get(character,"cmd_injury_text",true); | |
if(use_injury.get('current') == "on" && attributes.I(injury_mod) > 0){ | |
attributes.set(cmd_injury_mod,"-@{injury_mod}"); | |
attributes.set(cmd_injury_text,"{{injurymod=-@{injury_mod}}}"); | |
}else{ | |
attributes.set(cmd_injury_mod,""); | |
attributes.set(cmd_injury_text,""); | |
} | |
} | |
if(bar2_link && bar3_link){ | |
updateConditionMonitorAndInjury(character); | |
} | |
} | |
}; | |
var updateConditionMonitorAndInjury = function(character){ | |
var zmg_aktuell = attributes.get(character,"zmg_aktuell"); | |
var zmg_maximum = attributes.get(character,"zmg_maximum"); | |
var zmg_toleranz = attributes.get(character,"zmg_toleranz"); | |
var zmp_aktuell = attributes.get(character,"zmp_aktuell"); | |
var zmp_maximum = attributes.get(character,"zmp_maximum"); | |
var zmp_toleranz = attributes.get(character,"zmp_toleranz"); | |
var overflow_aktuell = attributes.get(character,"overflow_aktuell"); | |
var overflow_maximum = attributes.get(character,"overflow_maximum"); | |
var overflow_toleranz = attributes.get(character,"overflow_toleranz"); | |
var injury_mod = attributes.get(character,"injury_mod"); | |
if(zmg_aktuell == undefined ||zmg_maximum==undefined||zmg_toleranz==undefined|| | |
zmp_aktuell==undefined||zmp_maximum==undefined||zmp_toleranz==undefined|| | |
overflow_aktuell==undefined||overflow_maximum==undefined||overflow_toleranz==undefined|| | |
injury_mod==undefined){ | |
whisperToGM("gm","gm","Character "+character.get('name')+" has undefined condition monitor variables."); | |
return; | |
} | |
var pc = attributes.I(zmp_aktuell); | |
var pm = attributes.I(zmp_maximum); | |
var pt = attributes.I(zmp_toleranz); | |
if(pt<=0){ | |
attributes.set(zmp_toleranz,1); | |
pt = 1; | |
} | |
var gc = attributes.I(zmg_aktuell); | |
var gm = attributes.I(zmg_maximum); | |
var gt = attributes.I(zmg_toleranz); | |
if(gt<=0){ | |
attributes.set(zmg_toleranz,1); | |
gt = 1; | |
} | |
var oc = attributes.I(overflow_aktuell); | |
var om = attributes.I(overflow_maximum); | |
var ot = attributes.I(overflow_toleranz); | |
if(ot<=0){ | |
attributes.set(overflow_toleranz,1); | |
ot = 1; | |
} | |
if(gc > gm + 1){ | |
//Overflow -> physical per 2 boxes | |
var overflow = Math.floor((gc - gm)/2.0); | |
pc = pc + overflow; | |
//Substract overflow from mental | |
gc = gc - overflow*2; | |
} | |
if(pc > pm){ | |
var overflow = pc - pm; | |
oc = oc + overflow; | |
//Substract overflow from physical | |
pc = pc - overflow; | |
} | |
var mod_p = Math.floor(pc/pt); | |
var mod_g = Math.floor(gc/gt); | |
var injurymod = mod_p + mod_g; | |
attributes.set(zmg_aktuell,gc); | |
attributes.setMax(zmg_aktuell,gm); | |
attributes.set(zmp_aktuell,pc); | |
attributes.setMax(zmp_aktuell,pm); | |
attributes.set(overflow_aktuell,oc); | |
attributes.set(injury_mod,injurymod); | |
var maxinjurymod = Math.floor(pm/pt)+Math.floor(gm/gt); | |
attributes.setMax(injury_mod,maxinjurymod); | |
var use_injury_mod = attributes.S(attributes.get(character,"use_injury_mod")); | |
var cmd_injury_mod = attributes.get(character,"cmd_injury_mod"); | |
if(use_injury_mod == "on"){ | |
attributes.set(cmd_injury_mod,"-@{injury_mod}"); | |
}else{ | |
attributes.set(cmd_injury_mod,""); | |
} | |
}; | |
var whisperTo = function(sender,reciever,msg){ | |
if(reciever.indexOf(" (GM)")>-1){ | |
reciever = "gm"; | |
} | |
sendChat(sender,'/w \"'+reciever+'\" '+msg) | |
} | |
var whisperToGM = function(sender,reciever,msg){ | |
if(sender.indexOf("(GM)") == -1 && reciever.indexOf("(GM)") == -1){ | |
whisperTo(sender,"gm",msg); | |
} | |
whisperTo(sender,reciever,msg); | |
} | |
var sendChatRoll = function(sender,hiderollcmd,msg){ | |
if(hiderollcmd.indexOf("/w gm") == -1){ | |
log("/em ?"); | |
sendChat(sender,hiderollcmd + msg); | |
}else{ | |
log("/w gm ?"); | |
if(sender.indexOf("(GM)") == -1){ | |
whisperTo(sender,"gm",msg); | |
} | |
whisperTo(sender,sender,msg); | |
} | |
} | |
var registerEventHandlers = function() { | |
on('chat:message', handleShadowrunInput); | |
on('change:token', handleToken); | |
}; | |
return { | |
CheckInstall: checkInstall, | |
RegisterEventHandlers: registerEventHandlers | |
}; | |
}()); | |
var attributes = { | |
get:function(chr,att,create){ | |
create = (typeof create === 'undefined') ? false : create; | |
var a = findObjs({_type: 'attribute', _characterid: chr.id, name: att},{caseInsensitive: true})[0]; | |
if(a == undefined && create){a = attributes.create(chr,att,'0');} | |
return a; | |
}, | |
get_from_str:function(chr,str){ | |
var s = str.replace(/[\{\}@]/g,""); | |
var a = attributes.get(chr,s); | |
return a; | |
}, | |
set:function(att,value){att.set({current:value});}, | |
setMax:function(att,max){att.set({max:max});}, | |
create:function(chr,name,value){return createObj("attribute", {name: name, current: value, characterid: chr.id});}, | |
I:function(attr){ | |
if(attr == undefined){ | |
log("attributes.I: You passed 'undefined'"); | |
return undefined; | |
} | |
var x = parseInt(attr.get('current')); | |
return isNaN(x)?0:x; | |
}, | |
F:function(attr){ | |
var x = parseFloat(attr.get('current')); | |
return isNaN(x)?0:x; | |
}, | |
S:function(attr){ | |
var x = attr != undefined ? attr.get('current') : undefined; | |
return x == undefined ? "" : x; | |
}, | |
unwrap:function(chr,att){ | |
//Unwraps @{log} to get(character,log) | |
var attribute = attributes.S(attributes.get(chr,att)).replace(/[\{\}@]/g,""); | |
return attributes.get(chr,attribute); | |
} | |
}; | |
var abilities = { | |
get:function(chr,ab){return findObjs({_type: 'ability', _characterid: chr.id, name: ab},{caseInsensitive: true})[0];}, | |
set:function(ab,value){ab.set({current:value});}, | |
S:function(ab){ | |
var x = ab.get('action'); | |
return x == undefined ? "" : x; | |
}, | |
I:function(ab){ | |
var x = parseInt(ab.get('action')); | |
return isNaN(x)?0:x; | |
} | |
}; | |
var characters = { | |
get:function(name){return findObjs({_type: 'character', name: name},{caseInsensitive: true})[0];}, | |
get_by_id:function(id){return findObjs({_type: 'character', id: id},{caseInsensitive: true})[0];} | |
}; | |
on("ready",function(){ | |
'use strict'; | |
Shadowrun.CheckInstall(); | |
Shadowrun.RegisterEventHandlers(); | |
if(!state.Shadowrun) { | |
state.Shadowrun = {}; | |
} | |
if(state.Shadowrun["extendedTests"] == undefined) { | |
state.Shadowrun["extendedTests"] = {}; | |
} | |
}); | |
//Functions stolen from Aarons Post how to get UUID generation into the API | |
var generateUUID = (function() { | |
"use strict"; | |
var a = 0, b = []; | |
return function() { | |
var c = (new Date()).getTime() + 0, d = c === a; | |
a = c; | |
for (var e = new Array(8), f = 7; 0 <= f; f--) { | |
e[f] = "-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz".charAt(c % 64); | |
c = Math.floor(c / 64); | |
} | |
c = e.join(""); | |
if (d) { | |
for (f = 11; 0 <= f && 63 === b[f]; f--) { | |
b[f] = 0; | |
} | |
b[f]++; | |
} else { | |
for (f = 0; 12 > f; f++) { | |
b[f] = Math.floor(64 * Math.random()); | |
} | |
} | |
for (f = 0; 12 > f; f++){ | |
c += "-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz".charAt(b[f]); | |
} | |
return c; | |
}; | |
}()); | |
var generateRowID = function () { | |
"use strict"; | |
var uuid = generateUUID().replace(/_/g, "Z"); | |
while(findObjs({id: uuid},{caseInsensitive: true}).length!=0){ | |
uuid = generateUUID().replace(/_/g, "Z"); | |
} | |
return uuid; | |
}; | |
//Functions: Stolen from HoneyBadgers PowerCards | |
// INLINE ROLL COLORS | |
var INLINE_ROLL_DEFAULT = " background-color: #FFFEA2; border-color: #87850A; color: #000000;"; | |
var INLINE_ROLL_CRIT_LOW = " background-color: #FFAAAA; border-color: #660000; color: #660000;"; | |
var INLINE_ROLL_CRIT_HIGH = " background-color: #88CC88; border-color: #004400; color: #004400;"; | |
var INLINE_ROLL_CRIT_BOTH = " background-color: #8FA4D4; border-color: #061539; color: #061539;"; | |
var INLINE_ROLL_STYLE = "text-align: center; font-size: 100%; font-weight: bold; display: inline-block; min-width: 1.75em; height: 1em; margin-top: -1px; margin-bottom: 1px; padding: 0px 2px; border: 1px solid; border-radius: 3px;"; | |
function buildInline(inlineroll, TrackerID, who) { | |
var InlineColorOverride = ""; | |
var values = []; | |
var critRoll = false; | |
var failRoll = false; | |
var critCheck = false; | |
var failCheck = false; | |
var expandedCheck = false; | |
var highRoll = false; | |
var lowRoll = false; | |
var noHighlight = false; | |
var expandedRoll = false; | |
var notInline = false; | |
var addToTracker = false; | |
inlineroll.results.rolls.forEach(function(roll) { | |
var result = processRoll(roll, noHighlight, expandedRoll, critCheck, failCheck, notInline); | |
if (result["critCheck"]) critCheck = true; | |
if (result["failCheck"]) failCheck = true; | |
if (result["noHighlight"]) noHighlight = true; | |
if (result["expandedRoll"]) expandedRoll = true; | |
if (result["notInline"]) notInline = true; | |
if (result["addToTracker"]) { | |
// ADD TOKEN OR CHARACTER OR DISPLAY NAME TO TURN ORDER TRACKER... | |
var TrackerName = ""; | |
if (TrackerID.charAt(0) === "C") { | |
var Char = getObj("character", TrackerID.substring(2)); | |
var Tok = findObjs({ | |
type: 'graphic', | |
pageid: Campaign().get("playerpageid"), | |
represents: TrackerID.substring(2) | |
}); | |
if (_.isEmpty(Tok) && Char !== undefined) TrackerName = Char.get("name"); | |
else TrackerID = Tok[0].id; | |
} else if (TrackerID.charAt(0) === "T") TrackerID = TrackerID.substring(2); | |
else TrackerName = who; | |
// CHECK TURN ORDER FOR EXISTING ID... REPLACE PR VALUE IF FOUND... | |
var turn_order = ("" === Campaign().get("turnorder")) ? [] : JSON.parse(Campaign().get("turnorder")); | |
var pos = turn_order.map(function(z) { | |
return z.id; | |
}).indexOf(TrackerID); | |
if (pos === -1) turn_order.push({ | |
id: TrackerID, | |
pr: inlineroll.results.total, | |
custom: TrackerName | |
}); | |
else turn_order[pos]["pr"] = inlineroll.results.total; | |
// OPEN THE INITIATIVE WINDOW IF IT'S CLOSED... | |
if (!Campaign().get("initiativepage")) Campaign().set("initiativepage", true); | |
// SEND TURN ORDER BACK TO THE CAMPAIGN() OBJECT... | |
Campaign().set("turnorder", JSON.stringify(turn_order)); | |
} | |
if (result.value !== "") values.push(result.value); | |
}); | |
// OVERRIDE THE ROLL20 INLINE ROLL COLORS... | |
var critclass=""; | |
if (critCheck && failCheck) critclass="importantroll"; | |
else if (critCheck && !failCheck) critclass="fullcrit"; | |
else if (!critCheck && failCheck) critclass="fullfail"; | |
else critclass=""; | |
/*if (critCheck && failCheck) InlineColorOverride = INLINE_ROLL_CRIT_BOTH; | |
else if (critCheck && !failCheck) InlineColorOverride = INLINE_ROLL_CRIT_HIGH; | |
else if (!critCheck && failCheck) InlineColorOverride = INLINE_ROLL_CRIT_LOW; | |
else InlineColorOverride = INLINE_ROLL_DEFAULT;*/ | |
// PARSE TABLE RESULTS | |
inlineroll.results.tableentries = _.chain(inlineroll.results.rolls) | |
.filter(function(r) { | |
var tbl = _.has(r, 'table'); | |
return _.has(r, 'table'); | |
}) | |
.reduce(function(memo, r) { | |
_.each(r.results, function(i) { | |
i = i.tableItem; | |
if (!/^[+\-]?(0|[1-9][0-9]*)([.]+[0-9]*)?([eE][+\-]?[0-9]+)?$/.test(i.name)) { | |
memo.push({ | |
name: i.name, | |
weight: i.weight, | |
table: r.table | |
}); | |
} | |
}); | |
return memo; | |
}, []) | |
.value(); | |
// REMOVE ROLL OPTIONS LIKE NH, XPND, EMPTY BRACKETS, & ADD SPACING... | |
inlineroll.expression = inlineroll.expression | |
.replace(/\|nh|nh/, "") | |
.replace(/\|xpnd|xpnd/i, "") | |
.replace(/\|trkr|trkr/i, "") | |
.replace(/\[\]/, "") | |
.replace("<", "&" + "amp;" + "lt;") | |
.replace(/\+/g, " + ") | |
.replace(/\-/g, " - ") | |
.replace(/\*/g, " * ") | |
.replace(/\//g, " / "); | |
// END ROLL OPTIONS | |
// FINAL STEP... | |
var rollOut = ""; | |
if (expandedRoll) { | |
if (notInline) { | |
rollOut = values.join("") + " = " + inlineroll.results.total; | |
} else { | |
rollOut = '<span title="Rolling: ' + inlineroll.expression + '=<br>' + values.join(""); | |
rollOut += '" class="inlinerollresult showtip tipsy">' + values.join("") + ' = ' + inlineroll.results.total + '</span>'; | |
} | |
} else { | |
if (notInline) { | |
rollOut = inlineroll.results.total; | |
} else { | |
rollOut = '<span title="Rolling: ' + inlineroll.expression + '=<br>' + values.join(""); | |
rollOut += '" class="inlinerollresult showtip tipsy '+critclass+'">' + inlineroll.results.total + '</span>'; | |
} | |
} | |
// rollOut = (inlineroll.results.total === 0 && inlineroll.results.tableentries.length) ? '' : rollOut; | |
rollOut = (inlineroll.results.tableentries.length) ? '' : rollOut; | |
rollOut += _.map(inlineroll.results.tableentries, function(l) { | |
return (notInline) ? l.name : '<span title="Table: ' + l.table + ' ' + 'Weight: ' + l.weight + '" class="inlinerollresult showtip tipsy">' + l.name + '</span>'; | |
}).join(''); | |
return rollOut; | |
}; | |
function processRoll(roll, noHighlight, expandedRoll, critCheck, failCheck, notInline, addToTracker) { | |
if (roll.type === "C") { | |
return { | |
value: " " + roll.text + " " | |
}; | |
} else if (roll.type === "L") { | |
if (roll.text.match(/nh/i) !== null) noHighlight = true; | |
if (roll.text.match(/xpnd/i) !== null) expandedRoll = true; | |
if (roll.text.match(/txt/i) !== null) notInline = true; | |
if (roll.text.match(/trkr/i) !== null) addToTracker = true; | |
return { | |
noHighlight: noHighlight, | |
expandedRoll: expandedRoll, | |
notInline: notInline, | |
addToTracker: addToTracker | |
}; | |
} else if (roll.type === "M") { | |
if (roll.expr.toString().match(/\+|\-|\*|\\/g)) roll.expr = roll.expr.toString().replace(/\+/g, " + ").replace(/\-/g, " - ").replace(/\*/g, " * ").replace(/\//g, " / "); | |
return { | |
value: roll.expr | |
}; | |
} else if (roll.type === "R") { | |
var rollValues = []; | |
_.each(roll.results, function(result) { | |
if (result.tableItem !== undefined) { | |
rollValues.push(result.tableItem.name); | |
} else { | |
critRoll = false; | |
failRoll = false; | |
if (noHighlight) { | |
critRoll = false; | |
failRoll = false; | |
} else { | |
var Sides = roll.sides; | |
// CRITROLL CHECKS... | |
if (roll.mods && roll.mods["customCrit"]) { | |
var p = 0; | |
_.each(roll.mods["customCrit"], function() { | |
if (roll.mods["customCrit"][p]["comp"] === "<=" && result.v <= roll.mods["customCrit"][p]["point"]) critRoll = true; | |
if (roll.mods["customCrit"][p]["comp"] === "==" && result.v == roll.mods["customCrit"][p]["point"]) critRoll = true; | |
if (roll.mods["customCrit"][p]["comp"] === ">=" && result.v >= roll.mods["customCrit"][p]["point"]) critRoll = true; | |
p++; | |
}); | |
} else { | |
if (result.v === Sides) critRoll = true; | |
} | |
// FAILROLL CHECKS... | |
if (roll.mods && roll.mods["customFumble"]) { | |
var p = 0; | |
_.each(roll.mods["customFumble"], function() { | |
if (roll.mods["customFumble"][p]["comp"] === "<=" && result.v <= roll.mods["customFumble"][p]["point"]) failRoll = true; | |
if (roll.mods["customFumble"][p]["comp"] === "==" && result.v == roll.mods["customFumble"][p]["point"]) failRoll = true; | |
if (roll.mods["customFumble"][p]["comp"] === ">=" && result.v >= roll.mods["customFumble"][p]["point"]) failRoll = true; | |
p++; | |
}); | |
} else { | |
if (result.v === 1) failRoll = true; | |
} | |
} | |
if (expandedRoll) result.v = "<span style='" + (critRoll ? 'color: #040;' : (failRoll ? 'color: #600;' : '')) + "'>" + result.v + "</span>"; | |
else result.v = "<span style='" + (critRoll ? 'color: #0F0; font-size: 1.25em;' : (failRoll ? 'color: #F00; font-size: 1.25em;' : '')) + "'>" + result.v + "</span>"; | |
rollValues.push(result.v); | |
if (critRoll) critCheck = true; | |
if (failRoll) failCheck = true; | |
} | |
}); | |
return { | |
value: "(" + rollValues.join(" + ") + ")", | |
noHighlight: noHighlight, | |
expandedRoll: expandedRoll, | |
critCheck: critCheck, | |
failCheck: failCheck, | |
notInline: notInline, | |
addToTracker: addToTracker | |
}; | |
} else if (roll.type === "G") { | |
var grollVal = []; | |
_.each(roll.rolls, function(groll) { | |
_.each(groll, function(groll2) { | |
var result = processRoll(groll2, noHighlight, expandedRoll, critCheck, failCheck, notInline); | |
grollVal.push(result.value); | |
critCheck = critCheck || result.critCheck; | |
failCheck = failCheck || result.failCheck; | |
noHighlight = noHighlight || result.noHighlight; | |
expandedRoll = expandedRoll || result.expandedRoll; | |
notInline = notInline || result.notInline; | |
addToTracker = addToTracker || result.addToTracker; | |
}); | |
}); | |
return { | |
value: "{" + grollVal.join(" ") + "}", | |
noHighlight: noHighlight, | |
expandedRoll: expandedRoll, | |
critCheck: critCheck, | |
failCheck: failCheck, | |
notInline: notInline, | |
addToTracker: addToTracker | |
}; | |
} | |
}; | |
function doInlineFormatting(content, ALLOW_URLS, ALLOW_HIDDEN_URLS, Rolls) { | |
// REPLACE [^ID] with value... | |
var RollID; | |
while (content.indexOf("[^") !== -1) { | |
RollID = content.match(/\[\^(.*?)\]/); | |
if (Rolls["$" + RollID[1].split(".")[0]]) { | |
switch (RollID[1].split(".")[1]) { | |
case "total": | |
content = content.replace(RollID[0], Rolls["$" + RollID[1].split(".")[0]].total); | |
case "base": | |
content = content.replace(RollID[0], Rolls["$" + RollID[1].split(".")[0]].base); | |
case "ss": | |
content = content.replace(RollID[0], Rolls["$" + RollID[1].split(".")[0]].successes); | |
case "ones": | |
content = content.replace(RollID[0], Rolls["$" + RollID[1].split(".")[0]].ones); | |
default: | |
content = content.replace(RollID[0], Rolls["$" + RollID[1].split(".")[0]].base); | |
} | |
} else { | |
content = content.replace(RollID[0], "Roll ID Not Found"); | |
} | |
} | |
// PARSE FOR INLINE FORMATTING | |
var urls = [], | |
str, | |
formatter = function(s) { | |
return s | |
.replace(/__(.*?)__/g, "<u>$1</u>") | |
.replace(/\*\*(.*?)\*\*/g, "<b>$1</b>") | |
.replace(/\/\/(.*?)\/\//g, "<i>$1</i>") | |
.replace(/\^\^/g, "<br>") | |
.replace(/\^\*/g, "<span></span>") | |
.replace(/\$\$(#([a-fA-F0-9]{3}|[a-fA-F0-9]{6}))\|(.*?)\$\$/g, "<span>$3</span>") | |
.replace(/\~\~\~/g, "<hr/>") | |
.replace(/\~\J(.*?)\~\J/g, "<div>$1</div>") | |
.replace(/\~\L(.*?)\~\L/g, "<span>$1</span>") | |
.replace(/\~\C(.*?)\~\C/g, "<div>$1</div>") | |
.replace(/\~\R(.*?)\~\R/g, "<div>$1</div><div></div>") | |
.replace(/\[\!(.*?)\!\]/g, "<span>$1</span>") | |
; | |
}; | |
str = _.reduce( | |
content.match(/@@.*?@@/g), | |
function(m, s, i) { | |
var parts = s.replace(/@@(.*)@@/, '$1').split(/\|\|/), | |
url = parts.shift().replace(/^\s*(http(s)?:\/\/|\/\/()|())/, 'http$2://'), | |
text = formatter(parts.join('||')); | |
if (ALLOW_URLS) { | |
if (ALLOW_HIDDEN_URLS) { | |
urls[i] = '<a href="' + url + '">' + (text || url) + '</a>'; | |
} else { | |
urls[i] = '<a href="' + url + '">' + text + ' [' + url + ']</a>'; | |
} | |
} else { | |
urls[i] = s; | |
} | |
return m.replace(s, '@@' + i + '@@'); | |
}, | |
content | |
); | |
str = formatter(str); | |
return _.reduce( | |
urls, | |
function(m, s, i) { | |
return m.replace('@@' + i + '@@', s); | |
}, | |
str | |
); | |
}; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment