Last active
July 24, 2016 11:25
-
-
Save NoxMortem/8b8a7dff1635e9e64189c18f39179f41 to your computer and use it in GitHub Desktop.
Shadowrun Roll20 Sheet by Wandler
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; | |
} | |
div.sheet-nsc-settings{ | |
display:none; | |
} | |
input.sheet-type-nsc:checked ~ div div.sheet-nsc-settings, | |
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; | |
} | |
/* ATTRIBUTES and MODIFIERS*/ | |
input.sheet-toggle{ | |
z-index: 9999; | |
opacity: 0; | |
} | |
input.sheet-toggle + span{ | |
width:0; | |
float:left; | |
} | |
input.sheet-toggle + span::before { | |
content: attr(title); | |
background: white; | |
} | |
input.sheet-toggle:checked + span::before { | |
font-style:italic; | |
} | |
div.sheet-toggle-area{ | |
display:none; | |
clear:both; | |
} | |
input.sheet-toggle:checked ~ .sheet-toggle-area{ | |
display:block; | |
} | |
.sheet-toggle-area .sheet-clear{ | |
clear: both; | |
float: left; | |
width: 100%; | |
} | |
.sheet-toggle-area .sheet-margin-left-0{ | |
margin-left: 0px; | |
} | |
.charsheet input.sheet-toggle:hover + span::before{ | |
font-style:italic; | |
} | |
/* 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 */ | |
.sheet-rolltemplate-bind{ | |
border: 1px solid darkred; | |
border-radius: 5px; | |
font-size: 0.8em; | |
} | |
.sheet-rolltemplate-bind table{ | |
width: 100%; | |
} | |
.sheet-rolltemplate-bind td.sheet-header { | |
background: darkred; | |
text-align: center; | |
color: white; | |
font-weight: bold; | |
width: 100%; | |
padding: 3px; | |
margin: 0; | |
font-size: 13px; | |
border-radius: 0; | |
} | |
.sheet-rolltemplate-bind tr.sheet-even{ | |
background: rgb(250, 244, 233); | |
} | |
.sheet-rolltemplate-bind tr.sheet-odd{ | |
background: white; | |
} | |
.sheet-rolltemplate-bind td{ | |
padding-left:5px; | |
padding-right:5px; | |
border-radius:5px; | |
} | |
.sheet-rolltemplate-bind td.sheet-italic{ | |
font-style:italic; | |
} | |
.sheet-rolltemplate-bind .sheet-bold{ | |
font-weight:bold; | |
} | |
.sheet-rolltemplate-bind td.sheet-right{ | |
text-align:right; | |
} | |
.sheet-rolltemplate-bind td.sheet-center{ | |
text-align:center; | |
} | |
/* 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%; | |
position:relative; | |
} | |
.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%;} | |
input.sheet-w20px,.sheet-w20px{width:20px;} | |
input.sheet-w25px,.sheet-w25px{width:25px;} | |
input.sheet-w30px,.sheet-w30px{width:30px;} | |
input.sheet-w35px,.sheet-w35px{width:35px;} | |
input.sheet-w38px,.sheet-w38px{width:38px;} | |
input.sheet-w40px,.sheet-w40px{width:40px;} | |
input.sheet-w45px,.sheet-w45px{width:45px;} | |
input.sheet-w48px,.sheet-w48px{width:48px;} | |
input.sheet-w49px,.sheet-w49px{width:49px;} | |
input.sheet-w50px,.sheet-w50px{width:50px;} | |
input.sheet-w55px,.sheet-w55px{width:55px;} | |
input.sheet-w57px,.sheet-w57px{width:57px;} | |
input.sheet-w60px,.sheet-w60px{width:60px;} | |
input.sheet-w65px,.sheet-w65px{width:65px;} | |
input.sheet-w70px,.sheet-w70px{width:70px;} | |
input.sheet-w75px,.sheet-w75px{width:75px;} | |
input.sheet-w80px,.sheet-w80px{width:80px;} | |
input.sheet-w85px,.sheet-w85px{width:85px;} | |
input.sheet-w90px,.sheet-w90px{width:90px;} | |
input.sheet-w95px,.sheet-w95px{width:95px;} | |
input.sheet-w100px,.sheet-w100px{width:100px;} | |
input.sheet-w105px,.sheet-w105px{width:105px;} | |
input.sheet-w101px,.sheet-w101px{width:101px;} | |
input.sheet-w110px,.sheet-w110px{width:110px;} | |
input.sheet-w120px,.sheet-w120px{width:120px;} | |
input.sheet-w125px,.sheet-w125px{width:125px;} | |
input.sheet-w130px,.sheet-w130px{width:130px;} | |
input.sheet-w135px,.sheet-w135px{width:135px;} | |
input.sheet-w140px,.sheet-w140px{width:140px;} | |
input.sheet-w145px,.sheet-w145px{width:145px;} | |
input.sheet-w150px,.sheet-w150px{width:150px;} | |
input.sheet-w155px,.sheet-w155px{width:155px;} | |
input.sheet-w160px,.sheet-w160px{width:160px;} | |
input.sheet-w165px,.sheet-w165px{width:165px;} | |
input.sheet-w175px,.sheet-w175px{width:175px;} | |
input.sheet-w180px,.sheet-w180px{width:180px;} | |
input.sheet-w200px,.sheet-w200px{width:200px;} | |
input.sheet-w220px,.sheet-w220px{width:220px;} | |
input.sheet-w225px,.sheet-w225px{width:225px;} | |
input.sheet-w230px,.sheet-w230px{width:230px;} | |
input.sheet-w240px,.sheet-w240px{width:240px;} | |
input.sheet-w250px,.sheet-w250px{width:250px;} | |
input.sheet-w255px,.sheet-w255px{width:255px;} | |
input.sheet-w260px,.sheet-w260px{width:260px;} | |
input.sheet-w270px,.sheet-w270px{width:270px;} | |
input.sheet-w275px,.sheet-w275px{width:275px;} | |
input.sheet-w300px,.sheet-w300px{width:300px;} | |
input.sheet-w300px,.sheet-w300px{width:400px;} | |
input.sheet-w408px,.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 !important; | |
} | |
.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; | |
} | |
/* Chat Tooltip */ | |
.sheet-rolltemplate-roll .sheet-chat-tooltip{ | |
display:none; | |
} | |
.sheet-rolltemplate-roll:hover .sheet-chat-tooltip, | |
.sheet-rolltemplate-roll .sheet-chat-tooltip:hover{ | |
display: block; | |
position: absolute; | |
bottom: 100%; | |
right: 0; | |
white-space: nowrap; | |
background: black; | |
color: white; | |
font-weight: bold; | |
border: 1px solid white; | |
border-radius: 3px; | |
padding: 4px; | |
width: 100%; | |
} | |
/* Margins */ | |
.sheet-margin-left-0{ | |
margin-left: 0px; | |
} | |
[data-groupname] > div.repcontainer, | |
[data-groupname]{ | |
float: left; | |
clear: both; | |
} | |
[data-groupname] > button.btn.repcontrol_add{ | |
font-size: 0.1px; | |
background: darkred; | |
color: white; | |
line-height: 3px; | |
padding-top: 7px; | |
} | |
[data-groupname] > button.btn.repcontrol_add::after{ | |
content: "+"; | |
font-size: 20px; | |
padding-right: 10px; | |
margin-left: 8px; | |
} | |
[data-groupname] > button.btn.repcontrol_edit{ | |
color: darkred; | |
text-shadow: none; | |
font-size: 0.1px; | |
line-height: 10px; | |
} | |
[data-groupname] > button.btn.repcontrol_edit::after{ | |
content: "x"; | |
font-family: "Pictos"; | |
font-size: 15px; | |
line-height: 18px; | |
margin-left: 5px; | |
} | |
[data-groupname]{ | |
clear:both; | |
} | |
[data-groupname] > 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: "c"; | |
font-family: "Pictos"; | |
font-size: 15px; | |
line-height: 20px; | |
margin-left: 5px; | |
} | |
a.btn.repcontrol_move{ | |
background: darkred; | |
border: none; | |
color: darkred; | |
text-shadow: none; | |
margin: 0; | |
padding-top: 5px; | |
font-size: 16px; | |
right: -26px; | |
padding-bottom: 5px; | |
padding-left: 0; | |
padding-right: 7px; | |
z-index: 1; | |
} | |
a.btn.repcontrol_move::after{ | |
content: "^"; | |
color: white; | |
right: 20px; | |
} | |
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" data-i18n-title="Character"></span> | |
<input class="tab tab-skills" type="radio" name="attr_tabs" value="1"/> | |
<span class="tab" title="Fertigkeiten" data-i18n-title="Skills"></span> | |
<input class="tab tab-combat" type="radio" name="attr_tabs" value="2"/> | |
<span class="tab" title="Kampf" data-i18n-title="Combat"></span> | |
<input class="tab tab-magic" type="radio" name="attr_tabs" value="3"/> | |
<span class="tab" title="Magie" data-i18n-title="Magic"></span> | |
<input class="tab tab-matrix" type="radio" name="attr_tabs" value="4"/> | |
<span class="tab" title="Matrix" data-i18n-title="Matrix"></span> | |
<input class="tab tab-technomancer" type="radio" name="attr_tabs" value="5"/> | |
<span class="tab" title="Technomancer" data-i18n-title="Technomancer"></span> | |
<input class="tab tab-social" type="radio" name="attr_tabs" value="6"/> | |
<span class="tab" title="Sozial" data-i18n-title="Social"></span> | |
<input class="tab tab-equipment" type="radio" name="attr_tabs" value="7"/> | |
<span class="tab" title="Ausrüstung" data-i18n-title="Equipment"></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" data-i18n-title="PC"></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" data-i18n-title="NPC"></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" data-i18n-title="OTHER"></span> | |
<!-- Settings --> | |
<input class="sheet-injury" type="checkbox" name="attr_use_injury_mod"></input> | |
<span class="sheet-injury" title="Verletzung" data-i18n-title="Injury"></span> | |
<input class="sheet-use-edge" type="checkbox" name="attr_use_edge"></input> | |
<span class="sheet-use-edge" title="Edge" data-i18n-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" data-i18n-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="checked"/> | |
<span class="tab tab-sub tab-sub-menu tab-sub-basis tab-character" title="Charakter" data-i18n-title="Character"></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" data-i18n-title="Attributes"></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" data-i18n-title="Qualities"></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" data-i18n-title="Description"></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" data-i18n-title="Advancement"></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" data-i18n-title="Settings"></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="checked"/> | |
<span class="tab tab-sub tab-sub-menu tab-sub-skills tab-actionskills" title="Aktion" data-i18n-title="Actionskills"></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" data-i18n-title="Knowledgeskills"></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="checked"/> | |
<span class="tab tab-sub tab-sub-menu tab-sub-magic tab-spellcasting" title="Spruchzauberei" data-i18n-title="Spellcasting"></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" data-i18n-title="Alchemy"></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" data-i18n-title="Summoning"></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" data-i18n-title="Rituals"></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" data-i18n-title="Adept Powers"></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" data-i18n-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" data-i18n="Spells">Zauber</div> | |
<div class="w45px" data-i18n="Basis">Basis</div> | |
<div class="w45px" data-i18n="Mod">Mod</div> | |
<div class="w45px" data-i18n="Total">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" data-i18n="Notes">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" data-i18n="Spells">Zauber</div> | |
<div class="w45px" data-i18n="Pool">Pool</div> | |
<div class="w45px" data-i18n="Mod">Mod</div> | |
<div class="w45px" data-i18n="Total">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" data-i18n="Command">Befehl</option> | |
<option value="Kontakt" data-i18n="Contact">Kontakt</option> | |
<option value="Zeitzünder" data-i18n="Timer">Zeitzünder</option> | |
<option value="Ver._Befehl" data-i18n="Improved Command">Ver. Befehl</option> | |
<option value="Ver._Kontakt" data-i18n="Improved Contact">Ver. Kontakt</option> | |
<option value="Ver._Kontakt_Geschlecht/Metatyp" data-i18n="Improved Contact Sex Type">Ver. Kontakt Geschlecht/Metatyp</option> | |
</select> | |
<div class="details"> | |
<div class="labels color-darkred w100" data-i18n="Notes">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" data-i18n="Preparations">Präparate</div> | |
<div class="w45px" data-i18n="Potency">Wirk.</div> | |
<div class="w45px" data-i18n="Force">KS</div> | |
<div class="w45px" data-i18n="Total">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" data-i18n="Created at">Herstellungszeitpunkt</div> | |
<input class="buttoninput buttoninput-both left" type="text" name="attr_preparations_date" value="0"></input> | |
<div class="labels color-darkred w100" data-i18n="Notes">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" data-i18n="Spirit">Geist</div> | |
<div class="w45px" data-i18n="Pool">Pool</div> | |
<div class="w45px" data-i18n="Mod">Mod</div> | |
<div class="w45px" data-i18n="Total">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" data-i18n="Notes">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" data-i18n="Active Spirits">Aktive Geister</div> | |
<div class="w45px" data-i18n="Force">Stufe</div> | |
<div class="w45px" data-i18n="Tasks">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='!shadowrun --character @{character_id} --action bind-spirit --id @{activespirits_id} --pool ?{Pool|0}'></button> | |
<div class="details"> | |
<div class="row labels color-darkred"> | |
<div class="w45px" data-i18n="BOD">KON</div> | |
<div class="w45px" data-i18n="STR">STR</div> | |
<div class="w45px" data-i18n="AGI">GES</div> | |
<div class="w45px" data-i18n="REA">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" data-i18n="INT">INT</div> | |
<div class="w45px" data-i18n="LOG">LOG</div> | |
<div class="w45px" data-i18n="WIL">WIL</div> | |
<div class="w45px" data-i18n="CHA">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" data-i18n="EDG">EDG</div> | |
<div class="w45px" data-i18n="ESS">ESS</div> | |
<div class="w45px" data-i18n="MAG">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" data-i18n="Skills">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" data-i18n="Powers">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" data-i18n="Weaknesses">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" data-i18n="Notes">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" data-i18n="Rituals">Ritual</div> | |
<div class="w45px" data-i18n="Pool">Pool</div> | |
<div class="w45px" data-i18n="Mod">Mod</div> | |
<div class="w45px" data-i18n="Total">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="@{rituals_basis}+@{rituals_mod}" disabled="disabled"></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" data-i18n="Notes">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" data-i18n="Adept Power">Adeptenkraft</div> | |
<div class="w45px" data-i18n="Pool">Pool</div> | |
<div class="w45px" data-i18n="Mod">Mod</div> | |
<div class="w45px" data-i18n="Total">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="@{adeptpowers_basis}+@{adeptpowers_mod}" disabled="disabled"></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" data-i18n="Notes">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" data-i18n="Tradition">Tradition</div> | |
<div class="w85px" data-i18n="Drain attribute">Entzugsattribut</div> | |
<div class="w50px center" data-i18n="WIL">WIL</div> | |
<div class="w50px center" data-i18n="Mod">Mod</div> | |
<div class="w45px" data-i18n="Total">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}" data-i18n="BOD">KON</option> | |
<option value="@{ges}" data-i18n="AGI">GES</option> | |
<option value="@{rea}" data-i18n="REA">REA</option> | |
<option value="@{str}" data-i18n="STR">STR</option> | |
<option value="@{wil}" data-i18n="WIL">WIL</option> | |
<option value="@{log}" data-i18n="LOG">LOG</option> | |
<option value="@{int}" data-i18n="INT">INT</option> | |
<option value="@{cha}" data-i18n="CHA">CHA</option> | |
<option value="@{mag}" data-i18n="MAG">MAG</option> | |
<option value="@{res}" data-i18n="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" data-i18n="Notes">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" data-i18n="Patron">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" data-i18n="Advantage">Vorteile</div> | |
<textarea name="attr__patron_positive_qualities" class="w95 h100px clear"></textarea> | |
</div> | |
<div class="row labels color-darkred"> | |
<div class="w155px" data-i18n="Disadvantage">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="checked"/> | |
<span class="tab tab-sub tab-sub-menu tab-sub-matrix tab-matrixequipment" title="Ausrüstung" data-i18n-title="Equipment"></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" data-i18n-title="Programs"></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" data-i18n-title="Actions"></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="checked"/> | |
<span class="tab tab-sub tab-sub-menu tab-sub-technomancer tab-livingpersona" title="Persona" data-i18n-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" data-i18n-title="CF"></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" data-i18n-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="checked"/> | |
<span class="tab tab-sub tab-sub-menu tab-sub-social tab-sinlicense" title="SIN/Lizenzen" data-i18n-title="SIN/Licenses"></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" data-i18n-title="Lifestyles"></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" data-i18n-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="checked"/> | |
<span class="tab tab-sub tab-sub-menu tab-sub-equipment tab-equipment-equipment" title="Ausrüstung" data-i18n-title="Equipment"></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" data-i18n-title="Augmentation"></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" data-i18n-title="Ammunition"></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" data-i18n-title="Vehicles"></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" data-i18n-title="Drones"></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" data-i18n-title="Orders"></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" data-i18n="Name">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" data-i18n="Sex">Geschlecht</div> | |
<input class="buttoninput buttoninput-both w60px" type="text" name="attr_sex"></input> | |
</div> | |
<div class="row"> | |
<div class="w80px labels color-darkred" data-i18n="Metatype">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" data-i18n="Age">Alter</div> | |
<input class="buttoninput buttoninput-both w60px" type="text" name="attr_age"></input> | |
</div> | |
<div class="row"> | |
<div class="w80px labels color-darkred" data-i18n="Ethnicity">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" data-i18n="Height">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" data-i18n="Current Karma">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" data-i18n="Total Karma">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" data-i18n="Weight">Gewicht</div> | |
<input class="buttoninput buttoninput-both w60px" type="text" name="attr_weight"></input> | |
</div> | |
<div class="row"> | |
<div class="w110px labels color-darkred" data-i18n="Reputation">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" data-i18n="Bad Reputation">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" data-i18n="Prominence">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" data-i18n="Account">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" data-i18n="Basis/Mod/Total">Basis/Mod/Total</div> | |
</div> | |
<!-- kon --> | |
<div class="row"> | |
<input class="hidden" type="text" name="attr_kon_mod_tooltips"></input> | |
<input class="toggle w35px" type="checkbox" name="attr_attribute_toggle_kon"/> | |
<span class="labels color-darkred" title="KON" data-i18n-title="BOD"></span> | |
<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" readonly="true"></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" value="0" 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]]}}{{tooltip=@{kon_mod_tooltips}}}@{cmd_use_edge_text}@{cmd_injury_text}"></button> | |
<div class="toggle-area"> | |
<div class="sheet-row"> | |
<div class="color-darkred labels sheet-w140px" data-i18n="Modifiers">Modifikatoren</div> | |
<div class="color-darkred labels">+</div> | |
<div class="color-darkred labels" data-i18n="Active">Aktiv</div> | |
</div> | |
<fieldset class="repeating_attrmodkon"> | |
<div class="row"> | |
<input type="text" name="attr_name" class="attrmod_name buttoninput buttoninput-left margin-left-0 w140px left"></input> | |
<input type="text" name="attr_value" class="attrmod_value buttoninput buttoninput-right" value="0"></input> | |
<input type="checkbox" name="attr_active" class="attrmod_active"></input> | |
</div> | |
</fieldset> | |
</div> | |
</div> | |
<!-- ges --> | |
<div class="row"> | |
<input class="hidden" type="text" name="attr_ges_mod_tooltips"></input> | |
<input class="toggle w35px" type="checkbox" name="attr_attribute_toggle_ges"/> | |
<span class="labels color-darkred" title="GES" data-i18n-title="AGI"></span> | |
<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" readonly="true"></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" value="0" 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]]}}{{tooltip=@{ges_mod_tooltips}}}@{cmd_use_edge_text}@{cmd_injury_text}"></button> | |
<div class="toggle-area"> | |
<div class="sheet-row"> | |
<div class="color-darkred labels sheet-w140px" data-i18n="Modifiers">Modifikatoren</div> | |
<div class="color-darkred labels">+</div> | |
<div class="color-darkred labels" data-i18n="Active">Aktiv</div> | |
</div> | |
<fieldset class="repeating_attrmodges"> | |
<div class="row"> | |
<input type="text" name="attr_name" class="attrmod_name buttoninput buttoninput-left margin-left-0 w140px left"></input> | |
<input type="text" name="attr_value" class="attrmod_value buttoninput buttoninput-right" value="0"></input> | |
<input type="checkbox" name="attr_active" class="attrmod_active"></input> | |
</div> | |
</fieldset> | |
</div> | |
</div> | |
<!-- rea --> | |
<div class="row"> | |
<input class="hidden" type="text" name="attr_rea_mod_tooltips"></input> | |
<input class="toggle w35px" type="checkbox" name="attr_attribute_toggle_rea"/> | |
<span class="labels color-darkred" title="REA" data-i18n-title="REA"></span> | |
<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" readonly="true"></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" value="0" 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]]}}{{tooltip=@{rea_mod_tooltips}}}@{cmd_use_edge_text}@{cmd_injury_text}"></button> | |
<div class="toggle-area"> | |
<div class="sheet-row"> | |
<div class="color-darkred labels sheet-w140px" data-i18n="Modifiers">Modifikatoren</div> | |
<div class="color-darkred labels">+</div> | |
<div class="color-darkred labels" data-i18n="Active">Aktiv</div> | |
</div> | |
<fieldset class="repeating_attrmodrea"> | |
<div class="row"> | |
<input type="text" name="attr_name" class="attrmod_name buttoninput buttoninput-left margin-left-0 w140px left"></input> | |
<input type="text" name="attr_value" class="attrmod_value buttoninput buttoninput-right" value="0"></input> | |
<input type="checkbox" name="attr_active" class="attrmod_active"></input> | |
</div> | |
</fieldset> | |
</div> | |
</div> | |
<!-- str --> | |
<div class="row"> | |
<input class="hidden" type="text" name="attr_str_mod_tooltips"></input> | |
<input class="toggle w35px" type="checkbox" name="attr_attribute_toggle_str"/> | |
<span class="labels color-darkred" title="STR" data-i18n-title="STR"></span> | |
<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" readonly="true"></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" value="0" 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]]}}{{tooltip=@{str_mod_tooltips}}}@{cmd_use_edge_text}@{cmd_injury_text}"></button> | |
<div class="toggle-area"> | |
<div class="sheet-row"> | |
<div class="color-darkred labels sheet-w140px" data-i18n="Modifiers">Modifikatoren</div> | |
<div class="color-darkred labels">+</div> | |
<div class="color-darkred labels" data-i18n="Active">Aktiv</div> | |
</div> | |
<fieldset class="repeating_attrmodstr"> | |
<div class="row"> | |
<input type="text" name="attr_name" class="attrmod_name buttoninput buttoninput-left margin-left-0 w140px left"></input> | |
<input type="text" name="attr_value" class="attrmod_value buttoninput buttoninput-right" value="0"></input> | |
<input type="checkbox" name="attr_active" class="attrmod_active"></input> | |
</div> | |
</fieldset> | |
</div> | |
</div> | |
<!-- wil --> | |
<div class="row"> | |
<input class="hidden" type="text" name="attr_wil_mod_tooltips"></input> | |
<input class="toggle w35px" type="checkbox" name="attr_attribute_toggle_wil"/> | |
<span class="labels color-darkblue" title="WIL" data-i18n-title="WIL"></span> | |
<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" readonly="true"></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" value="0" 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]]}}{{tooltip=@{wil_mod_tooltips}}}@{cmd_use_edge_text}@{cmd_injury_text}"></button> | |
<div class="toggle-area"> | |
<div class="sheet-row"> | |
<div class="color-darkblue labels sheet-w140px" data-i18n="Modifiers">Modifikatoren</div> | |
<div class="color-darkblue labels">+</div> | |
<div class="color-darkblue labels" data-i18n="Active">Aktiv</div> | |
</div> | |
<fieldset class="repeating_attrmodwil"> | |
<div class="row"> | |
<input type="text" name="attr_name" class="attrmod_name buttoninput buttoninput-left margin-left-0 w140px left"></input> | |
<input type="text" name="attr_value" class="attrmod_value buttoninput buttoninput-right" value="0"></input> | |
<input type="checkbox" name="attr_active" class="attrmod_active"></input> | |
</div> | |
</fieldset> | |
</div> | |
</div> | |
<!-- log --> | |
<div class="row"> | |
<input class="hidden" type="text" name="attr_log_mod_tooltips"></input> | |
<input class="toggle w35px" type="checkbox" name="attr_attribute_toggle_log"/> | |
<span class="labels color-darkblue" title="LOG" data-i18n-title="LOG"></span> | |
<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" readonly="true"></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" value="0" 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]]}}{{tooltip=@{log_mod_tooltips}}}@{cmd_use_edge_text}@{cmd_injury_text}"></button> | |
<div class="toggle-area"> | |
<div class="sheet-row"> | |
<div class="color-darkblue labels sheet-w140px" data-i18n="Modifiers">Modifikatoren</div> | |
<div class="color-darkblue labels">+</div> | |
<div class="color-darkblue labels" data-i18n="Active">Aktiv</div> | |
</div> | |
<fieldset class="repeating_attrmodlog"> | |
<div class="row"> | |
<input type="text" name="attr_name" class="attrmod_name buttoninput buttoninput-left margin-left-0 w140px left"></input> | |
<input type="text" name="attr_value" class="attrmod_value buttoninput buttoninput-right" value="0"></input> | |
<input type="checkbox" name="attr_active" class="attrmod_active"></input> | |
</div> | |
</fieldset> | |
</div> | |
</div> | |
<!-- int --> | |
<div class="row"> | |
<input class="hidden" type="text" name="attr_int_mod_tooltips"></input> | |
<input class="toggle w35px" type="checkbox" name="attr_attribute_toggle_int"/> | |
<span class="labels color-darkblue" title="INT" data-i18n-title="INT"></span> | |
<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" readonly="true"></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" value="0" 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]]}}{{tooltip=@{int_mod_tooltips}}}@{cmd_use_edge_text}@{cmd_injury_text}"></button> | |
<div class="toggle-area"> | |
<div class="sheet-row"> | |
<div class="color-darkblue labels sheet-w140px" data-i18n="Modifiers">Modifikatoren</div> | |
<div class="color-darkblue labels">+</div> | |
<div class="color-darkblue labels" data-i18n="Active">Aktiv</div> | |
</div> | |
<fieldset class="repeating_attrmodint"> | |
<div class="row"> | |
<input type="text" name="attr_name" class="attrmod_name buttoninput buttoninput-left margin-left-0 w140px left"></input> | |
<input type="text" name="attr_value" class="attrmod_value buttoninput buttoninput-right" value="0"></input> | |
<input type="checkbox" name="attr_active" class="attrmod_active"></input> | |
</div> | |
</fieldset> | |
</div> | |
</div> | |
<!-- cha --> | |
<div class="row"> | |
<input class="hidden" type="text" name="attr_cha_mod_tooltips"></input> | |
<input class="toggle w35px" type="checkbox" name="attr_attribute_toggle_cha"/> | |
<span class="labels color-darkblue" title="CHA" data-i18n-title="CHA"></span> | |
<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" readonly="true"></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" value="0" 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]]}}{{tooltip=@{cha_mod_tooltips}}}@{cmd_use_edge_text}@{cmd_injury_text}"></button> | |
<div class="toggle-area"> | |
<div class="sheet-row"> | |
<div class="color-darkblue labels sheet-w140px" data-i18n="Modifiers">Modifikatoren</div> | |
<div class="color-darkblue labels">+</div> | |
<div class="color-darkblue labels" data-i18n="Active">Aktiv</div> | |
</div> | |
<fieldset class="repeating_attrmodcha"> | |
<div class="row"> | |
<input type="text" name="attr_name" class="attrmod_name buttoninput buttoninput-left margin-left-0 w140px left"></input> | |
<input type="text" name="attr_value" class="attrmod_value buttoninput buttoninput-right" value="0"></input> | |
<input type="checkbox" name="attr_active" class="attrmod_active"></input> | |
</div> | |
</fieldset> | |
</div> | |
</div> | |
<div class="row"> | |
<div class="is-mage"> | |
<!-- mag --> | |
<div class="row"> | |
<input class="hidden" type="text" name="attr_mag_mod_tooltips"></input> | |
<input class="toggle w35px" type="checkbox" name="attr_attribute_toggle_mag"/> | |
<span class="labels color-blueviolet" title="MAG" data-i18n-title="MAG"></span> | |
<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" readonly="true"></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" value="0" 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]]}}{{tooltip=@{mag_mod_tooltips}}}@{cmd_use_edge_text}@{cmd_injury_text}"></button> | |
<div class="toggle-area"> | |
<div class="sheet-row"> | |
<div class="color-blueviolet labels sheet-w140px" data-i18n="Modifiers">Modifikatoren</div> | |
<div class="color-blueviolet labels">+</div> | |
<div class="color-blueviolet labels" data-i18n="Active">Aktiv</div> | |
</div> | |
<fieldset class="repeating_attrmodmag"> | |
<div class="row"> | |
<input type="text" name="attr_name" class="attrmod_name buttoninput buttoninput-left margin-left-0 w140px left"></input> | |
<input type="text" name="attr_value" class="attrmod_value buttoninput buttoninput-right" value="0"></input> | |
<input type="checkbox" name="attr_active" class="attrmod_active"></input> | |
</div> | |
</fieldset> | |
</div> | |
</div> | |
</div> | |
</div> | |
<div class="row"> | |
<div class="is-technomancer"> | |
<!-- res --> | |
<div class="row"> | |
<input class="hidden" type="text" name="attr_res_mod_tooltips"></input> | |
<input class="toggle w35px" type="checkbox" name="attr_attribute_toggle_res"/> | |
<span class="labels color-blueviolet" title="RES" data-i18n-title="RES"></span> | |
<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" readonly="true"></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" value="0" 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]]}}{{tooltip=@{res_mod_tooltips}}}@{cmd_use_edge_text}@{cmd_injury_text}"></button> | |
<div class="toggle-area"> | |
<div class="sheet-row"> | |
<div class="color-blueviolet labels sheet-w140px" data-i18n="Modifiers">Modifikatoren</div> | |
<div class="color-blueviolet labels">+</div> | |
<div class="color-blueviolet labels" data-i18n="Active">Aktiv</div> | |
</div> | |
<fieldset class="repeating_attrmodres"> | |
<div class="row"> | |
<input type="text" name="attr_name" class="attrmod_name buttoninput buttoninput-left margin-left-0 w140px left"></input> | |
<input type="text" name="attr_value" class="attrmod_value buttoninput buttoninput-right" value="0"></input> | |
<input type="checkbox" name="attr_active" class="attrmod_active"></input> | |
</div> | |
</fieldset> | |
</div> | |
</div> | |
</div> | |
</div> | |
<div class="row"> | |
<!-- edg --> | |
<div class="row"> | |
<input class="hidden" type="text" name="attr_edg_mod_tooltips"></input> | |
<input class="toggle w35px" type="checkbox" name="attr_attribute_toggle_edg"/> | |
<span class="labels color-blueviolet" title="EDG" data-i18n-title="EDG"></span> | |
<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" readonly="true"></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" value="0" 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]]}}{{tooltip=@{edg_mod_tooltips}}}@{cmd_use_edge_text}@{cmd_injury_text}"></button> | |
<div class="toggle-area"> | |
<div class="sheet-row"> | |
<div class="color-blueviolet labels sheet-w140px" data-i18n="Modifiers">Modifikatoren</div> | |
<div class="color-blueviolet labels">+</div> | |
<div class="color-blueviolet labels" data-i18n="Active">Aktiv</div> | |
</div> | |
<fieldset class="repeating_attrmodedg"> | |
<div class="row"> | |
<input type="text" name="attr_name" class="attrmod_name buttoninput buttoninput-left margin-left-0 w140px left"></input> | |
<input type="text" name="attr_value" class="attrmod_value buttoninput buttoninput-right" value="0"></input> | |
<input type="checkbox" name="attr_active" class="attrmod_active"></input> | |
</div> | |
</fieldset> | |
</div> | |
</div> | |
</div> | |
</div><!--float--> | |
<!--Derived Attributes --> | |
<div class="float card"> | |
<!-- Attributes --> | |
<div class="row labels color-darkred"> | |
<div class="w40px"></div> | |
<div class="w145px center" data-i18n="Limits">Limits</div> | |
</div> | |
<div class="row"> | |
<input class="hidden" type="text" name="attr_klimit_mod_tooltips"></input> | |
<input class="toggle w35px" type="checkbox" name="attr_klimit_toggle"/> | |
<span class="labels color-darkred" title="Körp." data-i18n-title="Phys."></span> | |
<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" readonly></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 class="toggle-area"> | |
<div class="sheet-row"> | |
<div class="color-darkred labels sheet-w140px" data-i18n="Modifiers">Modifikatoren</div> | |
<div class="color-darkred labels">+</div> | |
<div class="color-darkred labels" data-i18n="Active">Aktiv</div> | |
</div> | |
<fieldset class="repeating_attrmodklimit"> | |
<div class="row"> | |
<input type="text" name="attr_name" class="attrmod_name buttoninput buttoninput-left margin-left-0 w140px left"></input> | |
<input type="text" name="attr_value" class="attrmod_value buttoninput buttoninput-right" value="0"></input> | |
<input type="checkbox" name="attr_active" class="attrmod_active"></input> | |
</div> | |
</fieldset> | |
</div> | |
</div> | |
<div class="row"> | |
<input class="hidden" type="text" name="attr_glimit_mod_tooltips"></input> | |
<input class="toggle w35px" type="checkbox" name="attr_glimit_toggle"/> | |
<span class="labels color-darkblue" title="Geist." data-i18n-title="Ment."></span> | |
<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" readonly></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_glimit_mod' value='@{hide_rolls_cmd} &{template:roll}{{erfolge=[[@{glimit_basis}+@{glimit_mod}]]}}{{text=Geistigse 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 class="toggle-area"> | |
<div class="sheet-row"> | |
<div class="color-darkblue labels sheet-w140px" data-i18n="Modifiers">Modifikatoren</div> | |
<div class="color-darkblue labels">+</div> | |
<div class="color-darkblue labels" data-i18n="Active">Aktiv</div> | |
</div> | |
<fieldset class="repeating_attrmodglimit"> | |
<div class="row"> | |
<input type="text" name="attr_name" class="attrmod_name buttoninput buttoninput-left margin-left-0 w140px left"></input> | |
<input type="text" name="attr_value" class="attrmod_value buttoninput buttoninput-right" value="0"></input> | |
<input type="checkbox" name="attr_active" class="attrmod_active"></input> | |
</div> | |
</fieldset> | |
</div> | |
</div> | |
<div class="row"> | |
<input class="hidden" type="text" name="attr_slimit_mod_tooltips"></input> | |
<input class="toggle w35px" type="checkbox" name="attr_slimit_toggle"/> | |
<span class="labels color-darkblue" title="Soz." data-i18n-title="Soc."></span> | |
<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" readonly></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 class="toggle-area"> | |
<div class="sheet-row"> | |
<div class="color-darkblue labels sheet-w140px" data-i18n="Modifiers">Modifikatoren</div> | |
<div class="color-darkblue labels">+</div> | |
<div class="color-darkblue labels" data-i18n="Active">Aktiv</div> | |
</div> | |
<fieldset class="repeating_attrmodslimit"> | |
<div class="row"> | |
<input type="text" name="attr_name" class="attrmod_name buttoninput buttoninput-left margin-left-0 w140px left"></input> | |
<input type="text" name="attr_value" class="attrmod_value buttoninput buttoninput-right" value="0"></input> | |
<input type="checkbox" name="attr_active" class="attrmod_active"></input> | |
</div> | |
</fieldset> | |
</div> | |
</div> | |
<div class="row"> | |
<div class="is-mage"> | |
<input class="hidden" type="text" name="attr_alimit_mod_tooltips"></input> | |
<input class="toggle w35px" type="checkbox" name="attr_alimit_toggle"/> | |
<span class="labels color-darkblue" title="Astr." data-i18n-title="Astr."></span> | |
<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" readonly></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 class="toggle-area"> | |
<div class="sheet-row"> | |
<div class="color-darkblue labels sheet-w140px" data-i18n="Modifiers">Modifikatoren</div> | |
<div class="color-darkblue labels">+</div> | |
<div class="color-darkblue labels" data-i18n="Active">Aktiv</div> | |
</div> | |
<fieldset class="repeating_attrmodalimit"> | |
<div class="row"> | |
<input type="text" name="attr_name" class="attrmod_name buttoninput buttoninput-left margin-left-0 w140px left"></input> | |
<input type="text" name="attr_value" class="attrmod_value buttoninput buttoninput-right" value="0"></input> | |
<input type="checkbox" name="attr_active" class="attrmod_active"></input> | |
</div> | |
</fieldset> | |
</div> | |
</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" data-i18n="Basis/Mod/+W6">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" data-i18n-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" data-i18n-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" data-i18n-title="VR cold"></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" data-i18n-title="VR hot"></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." data-i18n-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" data-i18n="Walk/Run/Sprint">Gehen/Laufen/Sprinten</div> | |
</div> | |
<div class="row labels color-darkred"> | |
<div class="w75px labels color-darkred" data-i18n="Movement">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" data-i18n="Mult/Mod">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" data-i18n="Lift">Heben/Tragen/Stemmen</div> | |
</div> | |
<div class="row labels color-darkred"> | |
<div class="w75px labels color-darkred" data-i18n="Lifting Capacity">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" data-i18n="Mult">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" data-i18n="Basis/Mod/Total">Basis/Mod/Total</div> | |
</div> | |
<div class="row labels color-darkblue"> | |
<input class="hidden" type="text" name="attr_composure_mod_tooltips"></input> | |
<input class="toggle w75px" type="checkbox" name="attr_attribute_toggle_composure"/> | |
<span class="labels color-darkblue" title="composure" data-i18n-title="Selbstbeherrschung"></span> | |
<input class="buttoninput buttoninput-left" type="text" name="attr_composure_basis" value="@{cha}+@{wil}" disabled="true"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_composure_basis' value='@{hide_rolls_cmd} &{template:roll}{{color=darkblue}}{{text=Selbstbeherrschung}}{{basis=@{composure_basis}}}{{mod=[[0@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{total=[[@{composure_basis}@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{erfolge=[[(@{composure_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_composure_mod" value="0" readonly="true"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_composure_mod' value='@{hide_rolls_cmd} &{template:roll}{{color=darkblue}}{{text=Selbstbeherrschung}}{{basis=@{composure_basis}}}{{mod=[[?{Mod|@{composure_mod}}@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{total=[[@{composure_basis}+?{Mod|@{composure_mod}}@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{erfolge=[[(@{composure_basis}+?{Mod|@{composure_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_composure" value="0" readonly="true"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_composure' value="@{hide_rolls_cmd} &{template:roll}{{color=darkblue}}{{text=Selbstbeherrschung}}{{basis=@{composure_basis}}}{{mod=[[@{composure_mod}@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{total=[[@{composure}@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{erfolge=[[(@{composure_basis}+@{composure_mod}@{cmd_use_edge_mod}@{cmd_injury_mod})d6@{cmd_use_edge_token}sacs5cs6>5]]}}{{tooltip=@{composure_mod_tooltips}}}@{cmd_use_edge_text}@{cmd_injury_text}"></button> | |
<div class="toggle-area"> | |
<div class="sheet-row"> | |
<div class="color-darkblue labels sheet-w140px" data-i18n="Modifiers">Modifikatoren</div> | |
<div class="color-darkblue labels">+</div> | |
<div class="color-darkblue labels" data-i18n="Active">Aktiv</div> | |
</div> | |
<fieldset class="repeating_attrmodcomposure"> | |
<div class="row"> | |
<input type="text" name="attr_name" class="attrmod_name buttoninput buttoninput-left margin-left-0 w140px left"></input> | |
<input type="text" name="attr_value" class="attrmod_value buttoninput buttoninput-right" value="0"></input> | |
<input type="checkbox" name="attr_active" class="attrmod_active"></input> | |
</div> | |
</fieldset> | |
</div> | |
</div> | |
<div class="row labels color-darkblue"> | |
<input class="hidden" type="text" name="attr_memory_mod_tooltips"></input> | |
<input class="toggle w75px" type="checkbox" name="attr_attribute_toggle_memory"/> | |
<span class="labels color-darkblue" title="memory" data-i18n-title="Erinnerung"></span> | |
<input class="buttoninput buttoninput-left" type="text" name="attr_memory_basis" value="@{log}+@{wil}" disabled="true"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_memory_basis' value='@{hide_rolls_cmd} &{template:roll}{{color=darkblue}}{{text=Erinnerungsprobe}}{{basis=@{memory_basis}}}{{mod=[[0@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{total=[[@{memory_basis}@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{erfolge=[[(@{memory_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_memory_mod" value="0" readonly="true"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_memory_mod' value='@{hide_rolls_cmd} &{template:roll}{{color=darkblue}}{{text=Erinnerungsprobe}}{{basis=@{memory_basis}}}{{mod=[[?{Mod|@{memory_mod}}@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{total=[[@{memory_basis}+?{Mod|@{memory_mod}}@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{erfolge=[[(@{memory_basis}+?{Mod|@{memory_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_memory" value="0" readonly="true"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_memory' value="@{hide_rolls_cmd} &{template:roll}{{color=darkblue}}{{text=Erinnerungsprobe}}{{basis=@{memory_basis}}}{{mod=[[@{memory_mod}@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{total=[[@{memory}@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{erfolge=[[(@{memory_basis}+@{memory_mod}@{cmd_use_edge_mod}@{cmd_injury_mod})d6@{cmd_use_edge_token}sacs5cs6>5]]}}{{tooltip=@{memory_mod_tooltips}}}@{cmd_use_edge_text}@{cmd_injury_text}"></button> | |
<div class="toggle-area"> | |
<div class="sheet-row"> | |
<div class="color-darkblue labels sheet-w140px" data-i18n="Modifiers">Modifikatoren</div> | |
<div class="color-darkblue labels">+</div> | |
<div class="color-darkblue labels" data-i18n="Active">Aktiv</div> | |
</div> | |
<fieldset class="repeating_attrmodmemory"> | |
<div class="row"> | |
<input type="text" name="attr_name" class="attrmod_name buttoninput buttoninput-left margin-left-0 w140px left"></input> | |
<input type="text" name="attr_value" class="attrmod_value buttoninput buttoninput-right" value="0"></input> | |
<input type="checkbox" name="attr_active" class="attrmod_active"></input> | |
</div> | |
</fieldset> | |
</div> | |
</div> | |
<div class="row labels color-darkblue"> | |
<input class="hidden" type="text" name="attr_judgeintentions_mod_tooltips"></input> | |
<input class="toggle w75px" type="checkbox" name="attr_attribute_toggle_judgeintentions"/> | |
<span class="labels color-darkblue" title="judgeintentions" data-i18n-title="Selbstbeherrschung"></span> | |
<input class="buttoninput buttoninput-left" type="text" name="attr_judgeintentions_basis" value="@{log}+@{wil}" disabled="true"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_judgeintentions_basis' value='@{hide_rolls_cmd} &{template:roll}{{color=darkblue}}{{text=Menschenkenntnis}}{{basis=@{judgeintentions_basis}}}{{mod=[[0@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{total=[[@{judgeintentions_basis}@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{erfolge=[[(@{judgeintentions_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_judgeintentions_mod" value="0" readonly="true"></input> | |
<button class="buttoninput buttoninput-center" type='roll' name='roll_judgeintentions_mod' value='@{hide_rolls_cmd} &{template:roll}{{color=darkblue}}{{text=Menschenkenntnis}}{{basis=@{judgeintentions_basis}}}{{mod=[[?{Mod|@{judgeintentions_mod}}@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{total=[[@{judgeintentions_basis}+?{Mod|@{judgeintentions_mod}}@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{erfolge=[[(@{judgeintentions_basis}+?{Mod|@{judgeintentions_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_judgeintentions" value="0" readonly="true"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_judgeintentions' value="@{hide_rolls_cmd} &{template:roll}{{color=darkblue}}{{text=Menschenkenntnis}}{{basis=@{judgeintentions_basis}}}{{mod=[[@{judgeintentions_mod}@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{total=[[@{judgeintentions}@{cmd_use_edge_mod}@{cmd_injury_mod}]]}}{{erfolge=[[(@{judgeintentions_basis}+@{judgeintentions_mod}@{cmd_use_edge_mod}@{cmd_injury_mod})d6@{cmd_use_edge_token}sacs5cs6>5]]}}{{tooltip=@{judgeintentions_mod_tooltips}}}@{cmd_use_edge_text}@{cmd_injury_text}"></button> | |
<div class="toggle-area"> | |
<div class="sheet-row"> | |
<div class="color-darkblue labels sheet-w140px" data-i18n="Modifiers">Modifikatoren</div> | |
<div class="color-darkblue labels">+</div> | |
<div class="color-darkblue labels" data-i18n="Active">Aktiv</div> | |
</div> | |
<fieldset class="repeating_attrmodjudgeintentions"> | |
<div class="row"> | |
<input type="text" name="attr_name" class="attrmod_name buttoninput buttoninput-left margin-left-0 w140px left"></input> | |
<input type="text" name="attr_value" class="attrmod_value buttoninput buttoninput-right" value="0"></input> | |
<input type="checkbox" name="attr_active" class="attrmod_active"></input> | |
</div> | |
</fieldset> | |
</div> | |
</div> | |
<!-- Essence --> | |
<div class="row labels color-darkred"> | |
<div class="w75px"></div> | |
<div class="w40px" data-i18n="Basis">Basis</div> | |
<div class="w40px">-</div> | |
<div class="w40px" data-i18n="Final">Rest</div> | |
</div> | |
<div class="row labels color-blueviolet"> | |
<div class="w75px" data-i18n="Essemce">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" data-i18n="Current/Total">Aktuell/Total</div> | |
</div> | |
<div class="row labels color-blueviolet"> | |
<div class="w75px" data-i18n="Edge points">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" data-i18n="Positive Qualities">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" data-i18n="Notes">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" data-i18n="Negative Qualities">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" data-i18n="Notes">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" data-i18n="Date">Datum</div> | |
<div class="w30px" data-i18n="Karma">Karma</div> | |
<div class="w270px center" data-i18n="Run">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" data-i18n="Notes">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" data-i18n="Date">Datum</div> | |
<div class="w30px" data-i18n="Nuyen">Nuyen</div> | |
<div class="w270px center" data-i18n="Run">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" data-i18n="Notes">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" data-i18n="Magic">Magie</div> | |
</div> | |
<div class="row labels color-darkred"> | |
<div class="w160px" data-i18n="Is Awaken?">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" data-i18n="Has Spellcasting?">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" data-i18n="Has Alchemy?">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" data-i18n="Has Summoning?">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" data-i18n="Has Ritualmagic?">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" data-i18n="Has Adept Powers?">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" data-i18n="Matrix">Matrix</div> | |
</div> | |
<div class="row labels color-darkred"> | |
<div class="w160px" data-i18n="Show Tab">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" data-i18n="Is Technomancer?">Ist Technomancer?</div> | |
<input class="buttoninput buttoninput-both" type="checkbox" name="attr_settings_is_technomancer" checked="checked"></input> | |
</div> | |
</div><!--float--> | |
<div class="float card nsc-settings"> | |
<div class="row labels color-darkred"> | |
<div class="w180px center" data-i18n="NSC">NSC</div> | |
</div> | |
<div class="row labels color-darkred"> | |
<div class="w160px" data-i18n="Spawn Mooks?">Spawne Mooks?</div> | |
<input class="buttoninput buttoninput-both" type="checkbox" name="attr_settings_is_mook"></input> | |
</div> | |
<div class="row labels color-darkred"> | |
<div class="w160px" data-i18n="Is Mook Master?">Ist Mook Master?</div> | |
<input class="buttoninput buttoninput-both" type="checkbox" name="attr_settings_is_mook_master" 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="w130px" data-i18n="Actionskills">Aktionsfertigkeiten</div> | |
<div class="w80px center" data-i18n="Attribute">Attribut</div> | |
<div class="w50px center" data-i18n="Rating">Stufe</div> | |
<div class="w40px center" data-i18n="Mod">Mod</div> | |
<div class="w45px center" data-i18n="Total">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 w140px left" type="text" name="attr_skillsaction_name"></input> | |
<select name="attr_skillsaction_attribut" class="buttoninput buttoninput-center w60px"> | |
<option value="@{kon}" data-i18n="BOD">KON</option> | |
<option value="@{ges}" data-i18n="AGI">GES</option> | |
<option value="@{rea}" data-i18n="REA">REA</option> | |
<option value="@{str}" data-i18n="STR">STR</option> | |
<option value="@{wil}" data-i18n="WIL">WIL</option> | |
<option value="@{log}" data-i18n="LOG">LOG</option> | |
<option value="@{int}" data-i18n="INT">INT</option> | |
<option value="@{cha}" data-i18n="CHA">CHA</option> | |
<option value="@{mag}" data-i18n="MAG">MAG</option> | |
<option value="@{res}" data-i18n="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" readonly></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" data-i18n="Notes">Notizen</div> | |
<textarea name="attr_skillsaction_note" class="w97 h100px clear"></textarea> | |
<div class="row labels color-darkred"> | |
<div class="w100px" data-i18n="Limit">Limit</div> | |
<div class="" data-i18n="Mod">Mod</div> | |
<div class="" data-i18n="Total">Total</div> | |
<div class="" data-i18n="Incl. Note">Inkl. Notiz</div> | |
</div> | |
<div class="row"> | |
<select name="attr_skillsaction_limit" class="buttoninput buttoninput-left w85px"> | |
<option value="99" data-i18n="None">Keines</option> | |
<option value="@{klimit}" data-i18n="Physical">Körperlich</option> | |
<option value="@{glimit}" data-i18n="Mental">Geistig</option> | |
<option value="@{slimit}" data-i18n="Social">Sozial</option> | |
<option value="@{alimit}" data-i18n="Astral">Astral</option> | |
<option value="0" data-i18n="Other">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 class="float card"> | |
<!-- Skills Modifiers--> | |
<div class="row labels color-darkred"> | |
<div class="w110px" data-i18n="Skill">Fertigkeit</div> | |
<div class="w110px" data-i18n="Modifier">Modifikator</div> | |
<div class="w40px center">+</div> | |
<div class="w45px center" data-i18n="Active">Aktiv</div> | |
</div> | |
<fieldset class="repeating_skillsmodifierlistaction"> | |
<input class="hidden" type="text" name="attr_id" value=""></input> | |
<div class="row color-darkred"> | |
<input class="buttoninput buttoninput-left w120px left" type="text" name="attr_skill"></input> | |
<input class="buttoninput buttoninput-center w120px left" type="text" name="attr_mod"></input> | |
<input class="buttoninput buttoninput-right" type="text" name="attr_value" value="0"></input> | |
<input class="buttoninput buttoninput-both sheet-margin-0" type="checkbox" name="attr_active"></input> | |
</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="w130px" data-i18n="Knowledgeskills">Wissensfertigkeiten</div> | |
<div class="w80px center" data-i18n="Attribute">Attribut</div> | |
<div class="w50px center" data-i18n="Basis">Basis</div> | |
<div class="w40px center" data-i18n="Mod">Mod</div> | |
<div class="w45px center" data-i18n="Total">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 w140px left" type="text" name="attr_skillsknowledge_name"></input> | |
<select name="attr_skillsknowledge_attribut" class="buttoninput buttoninput-center w60px"> | |
<option value="@{log}" data-i18n="LOG">LOG</option> | |
<option value="@{int}" data-i18n="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" readonly></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" data-i18n="Notes">Notizen</div> | |
<textarea name="attr_skillsknowledge_note" class="w97 h100px clear"></textarea> | |
<div class="row labels color-darkblue"> | |
<div class="w100px" data-i18n="Limit">Limit</div> | |
<div class="" data-i18n="Mod">Mod</div> | |
<div class="" data-i18n="Total">Total</div> | |
<div class="" data-i18n="Incl. Note">Inkl. Notiz</div> | |
</div> | |
<div class="row"> | |
<select name="attr_skillsknowledge_limit" class="buttoninput buttoninput-left w85px"> | |
<option value="99" data-i18n="None">Keines</option> | |
<option value="@{glimit}" data-i18n="Mental">Geistig</option> | |
<option value="0" data-i18n="Other">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 class="float card"> | |
<!-- Skills Modifiers--> | |
<div class="row labels color-darkred"> | |
<div class="w110px" data-i18n="Skill">Fertigkeit</div> | |
<div class="w110px" data-i18n="Modifier">Modifikator</div> | |
<div class="w40px center">+</div> | |
<div class="w45px center" data-i18n="Active">Aktiv</div> | |
</div> | |
<fieldset class="repeating_skillsmodifierlistknowledge"> | |
<input class="hidden" type="text" name="attr_id" value=""></input> | |
<div class="row color-darkred"> | |
<input class="buttoninput buttoninput-left w120px left" type="text" name="attr_skill"></input> | |
<input class="buttoninput buttoninput-center w120px left" type="text" name="attr_mod"></input> | |
<input class="buttoninput buttoninput-right" type="text" name="attr_value" value="0"></input> | |
<input class="buttoninput buttoninput-both sheet-margin-0" type="checkbox" name="attr_active"></input> | |
</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> | |
</div> | |
<input class="toggle w90 center" type="checkbox" name="attr_attribute_toggle_zmp_settings"/> | |
<span class="labels color-darkred" title="Körperlich" data-i18n-title="Physical Monitor"></span> | |
<div class="toggle-area"> | |
<div class="sheet-row"> | |
<div class="color-darkred labels sheet-w100px" data-i18n="Injury Boxes">-1 pro</div> | |
<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> | |
</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> | |
</div> | |
<input class="toggle w90 center" type="checkbox" name="attr_attribute_toggle_zmg_settings"/> | |
<span class="labels color-darkblue" title="Geistig" data-i18n-title="Mental Monitor"></span> | |
<div class="toggle-area"> | |
<div class="sheet-row"> | |
<div class="color-darkred labels sheet-w100px" data-i18n="Injury Boxes">-1 pro</div> | |
<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> | |
</div><!--float--> | |
<div class="float card"> | |
<!-- Overflow Monitor --> | |
<div class="row sheet-w105px"> | |
<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> | |
</div> | |
<input class="toggle w90 center" type="checkbox" name="attr_attribute_toggle_overflow_settings"/> | |
<span class="labels color-darkred" title="Körperlich" data-i18n-title="Overflow Monitor"></span> | |
<div class="toggle-area"> | |
<div class="sheet-row"> | |
<div class="color-darkred labels sheet-w100px" data-i18n="Injury Boxes">-1 pro</div> | |
<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> | |
</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> | |
</div> | |
<input class="toggle w90 center" type="checkbox" name="attr_attribute_toggle_injury_mod_settings"/> | |
<span class="labels color-darkgreen" title="Verletzungsmodifikator" data-i18n-title="Injury Modificator"></span> | |
<div class="toggle-area"> | |
<div class="sheet-row"> | |
<div class="color-darkred labels sheet-w100px" data-i18n="Ignore Injury Modifier">Ignoriere erste</div> | |
<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> | |
</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" data-i18n="Recoil">Rückstoß</div> | |
</div><!--float--> | |
<div class="clear"></div> | |
<div class="float card wm810px"> | |
<div class="row labels color-darkred"> | |
<div class="w240px" data-i18n="Ranged Weapon">Fernkampfwaffe</div> | |
<div class="w60px center" data-i18n="Pool">Pool</div> | |
<div class="w35px center" data-i18n="Tarn">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" data-i18n="DV">DV</div> | |
<div class="w25px center" data-i18n="Precision">Präz</div> | |
<div class="w20px center" data-i18n="AP">DK</div> | |
<div class="w30px center" data-i18n="RC">RK</div> | |
<div class="w70px center" data-i18n="Mode">Modus</div> | |
<div class="w55px center" data-i18n="Ammunition">Munition</div> | |
<div class="w55px center" data-i18n="Clip">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" data-i18n="Notes, Equipment, etc.">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" data-i18n="Melee Weapon">Nahkampfwaffe</div> | |
<div class="w60px" data-i18n="Pool">Pool</div> | |
<div class="w35px" data-i18n="Tarn">Tarn</div> | |
<div class="w20px center" data-i18n="Range">R</div> | |
<div class="w35px center" data-i18n="DV">DV</div> | |
<div class="w35px center" data-i18n="Precision">Präz.</div> | |
<div class="w30px center" data-i18n="AP">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" data-i18n="Notes, Equipment, etc.">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" data-i18n="Pool">Pool</div> | |
<div class="w45px" data-i18n="Value">Wert</div> | |
<div class="w45px" data-i18n="Mod">Mod</div> | |
<div class="w45px" data-i18n="Total">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" data-i18n="Notes, Equipment, etc.">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" data-i18n="Armor">Panzerung</div> | |
<div class="w45px" data-i18n="Value">Wert</div> | |
<div class="w45px" data-i18n="Mod">Mod</div> | |
<div class="w45px" data-i18n="Total">Total</div> | |
<div class="w45px" data-i18n="Pool">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" data-i18n="Notes, Equipment, etc.">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" data-i18n="Cyberdeck">Cyberdeck</div> | |
<div class="w80px" data-i18n="Device rating">Gerätestufe</div> | |
<div class="w45px" data-i18n="Attack">A</div> | |
<div class="w45px" data-i18n="Sleaze">S</div> | |
<div class="w45px" data-i18n="Data Processing">D</div> | |
<div class="w45px" data-i18n="Firewall">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" data-i18n="Notes">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" data-i18n="Riggerconsole">Riggerkonsole</div> | |
<div class="w80px" data-i18n="Devicerating">Gerätestufe</div> | |
<div class="w45px" data-i18n="Dataprocessing">D</div> | |
<div class="w45px" data-i18n="Firewall">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" data-i18n="Notes">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" data-i18n="Program">Programm</div> | |
<div class="w45px" data-i18n="Note">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" data-i18n="Notes">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" data-i18n="Matrixcombat">Matrixkampf</div> | |
<div class="" data-i18n="Limit">Limit</div> | |
<div class="" data-i18n="Action">Handlung</div> | |
<div class="" data-i18n="Marks">Marken</div> | |
</div> | |
<div class="row"> | |
<div class="w165px" data-i18n="Dataspike">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" data-i18n="Crash Program">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" data-i18n="Full Matrix Defense">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" data-i18n="Damage Resistance">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" data-i18n="Resist Biofeedback">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" data-i18n="Manipulate Devices">Manipulation von Geräten</div> | |
<div class="" data-i18n="Limit">Limit</div> | |
<div class="" data-i18n="Action">Handlung</div> | |
<div class="" data-i18n="Marks">Marken</div> | |
</div> | |
<div class="row"> | |
<div class="w165px" data-i18n="Spoof Command">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" data-i18n="Format Device">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" data-i18n="Reboot Device">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" data-i18n="Control Device">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" data-i18n="Unexpected Error">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" data-i18n="Manipulate Files">Manipulation von Dateien</div> | |
<div class="" data-i18n="Limit">Limit</div> | |
<div class="" data-i18n="Action">Handlung</div> | |
<div class="" data-i18n="Marks">Marken</div> | |
</div> | |
<div class="row"> | |
<div class="w165px" data-i18n="Crack File">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" data-i18n="Edit File">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" data-i18n="Defuse Databomb">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" data-i18n="Place Databomb">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" data-i18n="Manipulate Marks">Manipulation von Marken</div> | |
<div class="" data-i18n="Limit">Limit</div> | |
<div class="" data-i18n="Action">Handlung</div> | |
<div class="" data-i18n="Marks">Marken</div> | |
</div> | |
<div class="row"> | |
<div class="w165px" data-i18n="Brute Force">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" data-i18n="Quick Hack">Eiliges Hacken</div> | |
<input class="buttoninput buttoninput-left w40px center" type="text" name="attr_matrixactions_hacgesthefly_limit" value="0"></input> | |
<input class="buttoninput buttoninput-center w40px" type="text" name="attr_matrixactions_hacgesthefly_action" value="0"></input> | |
<input class="buttoninput buttoninput-center w40px" type="text" name="attr_matrixactions_hacgesthefly_marks" value="0"></input> | |
<button class="buttoninput buttoninput-right" type='roll' name='roll_matrixactions_hacgesthefly' value='@{hide_rolls_cmd} Noch nicht implementiert'></button> | |
</div> | |
<div class="row"> | |
<div class="w165px" data-i18n="Invite Mark">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" data-i18n="Remove Mark">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" data-i18n="Gather Information">Information sammeln</div> | |
<div class="" data-i18n="Limit">Limit</div> | |
<div class="" data-i18n="Action">Handlung</div> | |
<div class="" data-i18n="Mark">Marken</div> | |
</div> | |
<div class="row"> | |
<div class="w165px" data-i18n="Trace Icon">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" data-i18n="Trace back">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" data-i18n="Matrix search">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" data-i18n="Matrix Perception">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" data-i18n="Determine Overwatch">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" data-i18n="Intercept Transmission">Ü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" data-i18n="Other">Sonstige</div> | |
<div class="" data-i18n="Limit">Limit</div> | |
<div class="" data-i18n="Action">Handlung</div> | |
<div class="" data-i18n="Mark">Marken</div> | |
</div> | |
<div class="row"> | |
<div class="w165px" data-i18n="Logout">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" data-i18n="Change Grid">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" data-i18n="Enter/Leave Host">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" data-i18n="Change Icon">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" data-i18n="Jump into Device">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" data-i18n="Change interface mode">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" data-i18n="Send message">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" data-i18n="Generate Noise">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" data-i18n="Hide">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" data-i18n="Basis/Mod/Total">Basis/Mod/Total</div> | |
</div> | |
<div class="row"> | |
<div class="w120px labels color-darkred" data-i18n="Devicerating">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" data-i18n="Attack">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" data-i18n="Sleaze">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" data-i18n="Dataprocessing">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" data-i18n="Firewall">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" data-i18n="Complex Form">Komplexe Form</div> | |
<div class="w45px" data-i18n="Value">Wert</div> | |
<div class="w45px" data-i18n="Mod">Mod</div> | |
<div class="w45px" data-i18n="Total">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" data-i18n="Notes">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" data-i18n="Sprite">Sprite</div> | |
<div class="w45px" data-i18n="Pool">Pool</div> | |
<div class="w45px" data-i18n="Mod">Mod</div> | |
<div class="w45px" data-i18n="Total">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" data-i18n="Notes">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" data-i18n="Active Sprites">Aktive Sprites</div> | |
<div class="w45px" data-i18n="Rating">Stufe</div> | |
<div class="w45px" data-i18n="Tasks">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='!shadowrun --character @{character_id} --action register-sprite --id @{activesprites_id} --pool ?{Pool|0}'></button> | |
<div class="details"> | |
<div class="row labels color-darkblue"> | |
<div class="w45px" data-i18n="Attack">A</div> | |
<div class="w45px" data-i18n="Sleaze">S</div> | |
<div class="w45px" data-i18n="Dataprocessing">D</div> | |
<div class="w45px" data-i18n="Firewall">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" data-i18n="RES">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" data-i18n="Skills">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" data-i18n="Sprite Powers">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" data-i18n="Notes">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" data-i18n="SIN">SIN</div> | |
<div class="w45px" data-i18n="Rating">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" data-i18n="Notes">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" data-i18n="SIN">SIN</div> | |
<div class="w240px" data-i18n="License">Lizenz</div> | |
<div class="w45px" data-i18n="Rating">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" data-i18n="Notes">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" data-i18n="SIN">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" data-i18n="Lifestyle">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" data-i18n="Rent>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" data-i18n="K and G">K&G</div> | |
<div class="w20px center" data-i18n="Security">S</div> | |
<div class="w20px center" data-i18n="Neighbourhood">W</div> | |
<div class="w20px center" data-i18n="Accomodities">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" data-i18n="Notes">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" data-i18n="Connection Name">Name</div> | |
<div class="w25px" data-i18n="Connection Rating">E</div> | |
<div class="" data-i18n="Connection Loyality">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" data-i18n="Notes">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" data-i18n="Item">Gegenstand</div> | |
<div class="w25px" data-i18n="Count">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" data-i18n="Notes">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" data-i18n="Augmentation">Augmentierung</div> | |
<div class="w35px" data-i18n="Rating">Stufe</div> | |
<div class="" data-i18n="Category">Kat.</div> | |
<div class="" data-i18n="Essence">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" data-i18n="Notes">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" data-i18n="Ammunition">Munition</div> | |
<div class="" data-i18n="Count">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" data-i18n="Notes">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" data-i18n="Vehicle">Fahrzeug</div> | |
<input class="buttoninput buttoninput-both w250px left" type="text" name="attr_vehicles_name" value="0"></input> | |
<div class="margin-right-10" data-i18n="Seats">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" data-i18n="Handling">Handling</div> | |
<input class="buttoninput buttoninput-both center" type="text" name="attr_vehicles_handling" value="0"></input> | |
<div class="margin-right-10" data-i18n="Acceleration">Beschleunigung</div> | |
<input class="buttoninput buttoninput-both center" type="text" name="attr_vehicles_acceleration" value="0"></input> | |
<div class="margin-right-10" data-i18n="Speed">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" data-i18n="Pilot">Pilot</div> | |
<input class="buttoninput buttoninput-both center" type="text" name="attr_vehicles_pilot" value="0"></input> | |
<div class="margin-right-10" data-i18n="Sensor">Sensor</div> | |
<input class="buttoninput buttoninput-both center" type="text" name="attr_vehicles_sensor" value="0"></input> | |
<div class="margin-right-10" data-i18n="Armor">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" data-i18n="Matrix Monitor">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" data-i18n="Physical Monitor">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" data-i18n="Notes">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" data-i18n="Drone">Drohne</div> | |
<input class="buttoninput buttoninput-both w250px left" type="text" name="attr_drones_name" value="0"></input> | |
<div class="margin-right-10" data-i18n="Seats">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" data-i18n="Handling">Handling</div> | |
<input class="buttoninput buttoninput-both center" type="text" name="attr_drones_handling" value="0"></input> | |
<div class="margin-right-10" data-i18n="Acceleration">Beschleunigung</div> | |
<input class="buttoninput buttoninput-both center" type="text" name="attr_drones_acceleration" value="0"></input> | |
<div class="margin-right-10" data-i18n="Speed">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" data-i18n="Pilot">Pilot</div> | |
<input class="buttoninput buttoninput-both center" type="text" name="attr_drones_pilot" value="0"></input> | |
<div class="margin-right-10" data-i18n="Sensor">Sensor</div> | |
<input class="buttoninput buttoninput-both center" type="text" name="attr_drones_sensor" value="0"></input> | |
<div class="margin-right-10" data-i18n="Armor">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" data-i18n="Matrix Monitor">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" data-i18n="Physical Monitor">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" data-i18n="Motes">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" data-i18n="Item">Gegenstand</div> | |
<div class="" data-i18n="Count">Anzahl</div> | |
<div class="w55px center" data-i18n="Currency">¥</div> | |
<div class="w40px" data-i18n="Availability">V</div> | |
<div class="" data-i18n="Shipping Date">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" data-i18n="Notes">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"> | |
{{#tooltip}}{{tooltip}}{{/tooltip}} | |
<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 | |
// 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","composure_mod"], function(v) { | |
cha = safe.I(v.cha); | |
wil = safe.I(v.wil); | |
mod = safe.I(v.composure_mod); | |
setAttrs({"composure_basis": cha+wil, | |
"composure": cha+wil+mod | |
}); | |
}); | |
}; | |
var update_judge = function(){ | |
getAttrs(["cha","int","judgeintentions_mod"], function(v) { | |
cha = safe.I(v.cha); | |
intuition = safe.I(v.int); | |
mod = safe.I(v.judgeintentions_mod); | |
setAttrs({"judgeintentions_basis": cha+intuition, | |
"judgeintentions": cha+intuition+mod | |
}); | |
}); | |
}; | |
var update_memory = function(){ | |
getAttrs(["log","int","memory_mod"], function(v) { | |
log = safe.I(v.log); | |
intuition = safe.I(v.int); | |
mod = safe.I(v.memory_mod); | |
setAttrs({"memory_basis": log+intuition, | |
"memory": 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);} | |
}; | |
var update_attribute = function(name){ | |
console.log("Update "+name); | |
getAttrs([name+"_basis",name+"_mod"],function(v){ | |
var attr = {}; | |
var sum = safe.I(v[name+"_basis"])+safe.I(v[name+"_mod"]); | |
attr[name] = sum; | |
console.log("Set "+name+" to "+sum); | |
setAttrs(attr); | |
}); | |
}; | |
on("change:kon_basis change:kon_mod",_.bind(update_attribute,{},"kon")); | |
on("change:ges_basis change:ges_mod",_.bind(update_attribute,{},"ges")); | |
on("change:rea_basis change:rea_mod",_.bind(update_attribute,{},"rea")); | |
on("change:str_basis change:str_mod",_.bind(update_attribute,{},"str")); | |
on("change:wil_basis change:wil_mod",_.bind(update_attribute,{},"wil")); | |
on("change:int_basis change:int_mod",_.bind(update_attribute,{},"int")); | |
on("change:log_basis change:log_mod",_.bind(update_attribute,{},"log")); | |
on("change:cha_basis change:cha_mod",_.bind(update_attribute,{},"cha")); | |
on("change:mag_basis change:mag_mod",_.bind(update_attribute,{},"mag")); | |
on("change:res_basis change:res_mod",_.bind(update_attribute,{},"res")); | |
on("change:edg_basis change:edg_mod",_.bind(update_attribute,{},"edg")); | |
on("change:ess_basis change:ess_mod",_.bind(update_attribute,{},"ess")); | |
on("change:memory_basis change:memory_mod", _.bind(update_attribute,{},"memory")); | |
on("change:judgeintentions_basis change:judgeintentions_mod",_.bind(update_attribute,{},"judgeintentions")); | |
on("change:composure_basis change:composure_mod", _.bind(update_attribute,{},"composure")); | |
// Initiative | |
on("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("change:rea change:int",update_initiative); | |
on("change:rea change:int",update_ar_initiative); | |
on("", function() { | |
update_vr_cold_initiative(); | |
update_vr_hot_initiative(); | |
}); | |
on("change:int",function(){update_astral_initiative();}); | |
// Limits | |
on("change:str change:kon change:rea change:klimit_mod",update_klimit); | |
on("change:log change:int change:wil change:glimit_mod",update_glimit); | |
on("change:cha change:wil change:ess change:slimit_mod",update_slimit); | |
on("change:glimit change:slimit",update_alimit); | |
// Bewegung / Tragen | |
on("change:ges change:bewegung_gehen_mult change:bewegung_laufen_mult",update_movement); | |
on("change:str change:tragkraft_heben_mult change:tragkraft_tragen_mult change:tragkraft_stemmen_mult",update_lifting); | |
// attribute tests | |
on("change:cha change:wil change:composure_mod",update_composure); | |
on("change:cha change:int change:judgeintentions_mod",update_judge); | |
on("change:log change:int change:memory_mod",update_memory); | |
// SUM | |
// Karma | |
on("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("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 += parseInt(r.F.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("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("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 | |
}); | |
//attribute modifiers | |
var update_attribute_modifier = function(name) { | |
TAS.repeating("attrmod"+name) | |
.attrs(name+"_mod") //< getting the attributes for the totals | |
.fields('name','value','active') //< specifying the fields we care about | |
.reduce(function(m,r){ | |
if(r.active === "on"){ | |
m.total += parseInt(r.I.value); //< Generate a running cost | |
m.tooltip.push("<tr><td>"+r.name+"</td><td>"+r.value+"</td></tr>"); | |
} | |
return m; | |
},{total:0,tooltip:[]},function(m,r,a){ | |
a[name+"_mod"] = m.total; //< take the final sum and set it on the total attribute | |
a[name+"_mod_tooltips"] = "<div class=\"sheet-chat-tooltip\"><table>"+m.tooltip.join('')+"</table></div>" | |
console.log("Set "+name+"_mod to "+a[name+"_mod"]); | |
console.log("Set "+name+"_mod_tooltips to "+a[name+"_mod_tooltips"]); | |
}) | |
.execute(); //< begin executing the above operations | |
}; | |
on("change:repeating_attrmodkon remove:repeating_attrmodkon",_.bind(update_attribute_modifier,{},"kon")); | |
on("change:repeating_attrmodges remove:repeating_attrmodges",_.bind(update_attribute_modifier,{},"ges")); | |
on("change:repeating_attrmodstr remove:repeating_attrmodstr",_.bind(update_attribute_modifier,{},"str")); | |
on("change:repeating_attrmodrea remove:repeating_attrmodrea",_.bind(update_attribute_modifier,{},"rea")); | |
on("change:repeating_attrmodlog remove:repeating_attrmodlog",_.bind(update_attribute_modifier,{},"log")); | |
on("change:repeating_attrmodint remove:repeating_attrmodint",_.bind(update_attribute_modifier,{},"int")); | |
on("change:repeating_attrmodwil remove:repeating_attrmodwil",_.bind(update_attribute_modifier,{},"wil")); | |
on("change:repeating_attrmodcha remove:repeating_attrmodcha",_.bind(update_attribute_modifier,{},"cha")); | |
on("change:repeating_attrmodedg remove:repeating_attrmodedg",_.bind(update_attribute_modifier,{},"edg")); | |
on("change:repeating_attrmodmag remove:repeating_attrmodmag",_.bind(update_attribute_modifier,{},"mag")); | |
on("change:repeating_attrmodres remove:repeating_attrmodres",_.bind(update_attribute_modifier,{},"res")); | |
on("change:repeating_attrmodcomposure remove:repeating_attrmodcomposure",_.bind(update_attribute_modifier,{},"composure")); | |
on("change:repeating_attrmodjudgeintentions remove:repeating_attrmodjudgeintentions",_.bind(update_attribute_modifier,{},"judgeintentions")); | |
on("change:repeating_attrmodmemory remove:repeating_attrmodmemory",_.bind(update_attribute_modifier,{},"memory")); | |
//limit modifiers | |
var update_limit_mod = function(limit){ | |
TAS.repeating("attrmod"+limit) | |
.attrs(limit+"_mod") //< getting the attributes for the totals | |
.fields('value','active') //< specifying the fields we care about | |
.reduce(function(m,r){ | |
var active = r.active; | |
if(active === "on"){ | |
m += parseInt(r.I.value); //< Generate a running cost | |
} | |
return m; | |
},0,function(m,r,a){ | |
a[limit+"_mod"] = m; //< take the final sum and set it on the total attribute | |
}) | |
.execute(); //< begin executing the above operations | |
} | |
on("change:repeating_attrmodklimit remove:repeating_attrmodklimit",_.bind(update_limit_mod,{},"klimit")); | |
on("change:repeating_attrmodglimit remove:repeating_attrmodglimit",_.bind(update_limit_mod,{},"glimit")); | |
on("change:repeating_attrmodslimit remove:repeating_attrmodslimit",_.bind(update_limit_mod,{},"slimit")); | |
on("change:repeating_attrmodalimit remove:repeating_attrmodalimit",_.bind(update_limit_mod,{},"alimit")); | |
// settings | |
on("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("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("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}}" | |
}); | |
} | |
});*/ | |
}); | |
//Skill Modifiers | |
var update_skillmod = function(name){ | |
var modifiers = {}; | |
TAS.repeating("skillsmodifierlist"+name) | |
.fields('skill','mod','value','active') //< specifying the fields we care about | |
.reduce(function(m,r){ | |
console.log("Handle "+r.skill+","+r.mod+","+r.value+","+r.active); | |
if(!(r.skillname in m.modifiers)){ | |
if(r.active === "on"){ | |
m.modifiers[r.skill] = r.value; | |
}else{ | |
m.modifiers[r.skill] = 0; | |
} | |
}else{ | |
if(r.active === "on"){ | |
m.modifiers[r.skill] += r.value; | |
} | |
} | |
return m; | |
},{modifiers: {}},function(m,r,a){ | |
TAS.repeating("skills"+name) | |
.fields('skills'+name+'_name','skills'+name+'_mod') //< specifying the fields we care about | |
.reduce(function(m,r){ | |
if(r["skills"+name+"_name"] in m.modifiers){ | |
console.log("Process Skill "+r['skills'+name+'_name']+","+r['skills'+name+'_mod']+"="+m.modifiers[r["skills"+name+"_name"]]); | |
r["skills"+name+"_mod"] = m.modifiers[r["skills"+name+"_name"]]; | |
} | |
return m; | |
},{modifiers: m.modifiers}) | |
.execute(); | |
}) | |
.execute(); | |
}; | |
on("change:repeating_skillsmodifierlistknowledge remove:repeating_modifierlistskillsk",_.bind(update_skillmod,{},"knowledge")); | |
on("change:repeating_skillsmodifierlistaction remove:repeating_skillsmodifierlistaction",_.bind(update_skillmod,{},"action")); | |
//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 | |
var update_id = function(name){ | |
TAS.repeating(name) | |
.fields(name+'_id',name+'_name') | |
.each(function(row,attrSet,id,rowSet){ | |
console.log(name+":"+row[name+'_name']+':Set ID:'+id); | |
row[name+'_id'] = id; | |
}) | |
.execute(); | |
}; | |
on("change:repeating_spellcasting", _.bind(update_id,{},"spellcasting")); | |
on("change:repeating_alchemyspells", _.bind(update_id,{},"alchemyspells")); | |
on("change:repeating_preparations:preparations_name", _.bind(update_id,{},"preparations")); | |
on("change:repeating_summonspirit", _.bind(update_id,{},"summonspirit")); | |
on("change:repeating_rituals", _.bind(update_id,{},"rituals")); | |
on("change:repeating_adeptpowers", _.bind(update_id,{},"adeptpowers")); | |
on("change:repeating_positivequalities", _.bind(update_id,{},"positivequalities")); | |
on("change:repeating_negativequalities", _.bind(update_id,{},"negativequalities")); | |
on("change:repeating_advancementkarma", _.bind(update_id,{},"advancementkarma")); | |
on("change:repeating_advancementnuyen", _.bind(update_id,{},"advancementnuyen")); | |
on("change:repeating_weaponsmelee", _.bind(update_id,{},"weaponsmelee")); | |
on("change:repeating_weaponsranged", _.bind(update_id,{},"weaponsranged")); | |
on("change:repeating_combatpools", _.bind(update_id,{},"combatpools")); | |
on("change:repeating_armor", _.bind(update_id,{},"armor")); | |
on("change:repeating_cyberdecks", _.bind(update_id,{},"cyberdecks")); | |
on("change:repeating_riggerconsoles", _.bind(update_id,{},"riggerconsoles")); | |
on("change:repeating_matrixprograms", _.bind(update_id,{},"matrixprograms")); | |
on("change:repeating_complexforms", _.bind(update_id,{},"complexforms")); | |
on("change:repeating_compilesprites", _.bind(update_id,{},"compilesprites")); | |
on("change:repeating_sins", _.bind(update_id,{},"sins")); | |
on("change:repeating_licenses", _.bind(update_id,{},"licenses")); | |
on("change:repeating_lifestyles", _.bind(update_id,{},"lifestyles")); | |
on("change:repeating_connections", _.bind(update_id,{},"connections")); | |
on("change:repeating_equipment", _.bind(update_id,{},"equipment")); | |
on("change:repeating_augmentations", _.bind(update_id,{},"augmentations")); | |
on("change:repeating_ammunition", _.bind(update_id,{},"ammunition")); | |
on("change:repeating_vehicles", _.bind(update_id,{},"vehicles")); | |
on("change:repeating_drones", _.bind(update_id,{},"drones")); | |
on("change:repeating_orders", _.bind(update_id,{},"orders")); | |
on("change:repeating_activespirits", _.bind(update_id,{},"activespirits")); | |
on("change:repeating_activesprites", _.bind(update_id,{},"activesprites")); | |
on("change:repeating_skillsaction:skillsaction_name", _.bind(update_id,{},"skillsaction")); | |
on("change:repeating_skillsknowledge:skillsknowledge_name", _.bind(update_id,{},"skillsknowledge")); | |
</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 == "bind-spirit"){ | |
var id = args[args.indexOf("--id") + 1]; | |
var pool = parseInt(args[args.indexOf("--pool") + 1]); | |
handleBindSpirit(msg,character,id,pool); | |
}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 == "register-sprite"){ | |
var id = args[args.indexOf("--id") + 1]; | |
var pool = parseInt(args[args.indexOf("--pool") + 1]); | |
handleRegisterSprite(msg,character,id,pool); | |
}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); | |
}else if(action == "cleanup"){ | |
cleanUp(); | |
}else if(action == "test-class"){ | |
var name = undefined; | |
if(args.indexOf("--name")){name = args[args.indexOf("--name") + 1];} | |
testClass(name); | |
}else if(action == "cleanup-duplicates"){ | |
var name = undefined; | |
if(args.indexOf("--name")){name = args[args.indexOf("--name") + 1];} | |
var chr = findObjs({type:'character',name:name})[0]; | |
cleanUpDuplicates(chr.id); | |
}else if(action == "repair"){ | |
repair(); | |
} | |
} | |
} | |
}; | |
var repair = function(name){ | |
var characters = findObjs({type:'character'}); | |
var attrs = findObjs({type:'attribute'}); | |
var bugged = _.filter(attrs,function(o){return o.get('name').match(/repeating_skillsknowledgemod_.+/g);}); | |
_.each(bugged,function(bug){ | |
log("Bugged:"); | |
log(bug); | |
//bug.remove() | |
log("Done"); | |
}); | |
}; | |
var testClass = function(name){ | |
log("Enter testClass"); | |
var character = findObjs({type:'character',name:name})[0]; | |
log(character); | |
character = new Shadowrun.Character(character.get('id')); | |
log(character); | |
log(character.attributes.get('settings_is_mook')); | |
log(character.attributes.getS('settings_is_mook')); | |
character = findObjs({type:'character',name:"Zauber-Feuerball"})[0]; | |
log(character); | |
character = new Shadowrun.Character(character.get('id')); | |
log(character); | |
log(character.abilities.get('entzug')); | |
}; | |
var cleanUpDuplicates = function(id){ | |
var characters = findObjs({type:'character'}); | |
for(var c in characters){ | |
var level = 15; | |
if(c<=level){continue;} | |
if(c>level+5){return;} | |
c = characters[c]; | |
var attributes = findObjs({type:'attribute',characterid:c.id}); | |
log("LIST Duplicates"); | |
var count = 0; | |
for(var i in attributes){ | |
var attr = attributes[i]; | |
var duplicates = _.filter(attributes,function(o){return o.get('name') === attr.get('name');}); | |
if(duplicates.length>1){ | |
log("DELETE"); | |
for(var del=1;del<duplicates.length;del++){ | |
log(duplicates[del]); | |
duplicates[del].remove(); | |
count++; | |
} | |
} | |
} | |
log("Deleted "+count+" duplicates for "+c.get('name')); | |
} | |
} | |
var cleanUp = function(){ | |
var attributes = findObjs({type:'attribute'}); | |
var abilities = findObjs({type:'ability'}); | |
var characters = findObjs({type:'character'}); | |
var character_array = []; | |
var countCharacters = 0; | |
for(var i in characters){ | |
countCharacters++; | |
character_array[characters[i].get('id')] = characters[i].get('id'); | |
} | |
var count = 0; | |
var countValid = 0; | |
log("LIST attributes without an character"); | |
for(var attr in attributes){ | |
var attr = attributes[attr]; | |
if(character_array[attr.get('characterid')]!==attr.get('characterid')){ | |
log(attr); | |
count++; | |
continue; | |
}else{ | |
countValid++; | |
continue; | |
} | |
} | |
log("LIST abilities without an character"); | |
for(var abil in abilities){ | |
abil = abilities[abil]; | |
if(character_array[abil.get('characterid')]!==abil.get('characterid')){ | |
log(abil); | |
count++; | |
continue; | |
}else{ | |
countValid++; | |
continue; | |
} | |
} | |
log("TOTAL:"+count+". Valid Attributes:"+countValid+". Characters:"+countCharacters); | |
} | |
var copyCharacter = function(id){ | |
var old = getObj('character',id); | |
//1. Find an unused name | |
var characters = findObjs({type:'character'}); | |
var character_array = []; | |
for(var i in characters){ | |
character_array[characters[i].get('name')] = characters[i].get('id'); | |
} | |
var nr = Math.floor((Math.random() * 10) + 1); | |
var c_name = old.get('name')+" "+nr; | |
while(character_array[c_name]){ | |
nr = nr + Math.floor((Math.random() * 10) + 1);//Increment counter until we found a unique character | |
c_name = old.get('name')+" "+nr; | |
} | |
//2. Copy the character itself (This does not copy attributes or abilities!) | |
var c_avatar = old.get('avatar') === undefined ? '':old.get('avatar'); | |
var c_archived = old.get('archived') === undefined ? false:old.get('archived'); | |
var c_inplayerjournals = old.get('inplayerjournals') === undefined ? '':old.get('inplayerjournals'); | |
var chr = createObj('character', { | |
name: c_name, | |
avatar: c_avatar, | |
archived: c_archived, | |
inplayerjournals: c_inplayerjournals | |
}); | |
return chr; | |
} | |
//If a semaphore is passed each asynchronous call will add +1 to it's lock before starting a new asynchronous call, pass the semaphore to the asynchronous call | |
//and the semaphore callback is called when the last asynchronous call is done. | |
var copyCharacterAttributesAndAbilities = function(old,copy,sem){ | |
log("Begin to copy character"); | |
log(sem); | |
var c_uuid = copy.get('id'); | |
//Determine the size of the semaphore | |
var old_attr = findObjs({type:'attribute',_characterid:old.get('id')}); | |
var old_abil = findObjs({type:'ability',_characterid:old.get('id')}); | |
if(sem !== undefined){sem.lock += old_attr.length + old_abil.length;}; | |
log("Lock Count:"+sem.lock); | |
log("Delay copy of attributes"); | |
//2.1 Copy Attributes | |
var id_swap = {}; | |
var delay=20; | |
for(var attr in old_attr){ | |
createAttributeDelayed(delay,id_swap,old_attr[attr],c_uuid,sem); | |
//delay += 20; | |
} | |
log("Delay Copy of abilities"); | |
//2.1 Copy Abilities | |
for(var abil in old_abil){ | |
createAbilityDelayed(delay,old_abil[abil],c_uuid,abil.get('name'),abil.get('description'),abil.get('action'),abil.get('istokenaction'),sem); | |
//delay += 20; | |
} | |
log("Copied character "+old.get('name')+" to "+copy.get('name')); | |
return copy; | |
}; | |
//If a Semaphore is passed then the asynchronous delay call will call sem.p to initiate the callback if the lock counter goes down to zero. | |
var createAttributeDelayed = function(delay,id_swap,attr,c_uuid,sem){ | |
_.delay(function(attr,c_uuid,sem){ | |
var attr_name = attr.get('name'); | |
var c_current = attr.get('current') === undefined ? '0': attr.get('current'); | |
var c_max = attr.get('max') === undefined ? '0': attr.get('max'); | |
if(attr_name.indexOf("_reporder")!=-1){ | |
if(sem !== undefined){sem.p();} | |
return; | |
}//Skip reporder | |
var matches = attr_name.match(/repeating_[^_]*_/g); | |
if(matches){ | |
var prefix = matches[0]; | |
//Remove prefix | |
var attr_id = attr_name.replace(/repeating_[^_]*_/g,"").replace(/_.*/g,""); | |
if(!(attr_id in id_swap)){ | |
var new_row_id = generateUUID().replace(/_/g,'Z'); | |
id_swap[attr_id] = new_row_id; | |
} | |
//Recall row_id conversion | |
var c_id = id_swap[attr_id]; | |
var c_attr_name = attr_name.replace(attr_id,c_id); | |
createObj('attribute', { | |
characterid: c_uuid, | |
name: c_attr_name, | |
current: c_current, | |
max: c_max | |
}); | |
}else{ | |
createObj('attribute', { | |
characterid: c_uuid, | |
name: attr_name, | |
current: c_current, | |
max: c_max | |
}); | |
} | |
if(sem !== undefined){sem.p();}; | |
},delay,attr,c_uuid,sem); | |
}; | |
//If a Semaphore is passed then the asynchronous delay call will call sem.p to initiate the callback if the lock counter goes down to zero. | |
var createAbilityDelayed = function(delay,abil,c_uuid,name,desc,action,istokenaction,sem){ | |
_.delay(function(abil,c_uuid,name,desc,action,istokenaction,sem){ | |
createObj('ability',{ | |
characterid: c_uuid, | |
name: name, | |
description: desc, | |
action: action, | |
istokenaction: istokenaction | |
}); | |
if(sem !== undefined){sem.p();}; | |
},delay,abil,c_uuid,name,desc,action,istokenaction,sem); | |
}; | |
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",true); | |
var p = attributes.I(zmp_aktuell); | |
var dmg = damage; | |
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,dmg-s); | |
var pnew = p + unresistedDamage; | |
log("Set physical from "+p+" to "+pnew); | |
attributes.set(zmp_aktuell,pnew); | |
updateConditionMonitorAndInjury(character); | |
messageConditionMonitor(msg,character,dmg+"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",true); | |
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",true); | |
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",true); | |
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",true); | |
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",true); | |
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",true); | |
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",true); | |
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",true); | |
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 handleBindSpirit = function(msg,character,id,pool){ | |
var name = attributes.S(attributes.get(character,"repeating_activespirits_"+id+"_activespirits_name")); | |
var stufe = attributes.I(attributes.get(character,"repeating_activespirits_"+id+"_activespirits_stufe")); | |
var spiritpool = stufe * 2; | |
var dienste = attributes.get(character,"repeating_activespirits_"+id+"_activespirits_dienste"); | |
var i_dienste = attributes.I(dienste); | |
var note = attributes.get(character,"repeating_activespirits_"+id+"_activespirits_note",true); | |
var s_note = attributes.S(note); | |
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; | |
sendChat(msg.who, "/roll [["+pool+"d6sacs5cs6>5]]", function(x) { | |
var RollValuePlayer = x[0].inlinerolls[0]; | |
var rollPlayer = buildInline(RollValuePlayer, undefined, undefined); | |
var sPlayer = parseInt(RollValuePlayer["results"]["total"]); | |
sendChat(msg.who, "/roll [["+spiritpool+"d6sacs5cs6>5]]", function(x) { | |
var RollValueSpirit = x[0].inlinerolls[0]; | |
var rollSpirit = buildInline(RollValueSpirit, undefined, undefined); | |
var sSpirit = parseInt(RollValueSpirit["results"]["total"]); | |
var draindamage = Math.max(2,sSpirit*2); | |
var netSuccesses = Math.max(0,sPlayer-sSpirit); | |
sendChat(msg.who, "/roll [["+drainpool+"d6sacs5cs6>5]]", function(x) { | |
var RollValueDrain = x[0].inlinerolls[0]; | |
var rollDrain = buildInline(RollValueDrain, undefined, undefined); | |
var sDrain = parseInt(RollValueDrain["results"]["total"]); | |
var netSuccesses = Math.max(0,sPlayer-sSpirit); | |
var unresistedDamage = Math.max(0,draindamage-sDrain); | |
var dram = stufe*25; | |
if(netSuccesses > 0){ | |
var additionalTasks = netSuccesses - 1; | |
attributes.set(dienste,i_dienste+additionalTasks); | |
attributes.set(note,s_note+" gebunden"); | |
var rt = '<div class="sheet-rolltemplate-bind">'+ | |
'<table class="sheet-box sheet-darkred">'+ | |
'<tr><td class="sheet-header" colspan="2">Binden von '+name+'</td></tr>'+ | |
'<tr class="sheet-even"><td class="sheet-col1 sheet-bold">Magier</td><td class="sheet-col2 sheet-right">'+pool+'W6=<span class="sheet-bold">'+rollPlayer+'</span></td></tr>'+ | |
'<tr class="sheet-odd"><td class="sheet-col1 sheet-bold">Geist</td><td class="sheet-col2 sheet-right">'+spiritpool+'W6=<span class="sheet-bold">'+rollSpirit+'</span></td></tr>'+ | |
'<tr class="sheet-even"><td class="sheet-col1 sheet-italic sheet-center" colspan="2">Du erleidest '+draindamage+'-<span class="sheet-bold">'+rollDrain+'</span>='+unresistedDamage+' Entzugsschaden</td></tr>'+ | |
'<tr class="sheet-odd"><td class="sheet-col1 sheet-italic sheet-center" colspan="2">Der Geist schuldet dir '+additionalTasks+' zusätzliche Dienste</td></tr>'+ | |
'<tr class="sheet-even"><td class="sheet-col1 sheet-italic sheet-center" colspan="2">Dies dauert '+stufe+'h und benötigt '+dram+' Reagenzien</td></tr>'+ | |
'</table>'+ | |
'</div>'; | |
whisperToGM(msg.who,msg.who,rt); | |
}else{ | |
var rt = '<div class="sheet-rolltemplate-bind">'+ | |
'<table class="sheet-box sheet-darkred">'+ | |
'<tr><td class="sheet-header" colspan="2">Binden von '+name+' fehlgeschlagen</td></tr>'+ | |
'<tr class="sheet-even"><td class="sheet-col1 sheet-bold">Magier</td><td class="sheet-col2 sheet-right">'+pool+'W6=<span class="sheet-bold">'+rollPlayer+'</span></td></tr>'+ | |
'<tr class="sheet-odd"><td class="sheet-col1 sheet-bold">Geist</td><td class="sheet-col2 sheet-right">'+spiritpool+'W6=<span class="sheet-bold">'+rollSpirit+'</span></td></tr>'+ | |
'<tr class="sheet-even"><td class="sheet-col1 sheet-italic sheet-center" colspan="2">Du erleidest '+draindamage+'-<span class="sheet-bold">'+rollDrain+'</span>='+unresistedDamage+' Entzugsschaden</td></tr>'+ | |
'<tr class="sheet-odd"><td class="sheet-col1 sheet-italic sheet-center" colspan="2">Dies dauert '+stufe+'h und benötigt '+dram+' Reagenzien</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_id"; | |
createObj("attribute", {name: name, current: newid, max:"", _characterid: character.id}); | |
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 handleRegisterSprite = function(msg,character,id,pool){ | |
var name = attributes.S(attributes.get(character,"repeating_activesprites_"+id+"_activesprites_name")); | |
var stufe = attributes.I(attributes.get(character,"repeating_activesprites_"+id+"_activesprites_stufe")); | |
var spritepool = stufe * 2; | |
var dienste = attributes.get(character,"repeating_activesprites_"+id+"_activesprites_dienste"); | |
var i_dienste = attributes.I(dienste); | |
var note = attributes.get(character,"repeating_activesprites_"+id+"_activesprites_note",true); | |
var s_note = attributes.S(note); | |
var res = attributes.I(attributes.get(character,"res")); | |
var wil = attributes.I(attributes.get(character,"res")); | |
var fadepool = res+wil; | |
sendChat(msg.who, "/roll [["+pool+"d6sacs5cs6>5]]", function(x) { | |
var RollValuePlayer = x[0].inlinerolls[0]; | |
var rollPlayer = buildInline(RollValuePlayer, undefined, undefined); | |
var sPlayer = parseInt(RollValuePlayer["results"]["total"]); | |
sendChat(msg.who, "/roll [["+spritepool+"d6sacs5cs6>5]]", function(x) { | |
var RollValuesprite = x[0].inlinerolls[0]; | |
var rollsprite = buildInline(RollValuesprite, undefined, undefined); | |
var ssprite = parseInt(RollValuesprite["results"]["total"]); | |
var fadedamage = Math.max(2,ssprite*2); | |
var netSuccesses = Math.max(0,sPlayer-ssprite); | |
sendChat(msg.who, "/roll [["+fadepool+"d6sacs5cs6>5]]", function(x) { | |
var RollValueFade = x[0].inlinerolls[0]; | |
var rollFade = buildInline(RollValueFade, undefined, undefined); | |
var sFade = parseInt(RollValueFade["results"]["total"]); | |
var netSuccesses = Math.max(0,sPlayer-ssprite); | |
var unresistedDamage = Math.max(0,fadedamage-sFade); | |
if(netSuccesses > 0){ | |
var additionalTasks = netSuccesses - 1; | |
attributes.set(dienste,i_dienste+additionalTasks); | |
attributes.set(note,s_note+" registriert"); | |
var rt = '<div class="sheet-rolltemplate-bind">'+ | |
'<table class="sheet-box sheet-darkred">'+ | |
'<tr><td class="sheet-header" colspan="2">Registrieren von '+name+'</td></tr>'+ | |
'<tr class="sheet-even"><td class="sheet-col1 sheet-bold">Technomancer</td><td class="sheet-col2 sheet-right">'+pool+'W6=<span class="sheet-bold">'+rollPlayer+'</span></td></tr>'+ | |
'<tr class="sheet-odd"><td class="sheet-col1 sheet-bold">Sprite</td><td class="sheet-col2 sheet-right">'+spritepool+'W6=<span class="sheet-bold">'+rollsprite+'</span></td></tr>'+ | |
'<tr class="sheet-even"><td class="sheet-col1 sheet-italic sheet-center" colspan="2">Du erleidest '+fadedamage+'-<span class="sheet-bold">'+rollFade+'</span>='+unresistedDamage+' Schwundschaden</td></tr>'+ | |
'<tr class="sheet-odd"><td class="sheet-col1 sheet-italic sheet-center" colspan="2">Das Sprite schuldet dir '+additionalTasks+' zusätzliche Dienste</td></tr>'+ | |
'</table>'+ | |
'</div>'; | |
whisperToGM(msg.who,msg.who,rt); | |
}else{ | |
var rt = '<div class="sheet-rolltemplate-bind">'+ | |
'<table class="sheet-box sheet-darkred">'+ | |
'<tr><td class="sheet-header" colspan="2">Registrieren von '+name+' fehlgeschlagen</td></tr>'+ | |
'<tr class="sheet-even"><td class="sheet-col1 sheet-bold">Technomancer</td><td class="sheet-col2 sheet-right">'+pool+'W6=<span class="sheet-bold">'+rollPlayer+'</span></td></tr>'+ | |
'<tr class="sheet-odd"><td class="sheet-col1 sheet-bold">Sprite</td><td class="sheet-col2 sheet-right">'+spritepool+'W6=<span class="sheet-bold">'+rollsprite+'</span></td></tr>'+ | |
'<tr class="sheet-even"><td class="sheet-col1 sheet-italic sheet-center" colspan="2">Du erleidest '+fadedamage+'-<span class="sheet-bold">'+rollFade+'</span>='+unresistedDamage+' Schwundschaden</td></tr>'+ | |
'</table>'+ | |
'</div>'; | |
whisperToGM(msg.who,msg.who,rt); | |
} | |
}); | |
}); | |
}); | |
} | |
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_id"; | |
createObj("attribute", {name: name, current: newid, max:"", _characterid: character.id}); | |
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'); | |
if(represents){ | |
var bar1_link = token.get('bar1_link'); | |
var bar2_link = token.get('bar2_link'); | |
var bar3_link = token.get('bar3_link'); | |
var character = getObj('character',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 handleTokenAdd = function(token){ | |
if(token.get("subtype") != "token"){return;} | |
var represents = token.get('represents'); | |
if(represents){ | |
var character = getObj('character',represents); | |
if(character === undefined){log("undefined character");return;} | |
var name = character.get('name'); | |
var attributes = findObjs({type:'attribute',characterid:character.get('id')}); | |
var is_mook = _.filter(attributes,function(o){return o.get('name') === 'settings_is_mook'})[0].get('current'); | |
if(is_mook == "on"){ | |
var copy = copyCharacter(represents); | |
var sem = new Semaphore(linkCopiedTokenDelayed,0,{},20,copy,token,character); | |
copyCharacterAttributesAndAbilities(character,copy,sem); | |
} | |
//linkCopiedTokenDelayed(20,chr,token,character); | |
} | |
}; | |
var linkCopiedTokenDelayed = function(delay,chr,token,character){ | |
log("Link Copied Token:"); | |
_.delay(function(chr,token,character){ | |
var attributes = findObjs({type:'attribute',characterid:chr.get('id')}); | |
var is_mook_master = _.filter(attributes,function(o){return o.get('name') === 'settings_is_mook_master'})[0]; | |
log(is_mook_master); | |
if(is_mook_master === undefined){ | |
createObj('attribute',{name:'settings_is_mook_master',current:'0',max:'0',characterid:chr.id}); | |
}else{ | |
is_mook_master.set('current','0'); | |
} | |
token.set("represents",chr.get('id')); | |
var injury_mod = _.filter(attributes,function(o){return o.get('name') === 'injury_mod'})[0]; | |
var zmg_aktuell = _.filter(attributes,function(o){return o.get('name') === 'zmg_aktuell'})[0]; | |
var zmp_aktuell = _.filter(attributes,function(o){return o.get('name') === 'zmp_aktuell'})[0]; | |
token.set("bar1_link",injury_mod.get('id')); | |
token.set("bar2_link",zmg_aktuell.get('id')); | |
token.set("bar3_link",zmp_aktuell.get('id')); | |
token.set("name",chr.get('name')); | |
//sendChat("Roll20",'/w gm Character copied '+character.get('name')+' to '+chr.get('name')+" and linked the token"); | |
},delay,chr,token,character); | |
}; | |
var handleTokenDelete = function(token){ | |
if(token === undefined || token.get("subtype") != "token"){return;} | |
var represents = token.get('represents'); | |
if(represents){ | |
var character = getObj('character',represents); | |
if(character === undefined){log("Token does not represent a character");log(token);return;}//Does not exist anymore | |
var name = character.get('name'); | |
var is_mook = attributes.get(character,"settings_is_mook"); | |
var is_mook_master = attributes.get(character,"settings_is_mook_master"); | |
log(is_mook); | |
log(is_mook_master); | |
if(is_mook !== undefined && is_mook.get('current') === "on" && | |
is_mook_master !== undefined && is_mook_master.get('current')!== "on"){ | |
var name = character.get("name"); | |
////Never delete a master NPC. It does spawn mooks but it should not be deleted. | |
var id = character.get('id'); | |
character.remove(); | |
var attributes_of_deleted = findObjs({type:'attribute',_characterid:id}); | |
var abilities_of_deleted = findObjs({type:'ability',_characterid:id}); | |
//log("#Attributes after delete: "+attributes_of_deleted.length); | |
var count=0; | |
var delay = 20; | |
for(var attr in attributes_of_deleted){ | |
_.delay(function(attr){attr.remove();},delay,attributes_of_deleted[attr]); | |
count++; | |
//delay+=20; | |
} | |
for(var abil in abilities_of_deleted){ | |
count++; | |
_.delay(function(abil){abil.remove();},delay,abilities_of_deleted[abil]); | |
//delay+=20; | |
} | |
//var attributes_of_deleted_2 = findObjs({type:'attribute',_characterid:id}); | |
//log("#Attributes after delete after rcleanup: "+attributes_of_deleted_2.length); | |
//sendChat("Roll20",'/w gm Deleted '+name+' because it\'s mook token was deleted and '+count+" additional attributes and abilities"); | |
} | |
} | |
}; | |
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); | |
on("add:graphic",handleTokenAdd); | |
on("destroy:graphic",handleTokenDelete); | |
}; | |
return { | |
CheckInstall: checkInstall, | |
RegisterEventHandlers: registerEventHandlers | |
}; | |
}()); | |
Shadowrun.Character = function(id){ | |
this.c = getObj('character',id); | |
this.id = id; | |
/* Attributes */ | |
var Attributes = function(character_id){ | |
this.data = undefined; | |
this.character_id = character_id; | |
}; | |
Attributes.prototype.constructor = Attributes; | |
Attributes.prototype.get = function(name){ | |
if(this.data === undefined){this.data=findObjs({type:'attribute',characterid:this.character_id},{caseInsensitive: true});} | |
var a = _.filter(this.data,function(o){return o.get('name').toLowerCase() === name.toLowerCase();}); | |
if(a.length === 0){a = this.create(name);}else{a=a[0];} | |
return a; | |
}; | |
Attributes.prototype.getI = function(name){return parseInt(this.get(name).get('current'));}; | |
Attributes.prototype.getS = function(name){return this.get(name).get('current');}; | |
Attributes.prototype.create = function(name,current,max){ | |
current = typeof current !== 'undefined' ? current : '0'; | |
max = typeof max !== 'undefined' ? max : '0'; | |
createObj("attribute", {name: name, current: current, characterid: this.character_id}); | |
}; | |
/* Abilities */ | |
var Abilities = function(character_id){ | |
this.data = undefined; | |
this.character_id = character_id; | |
}; | |
Abilities.prototype.constructor = Attributes; | |
Abilities.prototype.get = function(name){ | |
if(this.data === undefined){this.data=findObjs({type:'ability',characterid:this.character_id},{caseInsensitive: true});} | |
var a = _.filter(this.data,function(o){return o.get('name').toLowerCase() === name.toLowerCase();}); | |
if(a.length === 0){a = this.create(name);}else{a=a[0];} | |
return a; | |
}; | |
Abilities.prototype.getActionI = function(name){return this.get(name).get('action');}; | |
Abilities.prototype.getActionS = function(name){return parseInt(this.get(name).get('action'));}; | |
Abilities.prototype.create = function(name,description,action,istokenaction){ | |
description = typeof description !== 'undefined' ? description : ''; | |
action = typeof action !== 'undefined' ? action : ''; | |
istokenaction = typeof istokenaction !== 'undefined' ? istokenaction : false; | |
createObj("ability", {name: name, description: description,action:action,istokenaction:istokenaction,characterid: this.character_id}); | |
}; | |
this.attributes = new Attributes(id); | |
this.abilities = new Abilities(id); | |
}; | |
Shadowrun.Character.prototype.constructor = Shadowrun.Character; | |
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; | |
}, | |
filter:function(chr,attributes_of_a_character,name,create){ | |
create = (typeof create === 'undefined') ? false : create; | |
var a = _.filter(attributes_of_a_character,function(o){return o.get('name') === name;}); | |
if((a === undefined || a.length == 0) && create){a = attributes.create(chr,name,'0');}else{a=a[0];} | |
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];}, | |
filter:function(chr,abilities_of_a_character,name,create){ | |
create = (typeof create === 'undefined') ? false : create; | |
var a = _.filter(abilities_of_a_character,function(o){return o.get('name') === name;}); | |
if((a === undefined || a.length == 0) && create){a = attributes.create(chr,name,'0');}else{a=a[0];} | |
return a; | |
}, | |
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];}, | |
attributes:function(id){return findObjs({type: 'attribute', characterid: id},{caseInsensitive: true});}, | |
abilities:function(id){return findObjs({type: 'ability', characterid: id},{caseInsensitive: true});} | |
}; | |
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"; | |
//With uniqueness check | |
//var uuid = generateUUID().replace(/_/g, "Z"); | |
//while(findObjs({id: uuid},{caseInsensitive: true}).length!=0){ | |
// uuid = generateUUID().replace(/_/g, "Z"); | |
//} | |
//Without uniqueness check | |
var uuid = generateUUID().replace(/_/g, "Z"); | |
return uuid; | |
}; | |
//Asynchronous Semaphore https://wiki.roll20.net/API:Cookbook#Asynchronous_Semaphore | |
function Semaphore(callback, initial, context) { | |
var args = (arguments.length === 1 ? [arguments[0]] : Array.apply(null, arguments)); | |
this.lock = parseInt(initial, 10) || 0; | |
this.callback = callback; | |
this.context = context || callback; | |
this.args = args.slice(3); | |
} | |
Semaphore.prototype = { | |
v: function() { this.lock++; }, | |
p: function() { | |
var parameters; | |
this.lock--; | |
if (this.lock === 0 && this.callback) { | |
// allow sem.p(arg1, arg2, ...) to override args passed to Semaphore constructor | |
if (arguments.length > 0) { parameters = arguments; } | |
else { parameters = this.args; } | |
this.callback.apply(this.context, parameters); | |
} | |
} | |
}; | |
//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 | |
); | |
}; |
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
{ | |
"Character":"Charakter", | |
"Skills":"Fertigkeiten", | |
"Combat":"Kampf", | |
"Magic":"Magie", | |
"Matrix":"Matrix", | |
"Technomancer":"Technomancer", | |
"Social":"Sozial", | |
"Equipment":"Ausrüstung", | |
"PC":"SC", | |
"NPC":"NSC", | |
"OTHER":"OTHER", | |
"Injury":"Verletzung", | |
"Edge":"Edge", | |
"/w":"/w", | |
"Attributes":"Attribute", | |
"Qualities":"Vor/Nachteile", | |
"Description":"Beschreibung", | |
"Advancement":"Entwicklung", | |
"Settings":"Einstellungen", | |
"Action":"Handlung", | |
"Knowledge":"Wissen", | |
"Spellcasting":"Spruchzauberei", | |
"Alchemy":"Alchemie", | |
"Summoning":"Beschwören", | |
"Rituals":"Ritual", | |
"Adept Powers":"Adeptenkräfte", | |
"Tradition":"Tradition", | |
"Spells":"Zauber", | |
"Basis":"Basis", | |
"Mod":"Mod", | |
"Total":"Total", | |
"Notes":"Notizen", | |
"Pool":"Pool", | |
"Command":"Befehl", | |
"Contact":"Kontakt", | |
"Timer":"Zeitzünder", | |
"Improved Command":"Ver. Befehl", | |
"Improved Contact":"Ver. Kontakt", | |
"Improved Contact Sex Type":"Ver. Kontakt Geschlecht/Metatyp", | |
"Preparations":"Präparate", | |
"Potency":"Wirk.", | |
"Force":"Stufe", | |
"Created at":"Herstellungszeitpunkt", | |
"Spirit":"Geist", | |
"Active Spirits":"Aktive Geister", | |
"Tasks":"Dienste", | |
"BOD":"KON", | |
"STR":"STR", | |
"AGI":"GES", | |
"REA":"REA", | |
"INT":"INT", | |
"LOG":"LOG", | |
"WIL":"WIL", | |
"CHA":"CHA", | |
"EDG":"EDG", | |
"ESS":"ESS", | |
"MAG":"MAG", | |
"Powers":"Kräfte", | |
"Weaknesses":"Schwächen", | |
"Adept Power":"Adeptenkraft", | |
"Drain attribute":"Entzugsattribut", | |
"RES":"RES", | |
"Patron":"Schutzpatron", | |
"Advantage":"Vorteile", | |
"Disadvantage":"Nachteile", | |
"Programs":"Programme", | |
"Actions":"Aktionen", | |
"Persona":"Persona", | |
"CF":"KF", | |
"Sprites":"Sprites", | |
"SIN/Licenses":"SIN/Lizenzen", | |
"Lifestyles":"Lebensstile", | |
"Connections":"Connections", | |
"Augmentation":"Augmentierung", | |
"Ammunition":"Munition", | |
"Vehicles":"Fahrzeuge", | |
"Drones":"Drohnen", | |
"Orders":"Bestellungen", | |
"Name":"Name", | |
"Sex":"Geschlecht", | |
"Metatype":"Metatyp", | |
"Age":"Alter", | |
"Ethnicity":"Ethnie", | |
"Height":"Größe", | |
"Current Karma":"Aktuelles Karma", | |
"Total Karma":"Gesamtkarma", | |
"Weight":"Gewicht", | |
"Reputation":"Straßenruf", | |
"Bad Reputation":"Schlechter Ruf", | |
"Prominence":"Prominenz", | |
"Account":"Konto", | |
"Basis/Mod/Total":"Basis/Mod/Total", | |
"Modifiers":"Modifikatoren", | |
"Active":"Aktiv", | |
"Limits":"Limits", | |
"Phys.":"Körp.", | |
"Ment.":"Geist.", | |
"Soc.":"Soz.", | |
"Astr.":"Astr.", | |
"Basis/Mod/+W6":"Basis/Mod/+W6", | |
"INI":"INI", | |
"AR":"AR", | |
"VR cold":"VRk", | |
"VR hot":"VRh", | |
"Walk/Run/Sprint":"Gehen/Laufen/Sprinten", | |
"Movement":"Bewegung", | |
"Mult/Mod":"Mult/Mod", | |
"Lift":"Heben/Tragen/Stemmen", | |
"Lifting Capacity":"Tragkraft", | |
"Mult":"Mult", | |
"Self Control":"Selbstb.", | |
"Memory":"Erinnerung", | |
"Judge Intentions":"Menschenk.", | |
"Final":"Rest", | |
"Essemce":"Essenz", | |
"Current/Total":"Aktuell/Total", | |
"Edge points":"Edgepunkte", | |
"Positive Qualities":"Vorteile", | |
"Negative Qualities":"Nachteile", | |
"Date":"Datum", | |
"Karma":"Karma", | |
"Run":"Run", | |
"Nuyen":"Nuyen", | |
"Is Awaken?":"Ist Magier?", | |
"Has Spellcasting?":"Besitzt Spruchzauberei?", | |
"Has Alchemy?":"Besitzt Alchemie?", | |
"Has Summoning?":"Besitzt Beschwörung?", | |
"Has Ritualmagic?":"Besitzt Ritualmagie?", | |
"Has Adept Powers?":"Besitzt Adeptenkräfte?", | |
"Show Tab":"Zeige Matrixtab", | |
"Is Technomancer?":"Ist Technomancer?", | |
"NSC":"NSC", | |
"Spawn Mooks?":"Spawne Mooks?", | |
"Is Mook Master?":"Ist Mook Master?", | |
"Actionskills":"Aktionsfertigkeiten", | |
"Attribute":"Attribut", | |
"Rating":"Stufe", | |
"Limit":"Limit", | |
"Incl. Note":"Inkl. Notiz", | |
"None":"Keines", | |
"Physical":"Körperlich", | |
"Mental":"Geistig", | |
"Astral":"Astral", | |
"Other":"Sonstige", | |
"Skill":"Fertigkeit", | |
"Modifier":"Modifikator", | |
"Knowledgeskills":"Wissensfertigkeiten", | |
"Overflow":"Überzählig", | |
"Mod/Ign.":"Mod/Ign.", | |
"Recoil":"Rückstoß", | |
"Ranged Weapon":"Fernkampfwaffe", | |
"Tarn":"Tarn", | |
"DV":"DV", | |
"Precision":"Präz.", | |
"AP":"DK", | |
"RC":"RK", | |
"Mode":"Modus", | |
"Clip":"Magazin", | |
"Notes, Equipment, etc.":"Notizen, Ausrüstung, etc", | |
"Melee Weapon":"Nahkampfwaffe", | |
"Range":"R", | |
"Value":"Wert", | |
"Armor":"Panzerung", | |
"Cyberdeck":"Cyberdeck", | |
"Device rating":"Gerätestufe", | |
"Attack":"A", | |
"Sleaze":"S", | |
"Data Processing":"D", | |
"Firewall":"F", | |
"Riggerconsole":"Riggerkonsole", | |
"Devicerating":"Gerätestufe", | |
"Dataprocessing":"D", | |
"Program":"Programm", | |
"Note":"Notiz", | |
"Matrixcombat":"Matrixkampf", | |
"Marks":"Marken", | |
"Dataspike":"Datenspike", | |
"Crash Program":"Programm abstürzen lassen", | |
"Full Matrix Defense":"Volle Matrixabwehr", | |
"Damage Resistance":"Schadenswiderstand", | |
"Resist Biofeedback":"Biofeedback widerstehen", | |
"Manipulate Devices":"Manipulation von Geräten", | |
"Spoof Command":"Befehl vortäuschen", | |
"Format Device":"Gerät formatieren", | |
"Reboot Device":"Gerät neustarten", | |
"Control Device":"Gerät steuern", | |
"Unexpected Error":"Unerwarteter Fehler", | |
"Manipulate Files":"Manipulation von Dateien", | |
"Crack File":"Datei cracken", | |
"Edit File":"Datei editieren", | |
"Defuse Databomb":"Datenbombe entschärfen", | |
"Place Databomb":"Datenbombe legen", | |
"Manipulate Marks":"Manipulation von Marken", | |
"Brute Force":"Brute Force", | |
"Quick Hack":"Eiliges Hacken", | |
"Invite Mark":"Marke einladen", | |
"Remove Mark":"Marke löschen", | |
"Gather Information":"Information sammeln", | |
"Mark":"Marken", | |
"Trace Icon":"Icon aufspüren", | |
"Trace back":"Rückverfolgung", | |
"Matrix search":"Matrixsuche", | |
"Matrix Perception":"Matrixwahrnehmung", | |
"Determine Overwatch":"OW bestimmen", | |
"Intercept Transmission":"Übertragung abfangen", | |
"Logout":"Ausstöpseln", | |
"Change Grid":"Gitterwechsel", | |
"Enter/Leave Host":"Host betreten/verlassen", | |
"Change Icon":"Icon verändern", | |
"Jump into Device":"In Gerät springen", | |
"Change interface mode":"Interfacemodus ändern", | |
"Send message":"Nachricht senden", | |
"Generate Noise":"Signal stören", | |
"Hide":"Verstecken", | |
"Complex Form":"Komplexe Form", | |
"Sprite":"Sprite", | |
"Active Sprites":"Aktive Sprites", | |
"Sprite Powers":"Spritekräfte", | |
"SIN":"SIN", | |
"License":"Lizenz", | |
"Lifestyle":"Lebensstil", | |
"Rent>Miete</div>\n\t\t\t\t\t\t<input class=":"\n\t\t\t\t\t", | |
"K and G":"K&G", | |
"Security":"S", | |
"Neighbourhood":"W", | |
"Accomodities":"A", | |
"Connection Name":"Name", | |
"Connection Rating":"E", | |
"Connection Loyality":"L", | |
"Item":"Gegenstand", | |
"Count":"Anzahl", | |
"Category":"Kat.", | |
"Essence":"Essenz", | |
"Vehicle":"Fahrzeug", | |
"Seats":"Sitze", | |
"Handling":"Handling", | |
"Acceleration":"Beschleunigung", | |
"Speed":"Geschwindigkeit", | |
"Pilot":"Pilot", | |
"Sensor":"Sensor", | |
"Matrix Monitor":"Matrixzustandsmonitor", | |
"Physical Monitor":"Zustandmonitor", | |
"Drone":"Drohne", | |
"Motes":"Notizen", | |
"Currency":"¥", | |
"Availability":"V", | |
"Shipping Date":"Lieferdatum" | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment