* Update Krystal character sheet v1.html Fix incorrect refresh trigger for (INT, SAG) comp * Update Krystal character sheet v1.html
1591 lines
77 KiB
HTML
1591 lines
77 KiB
HTML
<!-- Character sheet for Krystal RPG (FR)
|
|
RPG Publisher: Les 12 Singes
|
|
Sheet Author: Tomaxx
|
|
Sheet version: 1.01
|
|
-->
|
|
|
|
<div class="outline">
|
|
<!-- Call 800px image -->
|
|
<img src="http://i.imgur.com/ycM7ctq.png">
|
|
|
|
|
|
|
|
<div class="sheet-2colrow section1"> <!-- Section 1 -->
|
|
<div class="sheet-col"> <!-- Column 1 -->
|
|
|
|
|
|
|
|
<table class="table2">
|
|
<tr>
|
|
<td>
|
|
<h1>Héraut</h1>
|
|
</td>
|
|
<td> </td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
Nom
|
|
</td>
|
|
<td>
|
|
<INPUT type="text" name="attr_character_name" class="input1"></INPUT>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>
|
|
Profil
|
|
</td>
|
|
<td>
|
|
<INPUT type="text" name="attr_profil" class="input1"></INPUT>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>
|
|
Saison
|
|
</td>
|
|
<td>
|
|
<INPUT type="text" name="attr_saison" class="input1"></INPUT>
|
|
</td>
|
|
</tr>
|
|
|
|
</table>
|
|
<table class="table2">
|
|
|
|
<tr>
|
|
<td>
|
|
Points de vie
|
|
</td>
|
|
<td>
|
|
<INPUT type="number" min="0" value="0" name="attr_pdv" style="width: 100px;" class="input2" ></INPUT>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>
|
|
Points d’énergie
|
|
</td>
|
|
<td>
|
|
<INPUT type="number" min="0" value="0" name="attr_energie" style="width: 100px;" class="input2" ></INPUT>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>
|
|
Actions
|
|
</td>
|
|
<td>
|
|
<INPUT type="number" min="0" value="0" name="attr_actions" style="width: 100px;" class="input2" ></INPUT>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>
|
|
Déplacement
|
|
</td>
|
|
<td>
|
|
<INPUT type="number" min="0" value="0" name="attr_deplacement"style="width: 100px;" class="input2" ></INPUT>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>
|
|
Bonus aux dégâts (mêlée)
|
|
</td>
|
|
<td>
|
|
<INPUT type="number" min="0" value="0" name="attr_degmelee" style="width: 100px;" class="input2" ></INPUT>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>
|
|
Bonus aux dégâts (tir)
|
|
</td>
|
|
<td>
|
|
<INPUT type="number" min="0" value="0" name="attr_degtir" style="width: 100px;" class="input2" ></INPUT>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<br>
|
|
|
|
</div> <!-- END Column 1 -->
|
|
<div class="sheet-col" > <!-- Column 2 -->
|
|
|
|
<table class="table2">
|
|
<tr>
|
|
<td>
|
|
<h1>Caractéristiques</h1>
|
|
</td>
|
|
<td>
|
|
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>
|
|
FOR - Force
|
|
</td>
|
|
<td>
|
|
<INPUT type="number" name="attr_force" value="0" min="0" style="width: 100px;" class="input2" ></INPUT>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>
|
|
CON - Constitution
|
|
</td>
|
|
<td>
|
|
<INPUT type="number" name="attr_cons" value="0" min="0" style="width: 100px;" class="input2" ></INPUT>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>
|
|
DEX - Dextérité
|
|
</td>
|
|
<td>
|
|
<INPUT type="number" name="attr_dext" value="0" min="0" style="width: 100px;" class="input2" ></INPUT>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>
|
|
INT - Intelligence
|
|
</td>
|
|
<td>
|
|
<INPUT type="number" name="attr_intel" value="0" min="0" style="width: 100px;" class="input2" ></INPUT>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>
|
|
SAG - Sagesse
|
|
</td>
|
|
<td>
|
|
<INPUT type="number" name="attr_sage" value="0" min="0" style="width: 100px;" class="input2" ></INPUT>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>
|
|
CHA - Charisme
|
|
</td>
|
|
<td>
|
|
<INPUT type="number" name="attr_chari" value="0" min="0" style="width: 100px;" class="input2" ></INPUT>
|
|
</td>
|
|
</tr>
|
|
|
|
</table>
|
|
|
|
<br>
|
|
|
|
<img src="http://i.imgur.com/u2lZtKL.png" class="image2">
|
|
|
|
|
|
|
|
</div> <!-- END Column 1 -->
|
|
</div> <!-- END Section 1 -->
|
|
|
|
<div class="sheet-2colrow section1"> <!-- Section 2 -->
|
|
<div class="sheet-col"> <!-- Column 1 -->
|
|
|
|
|
|
<table class="table2">
|
|
<tr>
|
|
<td>
|
|
<h1>Atouts</h1>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
<fieldset class="repeating_atouts">
|
|
<input type="text" name="attr_atout" class="input4" />
|
|
</fieldset>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
|
|
|
|
|
|
</div> <!-- END Column 1 -->
|
|
<div class="sheet-col" > <!-- Column 2 -->
|
|
|
|
<table class="table2">
|
|
<tr>
|
|
<td>
|
|
<h1>Equipement</h1>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
<fieldset class="repeating_equipement">
|
|
<input type="text" name="attr_equipement" class="input4" />
|
|
</fieldset>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
|
|
|
|
|
|
|
|
</div> <!-- END Column 2 -->
|
|
</div> <!-- END Section 2 -->
|
|
|
|
<div class="section2"> <!-- Section 3 Competences-->
|
|
|
|
|
|
|
|
<table class="table1">
|
|
<tr>
|
|
<td><h1>Compétences</h1></td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> </td>
|
|
<td> Caracs Rang Total </td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
Acrobatie (FOR, DEX)
|
|
</td>
|
|
<td>
|
|
<input type="number" name="attr_acrocarac" readonly >
|
|
<script type="text/worker">
|
|
on('ready change:force change:dext', function() {
|
|
getAttrs(['force', 'dext'], function(values) {
|
|
var force = parseInt(values.force) || 0,
|
|
dext = parseInt(values.dext) || 0;
|
|
setAttrs({ acrocarac: force + dext });
|
|
});
|
|
});
|
|
</script>
|
|
|
|
<input type="number" name="attr_acrorang" min="0" value="0" />
|
|
|
|
<input type="number" name="attr_acrototal" readonly >
|
|
<script type="text/worker">
|
|
on('ready change:acrocarac change:acrorang', function() {
|
|
getAttrs(['acrocarac', 'acrorang'], function(values) {
|
|
var acrocarac = parseInt(values.acrocarac) || 0,
|
|
acrorang = parseInt(values.acrorang) || 0;
|
|
setAttrs({ acrototal: acrorang === 0 ? 0 : acrocarac + acrorang });
|
|
});
|
|
});
|
|
</script>
|
|
<button type="roll" value="/roll 1d20 + @{acrototal} Acrobatie" name="acrotest"></button>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>
|
|
<!-- Art 1 -->
|
|
Art: <input type="text" name="attr_art1nom" class="sheet-input3"> (DEX, SAG)
|
|
</td>
|
|
<td>
|
|
<input type="number" name="attr_art1carac" readonly >
|
|
<script type="text/worker">
|
|
on('ready change:dext change:sage', function() {
|
|
getAttrs(['dext', 'sage'], function(values) {
|
|
var dext = parseInt(values.dext) || 0,
|
|
sage = parseInt(values.sage) || 0;
|
|
setAttrs({ art1carac: dext + sage });
|
|
});
|
|
});
|
|
</script>
|
|
|
|
<input type="number" name="attr_art1rang" min="0" value="0" />
|
|
|
|
<input type="number" name="attr_art1total" readonly >
|
|
<script type="text/worker">
|
|
on('ready change:art1carac change:art1rang', function() {
|
|
getAttrs(['art1carac', 'art1rang'], function(values) {
|
|
var art1carac = parseInt(values.art1carac) || 0,
|
|
art1rang = parseInt(values.art1rang) || 0;
|
|
setAttrs({ art1total: art1rang === 0 ? 0 : art1carac + art1rang });
|
|
});
|
|
});
|
|
</script>
|
|
<button type="roll" value="/roll 1d20 + @{art1total} Art: @{art1nom}" name="art1test" ></button>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>
|
|
<!-- ART 2 -->
|
|
Art: <input type="text" name="attr_art2nom" class="input3"> (DEX, SAG)
|
|
</td>
|
|
<td>
|
|
<input type="number" name="attr_art2carac" readonly >
|
|
<script type="text/worker">
|
|
on('ready change:dext change:sage', function() {
|
|
getAttrs(['dext', 'sage'], function(values) {
|
|
var dext = parseInt(values.dext) || 0,
|
|
sage = parseInt(values.sage) || 0;
|
|
setAttrs({ art2carac: dext + sage });
|
|
});
|
|
});
|
|
</script>
|
|
|
|
<input type="number" name="attr_art2rang" min="0" value="0" />
|
|
|
|
<input type="number" name="attr_art2total" readonly >
|
|
<script type="text/worker">
|
|
on('ready change:art2carac change:art2rang', function() {
|
|
getAttrs(['art2carac', 'art2rang'], function(values) {
|
|
var art2carac = parseInt(values.art2carac) || 0,
|
|
art2rang = parseInt(values.art2rang) || 0;
|
|
setAttrs({ art2total: art2rang === 0 ? 0 : art2carac + art2rang });
|
|
});
|
|
});
|
|
</script>
|
|
<button type="roll" value="/roll 1d20 + @{art2total} Art: @{art2nom}" name="art2test" ></button>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>
|
|
<!-- ART 3 -->
|
|
Art: <input type="text" name="attr_art3nom" class="input3"> (DEX, SAG)
|
|
</td>
|
|
<td>
|
|
<input type="number" name="attr_art3carac" readonly >
|
|
<script type="text/worker">
|
|
on('ready change:dext change:sage', function() {
|
|
getAttrs(['dext', 'sage'], function(values) {
|
|
var dext = parseInt(values.dext) || 0,
|
|
sage = parseInt(values.sage) || 0;
|
|
setAttrs({ art3carac: dext + sage });
|
|
});
|
|
});
|
|
</script>
|
|
|
|
<input type="number" name="attr_art3rang" min="0" value="0" />
|
|
|
|
<input type="number" name="attr_art3total" readonly >
|
|
<script type="text/worker">
|
|
on('ready change:art3carac change:art3rang', function() {
|
|
getAttrs(['art3carac', 'art3rang'], function(values) {
|
|
var art3carac = parseInt(values.art3carac) || 0,
|
|
art3rang = parseInt(values.art3rang) || 0;
|
|
setAttrs({ art3total: art3rang === 0 ? 0 : art3carac + art3rang });
|
|
});
|
|
});
|
|
</script>
|
|
<button type="roll" value="/roll 1d20 + @{art3total} Art: @{art3nom}" name="art3test" ></button>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>
|
|
Athlétisme (FOR, CON)
|
|
</td>
|
|
<td>
|
|
<input type="number" name="attr_athlcarac" readonly >
|
|
<script type="text/worker">
|
|
on('ready change:force change:cons', function() {
|
|
getAttrs(['force', 'cons'], function(values) {
|
|
var force = parseInt(values.force) || 0,
|
|
cons = parseInt(values.cons) || 0;
|
|
setAttrs({ athlcarac: force + cons });
|
|
});
|
|
});
|
|
</script>
|
|
|
|
<input type="number" name="attr_athlrang" min="0" value="0" />
|
|
|
|
<input type="number" name="attr_athltotal" readonly >
|
|
<script type="text/worker">
|
|
on('ready change:athlcarac change:athlrang', function() {
|
|
getAttrs(['athlcarac', 'athlrang'], function(values) {
|
|
var athlcarac = parseInt(values.athlcarac) || 0,
|
|
athlrang = parseInt(values.athlrang) || 0;
|
|
setAttrs({ athltotal: athlrang === 0 ? 0 : athlcarac + athlrang });
|
|
});
|
|
});
|
|
</script>
|
|
<button type="roll" value="/roll 1d20 + @{athltotal} Athlétisme" name="athltest"></button>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>
|
|
Bluff (INT, CHA)
|
|
</td>
|
|
<td>
|
|
<input type="number" name="attr_bluffcarac" readonly >
|
|
<script type="text/worker">
|
|
on('ready change:intel change:chari', function() {
|
|
getAttrs(['intel', 'chari'], function(values) {
|
|
var intel = parseInt(values.intel) || 0,
|
|
chari = parseInt(values.chari) || 0;
|
|
setAttrs({ bluffcarac: intel + chari });
|
|
});
|
|
});
|
|
</script>
|
|
|
|
<input type="number" name="attr_bluffrang" min="0" value="0" />
|
|
|
|
<input type="number" name="attr_blufftotal" readonly >
|
|
<script type="text/worker">
|
|
on('ready change:bluffcarac change:bluffrang', function() {
|
|
getAttrs(['bluffcarac', 'bluffrang'], function(values) {
|
|
var bluffcarac = parseInt(values.bluffcarac) || 0,
|
|
bluffrang = parseInt(values.bluffrang) || 0;
|
|
setAttrs({ blufftotal: bluffrang === 0 ? 0 : bluffcarac + bluffrang });
|
|
});
|
|
});
|
|
</script>
|
|
<button type="roll" value="/roll 1d20 + @{blufftotal} Bluff" name="blufftest"></button>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>
|
|
<!-- Connaissance 1 -->
|
|
Connaissance: <input type="text" name="attr_conn1nom" class="input3"> (INT, SAG)
|
|
</td>
|
|
<td>
|
|
<input type="number" name="attr_conn1carac" readonly >
|
|
<script type="text/worker">
|
|
on('ready change:intel change:sage', function() {
|
|
getAttrs(['intel', 'sage'], function(values) {
|
|
var intel = parseInt(values.intel) || 0,
|
|
sage = parseInt(values.sage) || 0;
|
|
setAttrs({ conn1carac: intel + sage });
|
|
});
|
|
});
|
|
</script>
|
|
|
|
<input type="number" name="attr_conn1rang" min="0" value="0" />
|
|
|
|
<input type="number" name="attr_conn1total" readonly >
|
|
<script type="text/worker">
|
|
on('ready change:conn1carac change:conn1rang', function() {
|
|
getAttrs(['conn1carac', 'conn1rang'], function(values) {
|
|
var conn1carac = parseInt(values.conn1carac) || 0,
|
|
conn1rang = parseInt(values.conn1rang) || 0;
|
|
setAttrs({ conn1total: conn1rang === 0 ? 0 : conn1carac + conn1rang });
|
|
});
|
|
});
|
|
</script>
|
|
<button type="roll" value="/roll 1d20 + @{conn1total} Connaissance: @{conn1nom}" name="conn1test" ></button>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>
|
|
<!-- Connaissance 2 -->
|
|
Connaissance: <input type="text" name="attr_conn2nom" class="input3"> (INT, SAG)
|
|
</td>
|
|
<td>
|
|
<input type="number" name="attr_conn2carac" readonly >
|
|
<script type="text/worker">
|
|
on('ready change:intel change:sage', function() {
|
|
getAttrs(['intel', 'sage'], function(values) {
|
|
var intel = parseInt(values.intel) || 0,
|
|
sage = parseInt(values.sage) || 0;
|
|
setAttrs({ conn2carac: intel + sage });
|
|
});
|
|
});
|
|
</script>
|
|
|
|
<input type="number" name="attr_conn2rang" min="0" value="0" />
|
|
|
|
<input type="number" name="attr_conn2total" readonly >
|
|
<script type="text/worker">
|
|
on('ready change:conn2carac change:conn2rang', function() {
|
|
getAttrs(['conn2carac', 'conn2rang'], function(values) {
|
|
var conn2carac = parseInt(values.conn2carac) || 0,
|
|
conn2rang = parseInt(values.conn2rang) || 0;
|
|
setAttrs({ conn2total: conn2rang === 0 ? 0 : conn2carac + conn2rang });
|
|
});
|
|
});
|
|
</script>
|
|
<button type="roll" value="/roll 1d20 + @{conn2total} Connaissance: @{conn2nom}" name="conn2test" ></button>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>
|
|
<!-- Connaissance 3 -->
|
|
Connaissance: <input type="text" name="attr_conn3nom" class="input3"> (INT, SAG)
|
|
</td>
|
|
<td>
|
|
<input type="number" name="attr_conn3carac" readonly >
|
|
<script type="text/worker">
|
|
on('ready change:intel change:sage', function() {
|
|
getAttrs(['intel', 'sage'], function(values) {
|
|
var intel = parseInt(values.intel) || 0,
|
|
sage = parseInt(values.sage) || 0;
|
|
setAttrs({ conn3carac: intel + sage });
|
|
});
|
|
});
|
|
</script>
|
|
|
|
<input type="number" name="attr_conn3rang" min="0" value="0" />
|
|
|
|
<input type="number" name="attr_conn3total" readonly >
|
|
<script type="text/worker">
|
|
on('ready change:conn3carac change:conn3rang', function() {
|
|
getAttrs(['conn3carac', 'conn3rang'], function(values) {
|
|
var conn3carac = parseInt(values.conn3carac) || 0,
|
|
conn3rang = parseInt(values.conn3rang) || 0;
|
|
setAttrs({ conn3total: conn3rang === 0 ? 0 : conn3carac + conn3rang });
|
|
});
|
|
});
|
|
</script>
|
|
<button type="roll" value="/roll 1d20 + @{conn3total} Connaissance: @{conn3nom}" name="conn3test" ></button>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>
|
|
Déguisement (DEX, CHA)
|
|
</td>
|
|
<td>
|
|
<input type="number" name="attr_deguicarac" readonly >
|
|
<script type="text/worker">
|
|
on('ready change:dext change:chari', function() {
|
|
getAttrs(['dext', 'chari'], function(values) {
|
|
var dext = parseInt(values.dext) || 0,
|
|
chari = parseInt(values.chari) || 0;
|
|
setAttrs({ deguicarac: dext + chari });
|
|
});
|
|
});
|
|
</script>
|
|
|
|
<input type="number" name="attr_deguirang" min="0" value="0" />
|
|
|
|
<input type="number" name="attr_deguitotal" readonly >
|
|
<script type="text/worker">
|
|
on('ready change:deguicarac change:deguirang', function() {
|
|
getAttrs(['deguicarac', 'deguirang'], function(values) {
|
|
var deguicarac = parseInt(values.deguicarac) || 0,
|
|
deguirang = parseInt(values.deguirang) || 0;
|
|
setAttrs({ deguitotal: deguirang === 0 ? 0 : deguicarac + deguirang });
|
|
});
|
|
});
|
|
</script>
|
|
<button type="roll" value="/roll 1d20 + @{deguitotal} Déguisement" name="deguitest"></button>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>
|
|
Diplomatie (INT, CHA)
|
|
</td>
|
|
<td>
|
|
<input type="number" name="attr_diplocarac" readonly >
|
|
<script type="text/worker">
|
|
on('ready change:intel change:chari', function() {
|
|
getAttrs(['intel', 'chari'], function(values) {
|
|
var intel = parseInt(values.intel) || 0,
|
|
chari = parseInt(values.chari) || 0;
|
|
setAttrs({ diplocarac: intel + chari });
|
|
});
|
|
});
|
|
</script>
|
|
|
|
<input type="number" name="attr_diplorang" min="0" value="0" />
|
|
|
|
<input type="number" name="attr_diplototal" readonly >
|
|
<script type="text/worker">
|
|
on('ready change:diplocarac change:diplorang', function() {
|
|
getAttrs(['diplocarac', 'diplorang'], function(values) {
|
|
var diplocarac = parseInt(values.diplocarac) || 0,
|
|
diplorang = parseInt(values.diplorang) || 0;
|
|
setAttrs({ diplototal: diplorang === 0 ? 0 : diplocarac + diplorang });
|
|
});
|
|
});
|
|
</script>
|
|
<button type="roll" value="/roll 1d20 + @{diplototal} Diplomatie" name="diplotest"></button>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>
|
|
Discrétion (DEX, INT)
|
|
</td>
|
|
<td>
|
|
<input type="number" name="attr_discrcarac" readonly >
|
|
<script type="text/worker">
|
|
on('ready change:dext change:intel', function() {
|
|
getAttrs(['dext', 'intel'], function(values) {
|
|
var dext = parseInt(values.dext) || 0,
|
|
intel = parseInt(values.intel) || 0;
|
|
setAttrs({ discrcarac: dext + intel });
|
|
});
|
|
});
|
|
</script>
|
|
|
|
<input type="number" name="attr_discrrang" min="0" value="0" />
|
|
|
|
<input type="number" name="attr_discrtotal" readonly >
|
|
<script type="text/worker">
|
|
on('ready change:discrcarac change:discrrang', function() {
|
|
getAttrs(['discrcarac', 'discrrang'], function(values) {
|
|
var discrcarac = parseInt(values.discrcarac) || 0,
|
|
discrrang = parseInt(values.discrrang) || 0;
|
|
setAttrs({ discrtotal: discrrang === 0 ? 0 : discrcarac + discrrang });
|
|
});
|
|
});
|
|
</script>
|
|
<button type="roll" value="/roll 1d20 + @{discrtotal} Discrétion" name="discrtest"></button>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>
|
|
Escamotage (DEX, INT)
|
|
</td>
|
|
<td>
|
|
<input type="number" name="attr_escamcarac" readonly >
|
|
<script type="text/worker">
|
|
on('ready change:dext change:intel', function() {
|
|
getAttrs(['dext', 'intel'], function(values) {
|
|
var dext = parseInt(values.dext) || 0,
|
|
intel = parseInt(values.intel) || 0;
|
|
setAttrs({ escamcarac: dext + intel });
|
|
});
|
|
});
|
|
</script>
|
|
|
|
<input type="number" name="attr_escamrang" min="0" value="0" />
|
|
|
|
<input type="number" name="attr_escamtotal" readonly >
|
|
<script type="text/worker">
|
|
on('ready change:escamcarac change:escamrang', function() {
|
|
getAttrs(['escamcarac', 'escamrang'], function(values) {
|
|
var escamcarac = parseInt(values.escamcarac) || 0,
|
|
escamrang = parseInt(values.escamrang) || 0;
|
|
setAttrs({ escamtotal: escamrang === 0 ? 0 : escamcarac + escamrang });
|
|
});
|
|
});
|
|
</script>
|
|
<button type="roll" value="/roll 1d20 + @{escamtotal} Escamotage" name="escamtest"></button>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>
|
|
Esquive (DEX, INT)
|
|
</td>
|
|
<td>
|
|
<input type="number" name="attr_esquicarac" readonly >
|
|
<script type="text/worker">
|
|
on('ready change:dext change:intel', function() {
|
|
getAttrs(['dext', 'intel'], function(values) {
|
|
var dext = parseInt(values.dext) || 0,
|
|
intel = parseInt(values.intel) || 0;
|
|
setAttrs({ esquicarac: dext + intel });
|
|
});
|
|
});
|
|
</script>
|
|
|
|
<input type="number" name="attr_esquirang" min="0" value="0" />
|
|
|
|
<input type="number" name="attr_esquitotal" readonly >
|
|
<script type="text/worker">
|
|
on('ready change:esquicarac change:esquirang', function() {
|
|
getAttrs(['esquicarac', 'esquirang'], function(values) {
|
|
var esquicarac = parseInt(values.esquicarac) || 0,
|
|
esquirang = parseInt(values.esquirang) || 0;
|
|
setAttrs({ esquitotal: esquirang === 0 ? 0 : esquicarac + esquirang });
|
|
});
|
|
});
|
|
</script>
|
|
<button type="roll" value="/roll 1d20 + @{esquitotal} Esquive" name="esquitest"></button>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>
|
|
Fouille (INT, SAG)
|
|
</td>
|
|
<td>
|
|
<input type="number" name="attr_fouilcarac" readonly >
|
|
<script type="text/worker">
|
|
on('ready change:intel change:sage', function() {
|
|
getAttrs(['intel', 'sage'], function(values) {
|
|
var intel = parseInt(values.intel) || 0,
|
|
sage = parseInt(values.sage) || 0;
|
|
setAttrs({ fouilcarac: intel + sage });
|
|
});
|
|
});
|
|
</script>
|
|
|
|
<input type="number" name="attr_fouilrang" min="0" value="0" />
|
|
|
|
<input type="number" name="attr_fouiltotal" readonly >
|
|
<script type="text/worker">
|
|
on('ready change:fouilcarac change:fouilrang', function() {
|
|
getAttrs(['fouilcarac', 'fouilrang'], function(values) {
|
|
var fouilcarac = parseInt(values.fouilcarac) || 0,
|
|
fouilrang = parseInt(values.fouilrang) || 0;
|
|
setAttrs({ fouiltotal: fouilrang === 0 ? 0 : fouilcarac + fouilrang });
|
|
});
|
|
});
|
|
</script>
|
|
<button type="roll" value="/roll 1d20 + @{fouiltotal} Fouille" name="fouiltest"></button>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>
|
|
Idée (INT, SAG)
|
|
</td>
|
|
<td>
|
|
<input type="number" name="attr_ideecarac" readonly >
|
|
<script type="text/worker">
|
|
on('ready change:intel change:sage', function() {
|
|
getAttrs(['intel', 'sage'], function(values) {
|
|
var intel = parseInt(values.intel) || 0,
|
|
sage = parseInt(values.sage) || 0;
|
|
setAttrs({ ideecarac: intel + sage });
|
|
});
|
|
});
|
|
</script>
|
|
|
|
<input type="number" name="attr_ideerang" min="0" value="0" />
|
|
|
|
<input type="number" name="attr_ideetotal" readonly >
|
|
<script type="text/worker">
|
|
on('ready change:ideecarac change:ideerang', function() {
|
|
getAttrs(['ideecarac', 'ideerang'], function(values) {
|
|
var ideecarac = parseInt(values.ideecarac) || 0,
|
|
ideerang = parseInt(values.ideerang) || 0;
|
|
setAttrs({ ideetotal: ideerang === 0 ? 0 : ideecarac + ideerang });
|
|
});
|
|
});
|
|
</script>
|
|
<button type="roll" value="/roll 1d20 + @{ideetotal} Idée" name="ideetest"></button>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>
|
|
<!-- Influence 1 -->
|
|
Influence: <input type="text" name="attr_influ1nom" class="input3"> (INT, CHA)
|
|
</td>
|
|
<td>
|
|
<input type="number" name="attr_influ1carac" readonly >
|
|
<script type="text/worker">
|
|
on('ready change:intel change:chari', function() {
|
|
getAttrs(['intel', 'chari'], function(values) {
|
|
var intel = parseInt(values.intel) || 0,
|
|
chari = parseInt(values.chari) || 0;
|
|
setAttrs({ influ1carac: intel + chari });
|
|
});
|
|
});
|
|
</script>
|
|
|
|
<input type="number" name="attr_influ1rang" min="0" value="0" />
|
|
|
|
<input type="number" name="attr_influ1total" readonly >
|
|
<script type="text/worker">
|
|
on('ready change:influ1carac change:influ1rang', function() {
|
|
getAttrs(['influ1carac', 'influ1rang'], function(values) {
|
|
var influ1carac = parseInt(values.influ1carac) || 0,
|
|
influ1rang = parseInt(values.influ1rang) || 0;
|
|
setAttrs({ influ1total: influ1rang === 0 ? 0 : influ1carac + influ1rang });
|
|
});
|
|
});
|
|
</script>
|
|
<button type="roll" value="/roll 1d20 + @{influ1total} Influence: @{influ1nom}" name="influ1test" ></button>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>
|
|
<!-- Influence 2 -->
|
|
Influence: <input type="text" name="attr_influ2nom" class="input3"> (INT, CHA)
|
|
</td>
|
|
<td>
|
|
<input type="number" name="attr_influ2carac" readonly >
|
|
<script type="text/worker">
|
|
on('ready change:intel change:chari', function() {
|
|
getAttrs(['intel', 'chari'], function(values) {
|
|
var intel = parseInt(values.intel) || 0,
|
|
chari = parseInt(values.chari) || 0;
|
|
setAttrs({ influ2carac: intel + chari });
|
|
});
|
|
});
|
|
</script>
|
|
|
|
<input type="number" name="attr_influ2rang" min="0" value="0" />
|
|
|
|
<input type="number" name="attr_influ2total" readonly >
|
|
<script type="text/worker">
|
|
on('ready change:influ2carac change:influ2rang', function() {
|
|
getAttrs(['influ2carac', 'influ2rang'], function(values) {
|
|
var influ2carac = parseInt(values.influ2carac) || 0,
|
|
influ2rang = parseInt(values.influ2rang) || 0;
|
|
setAttrs({ influ2total: influ2rang === 0 ? 0 : influ2carac + influ2rang });
|
|
});
|
|
});
|
|
</script>
|
|
<button type="roll" value="/roll 1d20 + @{influ2total} Influence: @{influ2nom}" name="influ2test" ></button>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>
|
|
<!-- Influence 3 -->
|
|
Influence: <input type="text" name="attr_influ3nom" class="input3"> (INT, CHA)
|
|
</td>
|
|
<td>
|
|
<input type="number" name="attr_influ3carac" readonly >
|
|
<script type="text/worker">
|
|
on('ready change:intel change:chari', function() {
|
|
getAttrs(['intel', 'chari'], function(values) {
|
|
var intel = parseInt(values.intel) || 0,
|
|
chari = parseInt(values.chari) || 0;
|
|
setAttrs({ influ3carac: intel + chari });
|
|
});
|
|
});
|
|
</script>
|
|
|
|
<input type="number" name="attr_influ3rang" min="0" value="0" />
|
|
|
|
<input type="number" name="attr_influ3total" readonly >
|
|
<script type="text/worker">
|
|
on('ready change:influ3carac change:influ3rang', function() {
|
|
getAttrs(['influ3carac', 'influ3rang'], function(values) {
|
|
var influ3carac = parseInt(values.influ3carac) || 0,
|
|
influ3rang = parseInt(values.influ3rang) || 0;
|
|
setAttrs({ influ3total: influ3rang === 0 ? 0 : influ3carac + influ3rang });
|
|
});
|
|
});
|
|
</script>
|
|
<button type="roll" value="/roll 1d20 + @{influ3total} Influence: @{influ3nom}" name="influ3test" ></button>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>
|
|
Intimidation (FOR, CHA)
|
|
</td>
|
|
<td>
|
|
<input type="number" name="attr_intimcarac" readonly >
|
|
<script type="text/worker">
|
|
on('ready change:force change:chari', function() {
|
|
getAttrs(['force', 'chari'], function(values) {
|
|
var force = parseInt(values.force) || 0,
|
|
chari = parseInt(values.chari) || 0;
|
|
setAttrs({ intimcarac: force + chari });
|
|
});
|
|
});
|
|
</script>
|
|
|
|
<input type="number" name="attr_intimrang" min="0" value="0" />
|
|
|
|
<input type="number" name="attr_intimtotal" readonly >
|
|
<script type="text/worker">
|
|
on('ready change:intimcarac change:intimrang', function() {
|
|
getAttrs(['intimcarac', 'intimrang'], function(values) {
|
|
var intimcarac = parseInt(values.intimcarac) || 0,
|
|
intimrang = parseInt(values.intimrang) || 0;
|
|
setAttrs({ intimtotal: intimrang === 0 ? 0 : intimcarac + intimrang });
|
|
});
|
|
});
|
|
</script>
|
|
<button type="roll" value="/roll 1d20 + @{intimtotal} Intimidation" name="intimtest"></button>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>
|
|
<!-- Langue 1 -->
|
|
Langue: <input type="text" name="attr_lang1nom" class="input3"> (INT, SAG)
|
|
</td>
|
|
<td>
|
|
<input type="number" name="attr_lang1carac" readonly >
|
|
<script type="text/worker">
|
|
on('ready change:intel change:sage', function() {
|
|
getAttrs(['intel', 'sage'], function(values) {
|
|
var intel = parseInt(values.intel) || 0,
|
|
sage = parseInt(values.sage) || 0;
|
|
setAttrs({ lang1carac: intel + sage });
|
|
});
|
|
});
|
|
</script>
|
|
|
|
<input type="number" name="attr_lang1rang" min="0" value="0" />
|
|
|
|
<input type="number" name="attr_lang1total" readonly >
|
|
<script type="text/worker">
|
|
on('ready change:lang1carac change:lang1rang', function() {
|
|
getAttrs(['lang1carac', 'lang1rang'], function(values) {
|
|
var lang1carac = parseInt(values.lang1carac) || 0,
|
|
lang1rang = parseInt(values.lang1rang) || 0;
|
|
setAttrs({ lang1total: lang1rang === 0 ? 0 : lang1carac + lang1rang });
|
|
});
|
|
});
|
|
</script>
|
|
<button type="roll" value="/roll 1d20 + @{lang1total} Langue: @{lang1nom}" name="lang1test" ></button>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>
|
|
<!-- Langue 2 -->
|
|
Langue: <input type="text" name="attr_lang2nom" class="input3"> (INT, SAG)
|
|
</td>
|
|
<td>
|
|
<input type="number" name="attr_lang2carac" readonly >
|
|
<script type="text/worker">
|
|
on('ready change:intel change:sage', function() {
|
|
getAttrs(['intel', 'sage'], function(values) {
|
|
var intel = parseInt(values.intel) || 0,
|
|
sage = parseInt(values.sage) || 0;
|
|
setAttrs({ lang2carac: intel + sage });
|
|
});
|
|
});
|
|
</script>
|
|
|
|
<input type="number" name="attr_lang2rang" min="0" value="0" />
|
|
|
|
<input type="number" name="attr_lang2total" readonly >
|
|
<script type="text/worker">
|
|
on('ready change:lang2carac change:lang2rang', function() {
|
|
getAttrs(['lang2carac', 'lang2rang'], function(values) {
|
|
var lang2carac = parseInt(values.lang2carac) || 0,
|
|
lang2rang = parseInt(values.lang2rang) || 0;
|
|
setAttrs({ lang2total: lang2rang === 0 ? 0 : lang2carac + lang2rang });
|
|
});
|
|
});
|
|
</script>
|
|
<button type="roll" value="/roll 1d20 + @{lang2total} Langue: @{lang2nom}" name="lang2test" ></button>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>
|
|
<!-- Langue 3 -->
|
|
Langue: <input type="text" name="attr_lang3nom" class="input3"> (INT, SAG)
|
|
</td>
|
|
<td>
|
|
<input type="number" name="attr_lang3carac" readonly >
|
|
<script type="text/worker">
|
|
on('ready change:intel change:sage', function() {
|
|
getAttrs(['intel', 'sage'], function(values) {
|
|
var intel = parseInt(values.intel) || 0,
|
|
sage = parseInt(values.sage) || 0;
|
|
setAttrs({ lang3carac: intel + sage });
|
|
});
|
|
});
|
|
</script>
|
|
|
|
<input type="number" name="attr_lang3rang" min="0" value="0" />
|
|
|
|
<input type="number" name="attr_lang3total" readonly >
|
|
<script type="text/worker">
|
|
on('ready change:lang3carac change:lang3rang', function() {
|
|
getAttrs(['lang3carac', 'lang3rang'], function(values) {
|
|
var lang3carac = parseInt(values.lang3carac) || 0,
|
|
lang3rang = parseInt(values.lang3rang) || 0;
|
|
setAttrs({ lang3total: lang3rang === 0 ? 0 : lang3carac + lang3rang });
|
|
});
|
|
});
|
|
</script>
|
|
<button type="roll" value="/roll 1d20 + @{lang3total} Langue: @{lang3nom}" name="lang3test" ></button>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>
|
|
Lire et écrire (INT, SAG)
|
|
</td>
|
|
<td>
|
|
<input type="number" name="attr_lirecarac" readonly >
|
|
<script type="text/worker">
|
|
on('ready change:intel change:sage', function() {
|
|
getAttrs(['intel', 'sage'], function(values) {
|
|
var intel = parseInt(values.intel) || 0,
|
|
sage = parseInt(values.sage) || 0;
|
|
setAttrs({ lirecarac: intel + sage });
|
|
});
|
|
});
|
|
</script>
|
|
|
|
<input type="number" name="attr_lirerang" min="0" value="0" />
|
|
|
|
<input type="number" name="attr_liretotal" readonly >
|
|
<script type="text/worker">
|
|
on('ready change:lirecarac change:lirerang', function() {
|
|
getAttrs(['lirecarac', 'lirerang'], function(values) {
|
|
var lirecarac = parseInt(values.lirecarac) || 0,
|
|
lirerang = parseInt(values.lirerang) || 0;
|
|
setAttrs({ liretotal: lirerang === 0 ? 0 : lirecarac + lirerang });
|
|
});
|
|
});
|
|
</script>
|
|
<button type="roll" value="/roll 1d20 + @{liretotal} Lire et écrire" name="liretest"></button>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>
|
|
Mêlée (FOR, DEX)
|
|
</td>
|
|
<td>
|
|
<input type="number" name="attr_meleecarac" readonly >
|
|
<script type="text/worker">
|
|
on('ready change:force change:dext', function() {
|
|
getAttrs(['force', 'dext'], function(values) {
|
|
var force = parseInt(values.force) || 0,
|
|
dext = parseInt(values.dext) || 0;
|
|
setAttrs({ meleecarac: force + dext });
|
|
});
|
|
});
|
|
</script>
|
|
|
|
<input type="number" name="attr_meleerang" min="0" value="0" />
|
|
|
|
<input type="number" name="attr_meleetotal" readonly >
|
|
<script type="text/worker">
|
|
on('ready change:meleecarac change:meleerang', function() {
|
|
getAttrs(['meleecarac', 'meleerang'], function(values) {
|
|
var meleecarac = parseInt(values.meleecarac) || 0,
|
|
meleerang = parseInt(values.meleerang) || 0;
|
|
setAttrs({ meleetotal: meleerang === 0 ? 0 : meleecarac + meleerang });
|
|
});
|
|
});
|
|
</script>
|
|
<button type="roll" value="/roll 1d20 + @{meleetotal} Mêlée" name="meleetest"></button>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>
|
|
Muscles (FOR, CON)
|
|
</td>
|
|
<td>
|
|
<input type="number" name="attr_musclcarac" readonly >
|
|
<script type="text/worker">
|
|
on('ready change:force change:cons', function() {
|
|
getAttrs(['force', 'cons'], function(values) {
|
|
var force = parseInt(values.force) || 0,
|
|
cons = parseInt(values.cons) || 0;
|
|
setAttrs({ musclcarac: force + cons });
|
|
});
|
|
});
|
|
</script>
|
|
|
|
<input type="number" name="attr_musclrang" min="0" value="0" />
|
|
|
|
<input type="number" name="attr_muscltotal" readonly >
|
|
<script type="text/worker">
|
|
on('ready change:musclcarac change:musclrang', function() {
|
|
getAttrs(['musclcarac', 'musclrang'], function(values) {
|
|
var musclcarac = parseInt(values.musclcarac) || 0,
|
|
musclrang = parseInt(values.musclrang) || 0;
|
|
setAttrs({ muscltotal: musclrang === 0 ? 0 : musclcarac + musclrang });
|
|
});
|
|
});
|
|
</script>
|
|
<button type="roll" value="/roll 1d20 + @{muscltotal} Muscles" name="muscltest"></button>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>
|
|
Perception (INT, SAG)
|
|
</td>
|
|
<td>
|
|
<input type="number" name="attr_perccarac" readonly >
|
|
<script type="text/worker">
|
|
on('ready change:intel change:sage', function() {
|
|
getAttrs(['intel', 'sage'], function(values) {
|
|
var intel = parseInt(values.intel) || 0,
|
|
sage = parseInt(values.sage) || 0;
|
|
setAttrs({ perccarac: intel + sage });
|
|
});
|
|
});
|
|
</script>
|
|
|
|
<input type="number" name="attr_percrang" min="0" value="0" />
|
|
|
|
<input type="number" name="attr_perctotal" readonly >
|
|
<script type="text/worker">
|
|
on('ready change:perccarac change:percrang', function() {
|
|
getAttrs(['perccarac', 'percrang'], function(values) {
|
|
var perccarac = parseInt(values.perccarac) || 0,
|
|
percrang = parseInt(values.percrang) || 0;
|
|
setAttrs({ perctotal: percrang === 0 ? 0 : perccarac + percrang });
|
|
});
|
|
});
|
|
</script>
|
|
<button type="roll" value="/roll 1d20 + @{perctotal} Perception" name="perctest"></button>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>
|
|
<!-- Pilotage 1 -->
|
|
Pilotage: <input type="text" name="attr_pilot1nom" class="input3"> (DEX, SAG)
|
|
</td>
|
|
<td>
|
|
<input type="number" name="attr_pilot1carac" readonly >
|
|
<script type="text/worker">
|
|
on('ready change:dext change:sage', function() {
|
|
getAttrs(['dext', 'sage'], function(values) {
|
|
var dext = parseInt(values.dext) || 0,
|
|
sage = parseInt(values.sage) || 0;
|
|
setAttrs({ pilot1carac: dext + sage });
|
|
});
|
|
});
|
|
</script>
|
|
|
|
<input type="number" name="attr_pilot1rang" min="0" value="0" />
|
|
|
|
<input type="number" name="attr_pilot1total" readonly >
|
|
<script type="text/worker">
|
|
on('ready change:pilot1carac change:pilot1rang', function() {
|
|
getAttrs(['pilot1carac', 'pilot1rang'], function(values) {
|
|
var pilot1carac = parseInt(values.pilot1carac) || 0,
|
|
pilot1rang = parseInt(values.pilot1rang) || 0;
|
|
setAttrs({ pilot1total: pilot1rang === 0 ? 0 : pilot1carac + pilot1rang });
|
|
});
|
|
});
|
|
</script>
|
|
<button type="roll" value="/roll 1d20 + @{pilot1total} Pilotage: @{pilot1nom}" name="pilot1test" ></button>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>
|
|
<!-- Pilotage 2 -->
|
|
Pilotage: <input type="text" name="attr_pilot2nom" class="input3"> (DEX, SAG)
|
|
</td>
|
|
<td>
|
|
<input type="number" name="attr_pilot2carac" readonly >
|
|
<script type="text/worker">
|
|
on('ready change:dext change:sage', function() {
|
|
getAttrs(['dext', 'sage'], function(values) {
|
|
var dext = parseInt(values.dext) || 0,
|
|
sage = parseInt(values.sage) || 0;
|
|
setAttrs({ pilot2carac: dext + sage });
|
|
});
|
|
});
|
|
</script>
|
|
|
|
<input type="number" name="attr_pilot2rang" min="0" value="0" />
|
|
|
|
<input type="number" name="attr_pilot2total" readonly >
|
|
<script type="text/worker">
|
|
on('ready change:pilot2carac change:pilot2rang', function() {
|
|
getAttrs(['pilot2carac', 'pilot2rang'], function(values) {
|
|
var pilot2carac = parseInt(values.pilot2carac) || 0,
|
|
pilot2rang = parseInt(values.pilot2rang) || 0;
|
|
setAttrs({ pilot2total: pilot2rang === 0 ? 0 : pilot2carac + pilot2rang });
|
|
});
|
|
});
|
|
</script>
|
|
<button type="roll" value="/roll 1d20 + @{pilot2total} Pilotage: @{pilot2nom}" name="pilot2test" ></button>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>
|
|
<!-- Pilotage 3 -->
|
|
Pilotage: <input type="text" name="attr_pilot3nom" class="input3"> (DEX, SAG)
|
|
</td>
|
|
<td>
|
|
<input type="number" name="attr_pilot3carac" readonly >
|
|
<script type="text/worker">
|
|
on('ready change:dext change:sage', function() {
|
|
getAttrs(['dext', 'sage'], function(values) {
|
|
var dext = parseInt(values.dext) || 0,
|
|
sage = parseInt(values.sage) || 0;
|
|
setAttrs({ pilot3carac: dext + sage });
|
|
});
|
|
});
|
|
</script>
|
|
|
|
<input type="number" name="attr_pilot3rang" min="0" value="0" />
|
|
|
|
<input type="number" name="attr_pilot3total" readonly >
|
|
<script type="text/worker">
|
|
on('ready change:pilot3carac change:pilot3rang', function() {
|
|
getAttrs(['pilot3carac', 'pilot3rang'], function(values) {
|
|
var pilot3carac = parseInt(values.pilot3carac) || 0,
|
|
pilot3rang = parseInt(values.pilot3rang) || 0;
|
|
setAttrs({ pilot3total: pilot3rang === 0 ? 0 : pilot3carac + pilot3rang });
|
|
});
|
|
});
|
|
</script>
|
|
<button type="roll" value="/roll 1d20 + @{pilot3total} Pilotage: @{pilot3nom}" name="pilot3test" ></button>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>
|
|
Psychologie (INT, SAG)
|
|
</td>
|
|
<td>
|
|
<input type="number" name="attr_psychcarac" readonly >
|
|
<script type="text/worker">
|
|
on('ready change:intel change:sage', function() {
|
|
getAttrs(['intel', 'sage'], function(values) {
|
|
var intel = parseInt(values.intel) || 0,
|
|
sage = parseInt(values.sage) || 0;
|
|
setAttrs({ psychcarac: intel + sage });
|
|
});
|
|
});
|
|
</script>
|
|
|
|
<input type="number" name="attr_psychrang" min="0" value="0" />
|
|
|
|
<input type="number" name="attr_psychtotal" readonly >
|
|
<script type="text/worker">
|
|
on('ready change:psychcarac change:psychrang', function() {
|
|
getAttrs(['psychcarac', 'psychrang'], function(values) {
|
|
var psychcarac = parseInt(values.psychcarac) || 0,
|
|
psychrang = parseInt(values.psychrang) || 0;
|
|
setAttrs({ psychtotal: psychrang === 0 ? 0 : psychcarac + psychrang });
|
|
});
|
|
});
|
|
</script>
|
|
<button type="roll" value="/roll 1d20 + @{psychtotal} Psychologie" name="psychtest"></button>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>
|
|
Renseignements (SAG, CHA)
|
|
</td>
|
|
<td>
|
|
<input type="number" name="attr_renscarac" readonly >
|
|
<script type="text/worker">
|
|
on('ready change:sage change:chari', function() {
|
|
getAttrs(['sage', 'chari'], function(values) {
|
|
var sage = parseInt(values.sage) || 0,
|
|
chari = parseInt(values.chari) || 0;
|
|
setAttrs({ renscarac: sage + chari });
|
|
});
|
|
});
|
|
</script>
|
|
|
|
<input type="number" name="attr_rensrang" min="0" value="0" />
|
|
|
|
<input type="number" name="attr_renstotal" readonly >
|
|
<script type="text/worker">
|
|
on('ready change:renscarac change:rensrang', function() {
|
|
getAttrs(['renscarac', 'rensrang'], function(values) {
|
|
var renscarac = parseInt(values.renscarac) || 0,
|
|
rensrang = parseInt(values.rensrang) || 0;
|
|
setAttrs({ renstotal: rensrang === 0 ? 0 : renscarac + rensrang });
|
|
});
|
|
});
|
|
</script>
|
|
<button type="roll" value="/roll 1d20 + @{renstotal} Renseignements" name="renstest"></button>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>
|
|
Réflexes (DEX, SAG)
|
|
</td>
|
|
<td>
|
|
<input type="number" name="attr_reflcarac" readonly >
|
|
<script type="text/worker">
|
|
on('ready change:dext change:sage', function() {
|
|
getAttrs(['dext', 'sage'], function(values) {
|
|
var dext = parseInt(values.dext) || 0,
|
|
sage = parseInt(values.sage) || 0;
|
|
setAttrs({ reflcarac: dext + sage });
|
|
});
|
|
});
|
|
</script>
|
|
|
|
<input type="number" name="attr_reflrang" min="0" value="0" />
|
|
|
|
<input type="number" name="attr_refltotal" readonly >
|
|
<script type="text/worker">
|
|
on('ready change:reflcarac change:reflrang', function() {
|
|
getAttrs(['reflcarac', 'reflrang'], function(values) {
|
|
var reflcarac = parseInt(values.reflcarac) || 0,
|
|
reflrang = parseInt(values.reflrang) || 0;
|
|
setAttrs({ refltotal: reflrang === 0 ? 0 : reflcarac + reflrang });
|
|
});
|
|
});
|
|
</script>
|
|
<button type="roll" value="/roll 1d20 + @{refltotal} Réflexes" name="refltest"></button>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>
|
|
Résistance (CON, SAG)
|
|
</td>
|
|
<td>
|
|
<input type="number" name="attr_resiscarac" readonly >
|
|
<script type="text/worker">
|
|
on('ready change:cons change:sage', function() {
|
|
getAttrs(['cons', 'sage'], function(values) {
|
|
var cons = parseInt(values.cons) || 0,
|
|
sage = parseInt(values.sage) || 0;
|
|
setAttrs({ resiscarac: cons + sage });
|
|
});
|
|
});
|
|
</script>
|
|
|
|
<input type="number" name="attr_resisrang" min="0" value="0" />
|
|
|
|
<input type="number" name="attr_resistotal" readonly >
|
|
<script type="text/worker">
|
|
on('ready change:resiscarac change:resisrang', function() {
|
|
getAttrs(['resiscarac', 'resisrang'], function(values) {
|
|
var resiscarac = parseInt(values.resiscarac) || 0,
|
|
resisrang = parseInt(values.resisrang) || 0;
|
|
setAttrs({ resistotal: resisrang === 0 ? 0 : resiscarac + resisrang });
|
|
});
|
|
});
|
|
</script>
|
|
<button type="roll" value="/roll 1d20 + @{resistotal} Résistance" name="resistest"></button>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>
|
|
Soins (DEX, INT)
|
|
</td>
|
|
<td>
|
|
<input type="number" name="attr_soinscarac" readonly >
|
|
<script type="text/worker">
|
|
on('ready change:dext change:intel', function() {
|
|
getAttrs(['dext', 'intel'], function(values) {
|
|
var dext = parseInt(values.dext) || 0,
|
|
intel = parseInt(values.intel) || 0;
|
|
setAttrs({ soinscarac: dext + intel });
|
|
});
|
|
});
|
|
</script>
|
|
|
|
<input type="number" name="attr_soinsrang" min="0" value="0" />
|
|
|
|
<input type="number" name="attr_soinstotal" readonly >
|
|
<script type="text/worker">
|
|
on('ready change:soinscarac change:soinsrang', function() {
|
|
getAttrs(['soinscarac', 'soinsrang'], function(values) {
|
|
var soinscarac = parseInt(values.soinscarac) || 0,
|
|
soinsrang = parseInt(values.soinsrang) || 0;
|
|
setAttrs({ soinstotal: soinsrang === 0 ? 0 : soinscarac + soinsrang });
|
|
});
|
|
});
|
|
</script>
|
|
<button type="roll" value="/roll 1d20 + @{soinstotal} Soins" name="soinstest"></button>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>
|
|
Survie (CON, SAG)
|
|
</td>
|
|
<td>
|
|
<input type="number" name="attr_survcarac" readonly >
|
|
<script type="text/worker">
|
|
on('ready change:cons change:sage', function() {
|
|
getAttrs(['cons', 'sage'], function(values) {
|
|
var cons = parseInt(values.cons) || 0,
|
|
sage = parseInt(values.sage) || 0;
|
|
setAttrs({ survcarac: cons + sage });
|
|
});
|
|
});
|
|
</script>
|
|
|
|
<input type="number" name="attr_survrang" min="0" value="0" />
|
|
|
|
<input type="number" name="attr_survtotal" readonly >
|
|
<script type="text/worker">
|
|
on('ready change:survcarac change:survrang', function() {
|
|
getAttrs(['survcarac', 'survrang'], function(values) {
|
|
var survcarac = parseInt(values.survcarac) || 0,
|
|
survrang = parseInt(values.survrang) || 0;
|
|
setAttrs({ survtotal: survrang === 0 ? 0 : survcarac + survrang });
|
|
});
|
|
});
|
|
</script>
|
|
<button type="roll" value="/roll 1d20 + @{survtotal} Survie" name="survtest"></button>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>
|
|
<!-- Technique 1 -->
|
|
Technique: <input type="text" name="attr_tech1nom" class="input3"> (DEX, INT)
|
|
</td>
|
|
<td>
|
|
<input type="number" name="attr_tech1carac" readonly >
|
|
<script type="text/worker">
|
|
on('ready change:dext change:intel', function() {
|
|
getAttrs(['dext', 'intel'], function(values) {
|
|
var dext = parseInt(values.dext) || 0,
|
|
intel = parseInt(values.intel) || 0;
|
|
setAttrs({ tech1carac: dext + intel });
|
|
});
|
|
});
|
|
</script>
|
|
|
|
<input type="number" name="attr_tech1rang" min="0" value="0" />
|
|
|
|
<input type="number" name="attr_tech1total" readonly >
|
|
<script type="text/worker">
|
|
on('ready change:tech1carac change:tech1rang', function() {
|
|
getAttrs(['tech1carac', 'tech1rang'], function(values) {
|
|
var tech1carac = parseInt(values.tech1carac) || 0,
|
|
tech1rang = parseInt(values.tech1rang) || 0;
|
|
setAttrs({ tech1total: tech1rang === 0 ? 0 : tech1carac + tech1rang });
|
|
});
|
|
});
|
|
</script>
|
|
<button type="roll" value="/roll 1d20 + @{tech1total} Technique: @{tech1nom}" name="tech1test" ></button>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>
|
|
<!-- Technique 2 -->
|
|
Technique: <input type="text" name="attr_tech2nom" class="input3"> (DEX, INT)
|
|
</td>
|
|
<td>
|
|
<input type="number" name="attr_tech2carac" readonly >
|
|
<script type="text/worker">
|
|
on('ready change:dext change:intel', function() {
|
|
getAttrs(['dext', 'intel'], function(values) {
|
|
var dext = parseInt(values.dext) || 0,
|
|
intel = parseInt(values.intel) || 0;
|
|
setAttrs({ tech2carac: dext + intel });
|
|
});
|
|
});
|
|
</script>
|
|
|
|
<input type="number" name="attr_tech2rang" min="0" value="0" />
|
|
|
|
<input type="number" name="attr_tech2total" readonly >
|
|
<script type="text/worker">
|
|
on('ready change:tech2carac change:tech2rang', function() {
|
|
getAttrs(['tech2carac', 'tech2rang'], function(values) {
|
|
var tech2carac = parseInt(values.tech2carac) || 0,
|
|
tech2rang = parseInt(values.tech2rang) || 0;
|
|
setAttrs({ tech2total: tech2rang === 0 ? 0 : tech2carac + tech2rang });
|
|
});
|
|
});
|
|
</script>
|
|
<button type="roll" value="/roll 1d20 + @{tech2total} Technique: @{tech2nom}" name="tech2test" ></button>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>
|
|
<!-- Technique 3 -->
|
|
Technique: <input type="text" name="attr_tech3nom" class="input3"> (DEX, INT)
|
|
</td>
|
|
<td>
|
|
<input type="number" name="attr_tech3carac" readonly >
|
|
<script type="text/worker">
|
|
on('ready change:dext change:intel', function() {
|
|
getAttrs(['dext', 'intel'], function(values) {
|
|
var dext = parseInt(values.dext) || 0,
|
|
intel = parseInt(values.intel) || 0;
|
|
setAttrs({ tech3carac: dext + intel });
|
|
});
|
|
});
|
|
</script>
|
|
|
|
<input type="number" name="attr_tech3rang" min="0" value="0" />
|
|
|
|
<input type="number" name="attr_tech3total" readonly >
|
|
<script type="text/worker">
|
|
on('ready change:tech3carac change:tech3rang', function() {
|
|
getAttrs(['tech3carac', 'tech3rang'], function(values) {
|
|
var tech3carac = parseInt(values.tech3carac) || 0,
|
|
tech3rang = parseInt(values.tech3rang) || 0;
|
|
setAttrs({ tech3total: tech3rang === 0 ? 0 : tech3carac + tech3rang });
|
|
});
|
|
});
|
|
</script>
|
|
<button type="roll" value="/roll 1d20 + @{tech3total} Technique: @{tech3nom}" name="tech3test" ></button>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>
|
|
Tir (DEX, SAG)
|
|
</td>
|
|
<td>
|
|
<input type="number" name="attr_tircarac" readonly >
|
|
<script type="text/worker">
|
|
on('ready change:dext change:sage', function() {
|
|
getAttrs(['dext', 'sage'], function(values) {
|
|
var dext = parseInt(values.dext) || 0,
|
|
sage = parseInt(values.sage) || 0;
|
|
setAttrs({ tircarac: dext + sage });
|
|
});
|
|
});
|
|
</script>
|
|
|
|
<input type="number" name="attr_tirrang" min="0" value="0" />
|
|
|
|
<input type="number" name="attr_tirtotal" readonly >
|
|
<script type="text/worker">
|
|
on('ready change:tircarac change:tirrang', function() {
|
|
getAttrs(['tircarac', 'tirrang'], function(values) {
|
|
var tircarac = parseInt(values.tircarac) || 0,
|
|
tirrang = parseInt(values.tirrang) || 0;
|
|
setAttrs({ tirtotal: tirrang === 0 ? 0 : tircarac + tirrang });
|
|
});
|
|
});
|
|
</script>
|
|
<button type="roll" value="/roll 1d20 + @{tirtotal} Tir" name="tirtest"></button>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>
|
|
Volonté (INT, SAG)
|
|
</td>
|
|
<td>
|
|
<input type="number" name="attr_volocarac" readonly >
|
|
<script type="text/worker">
|
|
on('ready change:intel change:sage', function() {
|
|
getAttrs(['intel', 'sage'], function(values) {
|
|
var intel = parseInt(values.intel) || 0,
|
|
sage = parseInt(values.sage) || 0;
|
|
setAttrs({ volocarac: intel + sage });
|
|
});
|
|
});
|
|
</script>
|
|
|
|
<input type="number" name="attr_volorang" min="0" value="0" />
|
|
|
|
<input type="number" name="attr_volototal" readonly >
|
|
<script type="text/worker">
|
|
on('ready change:volocarac change:volorang', function() {
|
|
getAttrs(['volocarac', 'volorang'], function(values) {
|
|
var volocarac = parseInt(values.volocarac) || 0,
|
|
volorang = parseInt(values.volorang) || 0;
|
|
setAttrs({ volototal: volorang === 0 ? 0 : volocarac + volorang });
|
|
});
|
|
});
|
|
</script>
|
|
<button type="roll" value="/roll 1d20 + @{volototal} Volonté" name="volotest"></button>
|
|
</td>
|
|
</tr>
|
|
|
|
|
|
</table>
|
|
|
|
<br>
|
|
|
|
</div> <!-- END Section 3 Competences-->
|
|
|
|
<div class="sheet-footer">
|
|
<!-- black bar with possibly author name on it -->
|
|
</div>
|
|
|
|
</div> <!-- END Outline -->
|