Rolemaster 2nd / Classic sheet (new sheet) (#7539)
* Initial commit First commit, without translation for the moment. Need to add more spell lists * Create Rolemaster2vintage.png * Adding 3 more spell lists Adding 3 more spell list, to 6 now * Create sheet.json * Translations More translations * Update translation.json * More translations * Translations (french) Translations (french) * Update Rolemaster2vintage.html * Translations to french And automatic translations * Changing project name * Last development before pull request Adding up to 10 spell lists Auto calculate inventory weight Adding dev column for levelling * Update en.json Fixing a missing symbol * Label correction Label correction for the secondary skills table * Fixing a typo Tyle de liste -> Type de liste * Update Rolemaster_2nd-classic.css * Reformating skill and attribute tables For a better readibility of the informations * Cleaning the code & aesthetics Replacing most of the <table> by <label> and some aesthetics * Minor fix on spell lists Fixing a typo in the spell list 4 menu * Fixing Typo * Update sheet.json * Replacing Background by Settings I replace the background tab by a setting tab because the background is already handled by Roll20. The settings and options will be added little by little the next weeks! * Preparing setting tab (hiding it) * Merging scripts for Sheet Workers Merging the actual two Sheet Workers on the same Script tag * Adding option tab Addins option tab and campaign option for changing the calculation mode for the HP and for the professional bonuses.
This commit is contained in:
@@ -0,0 +1,230 @@
|
||||
/* Set the min-width so that when the window is resized the look will stay consistant */
|
||||
|
||||
.charsheet {
|
||||
background-color: #cad7e2;
|
||||
width: 1000px;
|
||||
}
|
||||
|
||||
/* Universal styling applied to all elements of these types */
|
||||
|
||||
h2 {
|
||||
font-size: 1.0em;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
label {
|
||||
display: inline-block;
|
||||
width: 31%;
|
||||
font-size: 1.0em;
|
||||
}
|
||||
|
||||
input {
|
||||
display: inline-block;
|
||||
width: 170px;
|
||||
}
|
||||
|
||||
img {
|
||||
max-height: 100px;
|
||||
}
|
||||
|
||||
textarea {
|
||||
resize: vertical;
|
||||
}
|
||||
|
||||
select {
|
||||
margin-bottom: 0px;
|
||||
width: 170px;
|
||||
}
|
||||
|
||||
th {
|
||||
/* text-align: center; */
|
||||
padding-bottom: 5px;
|
||||
padding-top: 5px;
|
||||
background-color: #a6b5c3;
|
||||
}
|
||||
|
||||
table {
|
||||
margin-right: 0px;
|
||||
}
|
||||
|
||||
div {
|
||||
margin-right: 0px;
|
||||
}
|
||||
|
||||
hr {
|
||||
border-top-color: #a6b5c3;
|
||||
}
|
||||
|
||||
|
||||
/* Targetted styling that only effects elements with these classes */
|
||||
input.sheet-short {
|
||||
width: 45px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
input.sheet-transparent {
|
||||
width: 45px;
|
||||
background-color: #cad7e2;
|
||||
border: 0px;
|
||||
border-bottom: 1px solid #a6b5c3;
|
||||
border-radius: 0px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
select.sheet-dtype {
|
||||
vertical-align: top;
|
||||
width: 60px;
|
||||
}
|
||||
span.sheet-dee {
|
||||
font-size: 1.4em;
|
||||
font-weight: bold;
|
||||
left: -36%;
|
||||
padding-right: 4px;
|
||||
position: relative;
|
||||
top: 3px;
|
||||
}
|
||||
label.sheet-header {
|
||||
/* text-align: center; */
|
||||
padding-bottom: 5px;
|
||||
padding-top: 5px;
|
||||
background-color: #a6b5c3;
|
||||
}
|
||||
|
||||
|
||||
/* Targetted styling that only effects elements contained within the stated class */
|
||||
.sheet-stats h3 {
|
||||
display: inline-block;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.sheet-stats h3:first-child {
|
||||
margin-left: 35%;
|
||||
margin-right: 15%;
|
||||
}
|
||||
|
||||
.sheet-stats input {
|
||||
margin-right: 8%;
|
||||
width: 45px;
|
||||
}
|
||||
|
||||
|
||||
.charsheet label {
|
||||
margin-bottom: 0px;
|
||||
}
|
||||
|
||||
/*Configure the tab buttons*/
|
||||
.sheet-character,
|
||||
.sheet-equipment,
|
||||
.sheet-magic,
|
||||
.sheet-settings, {
|
||||
display: none;
|
||||
}
|
||||
|
||||
/* show the selected tab */
|
||||
.sheet-tabstoggle[value="character"] ~ div.sheet-character,
|
||||
.sheet-tabstoggle[value="equipment"] ~ div.sheet-equipment,
|
||||
.sheet-tabstoggle[value="magic"] ~ div.sheet-magic,
|
||||
.sheet-tabstoggle[value="settings"] ~ div.sheet-settings {
|
||||
display: block;
|
||||
}
|
||||
|
||||
/* show buttons for the spell lists*/
|
||||
input.sheet-toggle-show-1:not(:checked) ~ div.sheet-body-1,
|
||||
input.sheet-toggle-show-2:not(:checked) ~ div.sheet-body-2,
|
||||
input.sheet-toggle-show-3:not(:checked) ~ div.sheet-body-3,
|
||||
input.sheet-toggle-show-4:not(:checked) ~ div.sheet-body-4,
|
||||
input.sheet-toggle-show-5:not(:checked) ~ div.sheet-body-5,
|
||||
input.sheet-toggle-show-6:not(:checked) ~ div.sheet-body-6,
|
||||
input.sheet-toggle-show-7:not(:checked) ~ div.sheet-body-7,
|
||||
input.sheet-toggle-show-8:not(:checked) ~ div.sheet-body-8,
|
||||
input.sheet-toggle-show-9:not(:checked) ~ div.sheet-body-9,
|
||||
input.sheet-toggle-show-10:not(:checked) ~ div.sheet-body-10,
|
||||
input.sheet-toggle-hide:checked ~ div.sheet-body {
|
||||
display: none;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Roll template */
|
||||
|
||||
/* Smaller margins - remove these if you want the huge default left margin */
|
||||
.sheet-rolltemplate-custom {
|
||||
margin-left: -37px;
|
||||
}
|
||||
.withoutavatars .sheet-rolltemplate-custom {
|
||||
margin-left: -7px;
|
||||
}
|
||||
|
||||
.sheet-rolltemplate-custom .sheet-container {
|
||||
border: 1px solid;
|
||||
/* by default, the border is the same color as the header. You can change this here, e.g. to black */
|
||||
border-color: var(--header-bg-color);
|
||||
}
|
||||
|
||||
/* Header formatting - title and subtitle */
|
||||
.sheet-rolltemplate-custom .sheet-header {
|
||||
background-color: var(--header-bg-color);
|
||||
/* change text-align to center to center the header text */
|
||||
text-align: left;
|
||||
color: var(--header-text-color);
|
||||
padding: 5px;
|
||||
}
|
||||
.sheet-rolltemplate-custom .sheet-title {
|
||||
font-size:1.1em;
|
||||
}
|
||||
.sheet-rolltemplate-custom .sheet-subtitle {
|
||||
font-size:.9em;
|
||||
}
|
||||
|
||||
/* example colors */
|
||||
.sheet-rolltemplate-custom .sheet-container {
|
||||
/* this is the default color */
|
||||
--header-bg-color: #446788;
|
||||
--header-text-color: #FFF;
|
||||
}
|
||||
.sheet-rolltemplate-custom .sheet-container.sheet-color-red {
|
||||
--header-bg-color: #F00;
|
||||
}
|
||||
.sheet-rolltemplate-custom .sheet-container.sheet-color-green {
|
||||
--header-bg-color: #0F0;
|
||||
--header-text-color: #000;
|
||||
}
|
||||
|
||||
/* Allprops part */
|
||||
.sheet-rolltemplate-custom .sheet-content {
|
||||
display: grid;
|
||||
background: #FFF;
|
||||
/* Header formatting - modify the column layout below */
|
||||
grid-template-columns: auto auto;
|
||||
/* Line height to match default roll template */
|
||||
line-height:1.4em;
|
||||
}
|
||||
.sheet-rolltemplate-custom .sheet-content > div {
|
||||
padding: 5px;
|
||||
}
|
||||
|
||||
/* Left column */
|
||||
.sheet-rolltemplate-custom .sheet-content .sheet-key {
|
||||
font-weight: bold;
|
||||
padding-right: 10px;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
/* Empty rule, use this if you want to change the right column
|
||||
.sheet-rolltemplate-custom .sheet-value {
|
||||
}
|
||||
*/
|
||||
|
||||
/* Make even-numbered rows grey */
|
||||
.sheet-rolltemplate-custom .sheet-content :nth-child(4n+3),
|
||||
.sheet-rolltemplate-custom .sheet-content :nth-child(4n) {
|
||||
background:#EEE;
|
||||
}
|
||||
|
||||
/* Description field */
|
||||
.sheet-rolltemplate-custom .sheet-desc {
|
||||
grid-column: span 2;
|
||||
padding: 5px;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,471 @@
|
||||
<div class="3colrow">
|
||||
<div class="col">
|
||||
<label data-i18n="race">Race</label><input type="text" name="attr_race" />
|
||||
<label data-i18n="profession">Profession</label><input type="text" name="attr_profession" />
|
||||
<label data-i18n="level">Niveau</label><input type="number" name="attr_niveau" class='sheet-short' value="1"/>
|
||||
<label data-i18n="experience" style="width: 41px;">Exp.</label><input type="text" name="attr_experience" style="width: 70px;"/>
|
||||
<div>
|
||||
<button data-i18n="character" type="action" name="act_character" style="margin-top: 2px;" >Personnage</button>
|
||||
<button data-i18n="equipment" type="action" name="act_equipment" >Equipement</button>
|
||||
<button data-i18n="magic" type="action" name="act_magic" >Magie</button>
|
||||
<button data-i18n="settings" type="action" name="act_settings" >Configuration</button>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="col" >
|
||||
<img src="https://images.squarespace-cdn.com/content/v1/52ed62c3e4b0957cc4094975/1589849785190-ONNCBWT2YN62TLC0ZM9W/ke17ZwdGBToddI8pDm48kJSpaAm9EnAAXqaQOAUHvcR7gQa3H78H3Y0txjaiv_0fDoOvxcdMmMKkDsyUqMSsMWxHk725yiiHCCLfrh8O1z4YTzHvnKhyp6Da-NYroOW3ZGjoBKy3azqku80C789l0vl2h348PERjZ0kbWc3syzQarRy86ehuWh77YXUQONiEFHEuCT1uOvb_v_MKdKr-HQ/rm2logo.png" style="float:center;"/>
|
||||
</div>
|
||||
|
||||
<div class="col">
|
||||
<label data-i18n="realmpower">Roy. pouvoir</label><input type="text" name="attr_royaume_pouvoir" />
|
||||
<label data-i18n="powerpoints">Pts pouvoir</label><input type="number" name="attr_pp" class='sheet-short'> / <input type="number" name="attr_pp_max" class='sheet-short'/>
|
||||
<label data-i18n="basehp">PdC base</label><input type="number" name="attr_hp_base" class='sheet-short'> <label data-i18n="totalhp" style="width: 63px;">PdC total</label><input type="number" name="attr_hp_max" class='sheet-short'/>
|
||||
<label data-i18n="actualhp">PdC actuels</label><input type="number" name="attr_hp" style="width: 70px;"/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<input type='hidden' class='sheet-tabstoggle' name='attr_sheetTab' value='character' />
|
||||
<input type='hidden' name='attr_totalhpcalculation' value='1'/>
|
||||
<div class='sheet-character'>
|
||||
<span>
|
||||
<hr/>
|
||||
<div class="3colrow">
|
||||
<div class="col" style="width: 400px;">
|
||||
<table><tr><th data-i18n="attributes" style="padding-left: 5px;">Caractéristiques</th><th data-i18n="temporary-abbr">Temp.</th><th data-i18n="potential-abbr">Pot.</th><th data-i18n="development-abbr">Dev.</th><th data-i18n="base-abbr">Base</th><th data-i18n="race-abbr">Race</th><th data-i18n="total-abbr">TOTAL</th></tr>
|
||||
|
||||
<tr><td><label data-i18n="constitution">Constitution</label></td><td><input type="text" name='attr_temp_constitution' class='sheet-short'></td><td><input type="text" name='attr_pot_constitution' class="transparent" class='sheet-short'></td>
|
||||
<td><input type="text" name='attr_dev_constitution' class="transparent" class='sheet-short'></td><td><input type="text" name='attr_base_constitution' class="transparent" class='sheet-short'></td>
|
||||
<td><input type="text" name='attr_race_constitution' class="transparent" class='sheet-short'></td><td><input type="text" name='attr_total_constitution' value="(@{base_constitution}+@{race_constitution})" disabled="true" class='sheet-short'></td>
|
||||
<td><button type='roll' name='roll_testattack' value='&{template:custom} {{title=^{constitutioncheck}}} {{^{result}=[[1d100!>96cs>96cf<5 + @{total_constitution}]]}}'></button></td></tr>
|
||||
|
||||
<tr><td><label data-i18n="agility">Agilité</label></td><td><input type="text" name='attr_temp_agilite' class='sheet-short'></td><td><input type="text" name='attr_pot_agilite' class="transparent" class='sheet-short'></td>
|
||||
<td><input type="text" name='attr_dev_agilite' class="transparent" class='sheet-short'></td><td><input type="text" name='attr_base_agilite' class="transparent" class='sheet-short'></td>
|
||||
<td><input type="text" name='attr_race_agilite' class="transparent" class='sheet-short'></td><td><input type="text" name='attr_total_agilite' value="(@{base_agilite}+@{race_agilite})" disabled="true" class='sheet-short'></td>
|
||||
<td><button type='roll' name='roll_testattack' value='&{template:custom} {{title=^{agilitycheck}}} {{^{result}=[[1d100!>96cs>96cf<5 + @{total_agilite}]]}}'></button></td></tr>
|
||||
|
||||
<tr><td><label data-i18n="selfdiscipline">Autodiscipline</label></td><td><input type="text" name='attr_temp_autodiscipline' class='sheet-short'></td><td><input type="text" name='attr_pot_autodiscipline' class="transparent" class='sheet-short'></td>
|
||||
<td><input type="text" name='attr_dev_autodiscipline' class="transparent" class='sheet-short'></td><td><input type="text" name='attr_base_autodiscipline' class="transparent" class='sheet-short'></td>
|
||||
<td><input type="text" name='attr_race_autodiscipline' class="transparent" class='sheet-short'></td><td><input type="text" name='attr_total_autodiscipline' value="(@{base_autodiscipline}+@{race_autodiscipline})" disabled="true" class='sheet-short'></td>
|
||||
<td><button type='roll' name='roll_testattack' value='&{template:custom} {{title=^{selfdisciplinecheck}}} {{^{result}=[[1d100!>96cs>96cf<5 + @{total_autodiscipline}]]}}'></button></td></tr>
|
||||
|
||||
<tr><td><label data-i18n="memory">Mémoire</label></td><td><input type="text" name='attr_temp_memoire' class='sheet-short'></td><td><input type="text" name='attr_pot_memoire' class="transparent" class='sheet-short'></td>
|
||||
<td><input type="text" name='attr_dev_memoire' class="transparent" class='sheet-short'></td><td><input type="text" name='attr_base_memoire' class="transparent" class='sheet-short'></td>
|
||||
<td><input type="text" name='attr_race_memoire' class="transparent" class='sheet-short'></td><td><input type="text" name='attr_total_memoire' value="(@{base_memoire}+@{race_memoire})" disabled="true" class='sheet-short'></td>
|
||||
<td><button type='roll' name='roll_testattack' value='&{template:custom} {{title=^{memorycheck}}} {{^{result}=[[1d100!>96cs>96cf<5 + @{total_memoire}]]}}'></button></td></tr>
|
||||
|
||||
<tr><td><label data-i18n="reasoning">Raisonnement</label></td><td><input type="text" name='attr_temp_raisonnement' class='sheet-short'></td><td><input type="text" name='attr_pot_raisonnement' class="transparent" class='sheet-short'></td>
|
||||
<td><input type="text" name='attr_dev_raisonnement' class="transparent" class='sheet-short'></td><td><input type="text" name='attr_base_raisonnement' class="transparent" class='sheet-short'></td>
|
||||
<td><input type="text" name='attr_race_raisonnement' class="transparent" class='sheet-short'></td><td><input type="text" name='attr_total_raisonnement' value="(@{base_raisonnement}+@{race_raisonnement})" disabled="true" class='sheet-short'></td>
|
||||
<td><button type='roll' name='roll_testattack' value='&{template:custom} {{title=^{reasoningcheck}}} {{^{result}=[[1d100!>96cs>96cf<5 + @{total_raisonnement}]]}}'></button></td></tr>
|
||||
|
||||
<tr><td><label data-i18n="strength">Force</label></td><td><input type="text" name='attr_temp_force' class='sheet-short'></td><td><input type="text" name='attr_pot_force' class="transparent" class='sheet-short'></td>
|
||||
<td></td><td><input type="text" name='attr_base_force' class="transparent" class='sheet-short'></td>
|
||||
<td><input type="text" name='attr_race_force' class="transparent" class='sheet-short'></td><td><input type="text" name='attr_total_force' value="(@{base_force}+@{race_force})" disabled="true" class='sheet-short'></td>
|
||||
<td><button type='roll' name='roll_testattack' value='&{template:custom} {{title=^{strengthcheck}}} {{^{result}=[[1d100!>96cs>96cf<5 + @{total_force}]]}}'></button></td></tr>
|
||||
|
||||
<tr><td><label data-i18n="quickness">Rapidité</label></td><td><input type="text" name='attr_temp_rapidite' class='sheet-short'></td><td><input type="text" name='attr_pot_rapidite' class="transparent" class='sheet-short'></td>
|
||||
<td></td><td><input type="text" name='attr_base_rapidite' class="transparent" class='sheet-short'></td>
|
||||
<td><input type="text" name='attr_race_rapidite' class="transparent" class='sheet-short'></td><td><input type="text" name='attr_total_rapidite' value="(@{base_rapidite}+@{race_rapidite})" disabled="true" class='sheet-short'></td>
|
||||
<td><button type='roll' name='roll_testattack' value='&{template:custom} {{title=^{quicknesscheck}}} {{^{result}=[[1d100!>96cs>96cf<5 + @{total_rapidite}]]}}'></button></td></tr>
|
||||
|
||||
<tr><td><label data-i18n="presence">Présence</label></td><td><input type="text" name='attr_temp_presence' class='sheet-short'></td><td><input type="text" name='attr_pot_presence' class="transparent" class='sheet-short'></td>
|
||||
<td></td><td><input type="text" name='attr_base_presence' class="transparent" class='sheet-short'></td>
|
||||
<td><input type="text" name='attr_race_presence' class="transparent" class='sheet-short'></td><td><input type="text" name='attr_total_presence' value="(@{base_presence}+@{race_presence})" disabled="true" class='sheet-short'></td>
|
||||
<td><button type='roll' name='roll_testattack' value='&{template:custom} {{title=^{presencecheck}}} {{^{result}=[[1d100!>96cs>96cf<5 + @{total_presence}]]}}'></button></td></tr>
|
||||
|
||||
<tr><td><label data-i18n="empathy">Empathie</label></td><td><input type="text" name='attr_temp_empathie' class='sheet-short'></td><td><input type="text" name='attr_pot_empathie' class="transparent" class='sheet-short'></td>
|
||||
<td></td><td><input type="text" name='attr_base_empathie' class="transparent" class='sheet-short'></td>
|
||||
<td><input type="text" name='attr_race_empathie' class="transparent" class='sheet-short'></td><td><input type="text" name='attr_total_empathie' value="(@{base_empathie}+@{race_empathie})" disabled="true" class='sheet-short'></td>
|
||||
<td><button type='roll' name='roll_testattack' value='&{template:custom} {{title=^{empathycheck}}} {{^{result}=[[1d100!>96cs>96cf<5 + @{total_empathie}]]}}'></button></td></tr>
|
||||
|
||||
<tr><td><label data-i18n="intuition">Intuition</label></td><td><input type="text" name='attr_temp_intuition' class='sheet-short'></td><td><input type="text" name='attr_pot_intuition' class="transparent" class='sheet-short'></td>
|
||||
<td></td><td><input type="text" name='attr_base_intuition' class="transparent" class='sheet-short'></td>
|
||||
<td><input type="text" name='attr_race_intuition' class="transparent" class='sheet-short'></td><td><input type="text" name='attr_total_intuition' value="(@{base_intuition}+@{race_intuition})" disabled="true" class='sheet-short'></td>
|
||||
<td><button type='roll' name='roll_testattack' value='&{template:custom} {{title=^{intuitioncheck}}} {{^{result}=[[1d100!>96cs>96cf<5 + @{total_intuition}]]}}'></button></td></tr>
|
||||
|
||||
</table>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
<div class="col" style="width: 290px;">
|
||||
<label data-i18n="defenses" style="width: 267px; padding-left: 5px;" class="header">Défenses </label>
|
||||
<label data-i18n="armor-at" style="width: 90px;">Armure (TA)</label><input type="text" name='attr_armure_ta' style="width: 182px;">
|
||||
<label data-i18n="defensivebonus-db" style="width: 139px;">Bonus défensif (BD)</label><input type="text" name='attr_bonus_bd' style="width: 133px;">
|
||||
<label data-i18n="withshield" style="width: 90px;">Avec bouclier</label><input type="text" name='attr_bouclier_melee' style="width: 86px;"> <b>/</b> <input type="text" name='attr_bouclier_distance' style="width: 85px;">
|
||||
<label data-i18n="movementpenalty" style="width: 85px;">Malus mouvelent</label><input type="text" name='attr_malus_armure' style="width: 45px; margin-right: 15px;"> <label data-i18n="distancepenalty" style="width: 65px;">Malus tir</label> <input type="text" name='attr_malus_tir' style="width: 45px;">
|
||||
<label data-i18n="helmet" style="width: 50px;">Casque</label><input type="checkbox" name="attr_casque" value="1" checked="false" style="width: 14px; margin-right: 10px;" />
|
||||
<label data-i18n="armgreaves" style="width: 65px;">Brassards</label><input type="checkbox" name="attr_brassards" value="1" checked="false" style="width: 14px; margin-right: 10px;" />
|
||||
<label data-i18n="leggreaves" style="width: 65px;">Jambières</label><input type="checkbox" name="attr_jambières" value="1" checked="false" style="width: 14px;" />
|
||||
<br><br>
|
||||
<label data-i18n="wounds" style="width: 274px; padding-left: 5px;" class="header">Blessures</label>
|
||||
<fieldset class="repeating_blessures" >
|
||||
<input type="text" name="attr_blessures" style="width: 290px;"/>
|
||||
</fieldset>
|
||||
</div>
|
||||
<div class="col" style="width: 220px;">
|
||||
<label data-i18n="languages" style="width: 135px; padding-left: 5px;" class="header">Langages</label><label data-i18n="spoken" style="width: 25px;" class="header">Parlé</label><label data-i18n="writen" style="width: 25px;" class="header">Ecrit</label>
|
||||
<fieldset class="repeating_langages">
|
||||
<input type="text" name="attr_langages" style="width: 150px;" /><input type="number" name="attr_parle_langages" style="width: 35px;" /><input type="number" name="attr_ecrit_langages" style="width: 35px;" />
|
||||
</fieldset>
|
||||
<br>
|
||||
<label data-i18n="miscellaneous" style="width: 155px; padding-left: 5px;" class="header">Divers</label>
|
||||
<label data-i18n="hitdice" style="width: 82px;">Dé de vie</label><input type="text" name='attr_des_vie' style="width: 52px;"><button type='roll' name='roll_testattack' value='&{template:custom} {{title=^{hitdice}}} {{^{result}=[[d@{des_vie}]]}}'></button>
|
||||
<label data-i18n="developmentpoints" style="width: 82px;">Pts de Dév</label><input type="text" name='attr_pdev' value="(@{dev_constitution}+@{dev_agilite}+@{dev_autodiscipline}+@{dev_memoire}+@{dev_raisonnement})" disabled="true" style="width: 52px;">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<hr/>
|
||||
<div class='sheet-character'>
|
||||
<span>
|
||||
<div class="2colrow" >
|
||||
<div class="col" style="width: 678px;">
|
||||
<label data-i18n="primaryskills" style="width: 135px; padding-left: 5px;" class="header">Comp. principales</label><label data-i18n="attributemod-abbr" style="width: 70px;" class="header">Mod Carac.</label><label data-i18n="cost" style="width: 30px;" class="header">Coût</label><label data-i18n="profession-abbr" style="width: 25px;" class="header">Prof.</label><label data-i18n="nbranks" style="width: 44px;" class="header">#Rangs</label><label data-i18n="dev-abbr" style="width: 30px; text-align: center;" class="header">Dev.</label><label data-i18n="base-abbr" style="width: 35px;" class="header">Base</label><label data-i18n="attribute-abbr" style="width: 35px;" class="header">Carac.</label><label data-i18n="profession-abbr" style="width: 25px;" class="header">Prof.</label><label data-i18n="miscellaneous-abbr" style="width: 30px;" class="header">Div.</label><label data-i18n="item-abbr" style="width: 30px;" class="header">Obj.</label><label data-i18n="total-abbr" style="width: 34px;" class="header">TOTAL</label>
|
||||
|
||||
<fieldset class="repeating_skills">
|
||||
<input type="text" name="attr_skillname" style="width: 150px;" /><input type="text" name='attr_modcarac_skillname' class="transparent" style="width: 80px;"><input type="text" name='attr_cout_skillname' class="transparent" style="width: 40px;"><input type="text" name='attr_prof_skillname' class="transparent" style="width: 35px;" value="0"><input type="number" name='attr_nbrangs_skillname' style="width: 50px; text-align: center;"><input type="number" name='attr_dev_skillname' style="width: 40px; text-align: center;">
|
||||
<input type="text" name='attr_base_skillname' class="transparent" style="width: 45px;" value="0"><input type="text" name='attr_carac_skillname' class="transparent" style="width: 45px;" value="0"><input type="text" name='attr_profbonus_skillname' class="transparent" style="width: 35px;"><input type="text" name='attr_div_skillname' class="transparent" style="width: 40px;" value="0"><input type="text" name='attr_obj_skillname' class="transparent" style="width: 40px;" value="0"><input type="text" name='attr_total_skillname' value="(@{base_skillname}+@{carac_skillname}+@{profbonus_skillname}+@{div_skillname}+@{obj_skillname})" disabled="true" style="width: 45px; text-align: center;"><button type='roll' name='roll_testattack' value='&{template:custom} {{title=@{skillname}}} {{resulat=[[1d100!>96cs>96cf<5 + @{total_skillname}]]}}'></button>
|
||||
</fieldset>
|
||||
<br>
|
||||
<label data-i18n="secondaryskills" style="width: 135px; padding-left: 5px;" class="header">Comp. secondaires</label><label data-i18n="attributemod-abbr" style="width: 70px;" class="header">Mod Carac.</label><label data-i18n="cost" style="width: 30px;" class="header">Coût</label><label data-i18n="profession-abbr" style="width: 25px;" class="header">Prof.</label><label data-i18n="nbranks" style="width: 44px;" class="header">#Rangs</label><label data-i18n="dev-abbr" style="width: 30px; text-align: center;" class="header">Dev.</label><label data-i18n="base-abbr" style="width: 35px;" class="header">Base</label><label data-i18n="attribute-abbr" style="width: 35px;" class="header">Carac.</label><label data-i18n="profession-abbr" style="width: 25px;" class="header">Prof.</label><label data-i18n="miscellaneous-abbr" style="width: 30px;" class="header">Div.</label><label data-i18n="item-abbr" style="width: 30px;" class="header">Obj.</label><label data-i18n="total-abbr" style="width: 34px;" class="header">TOTAL</label>
|
||||
|
||||
<fieldset class="repeating_secondaryskills">
|
||||
<input type="text" name="attr_skillname" style="width: 150px;" /><input type="text" name='attr_modcarac_skillname' class="transparent" style="width: 80px;"><input type="text" name='attr_cout_skillname' class="transparent" style="width: 40px;"><input type="text" name='attr_prof_skillname' class="transparent" style="width: 35px;" value="0"><input type="number" name='attr_nbrangs_skillname' style="width: 50px; text-align: center;"><input type="number" name='attr_dev_skillname' style="width: 40px; text-align: center;">
|
||||
<input type="text" name='attr_base_skillname' class="transparent" style="width: 45px;" value="0"><input type="text" name='attr_carac_skillname' class="transparent" style="width: 45px;" value="0"><input type="text" name='attr_profbonus_skillname' class="transparent" style="width: 35px;"><input type="text" name='attr_div_skillname' class="transparent" style="width: 40px;" value="0"><input type="text" name='attr_obj_skillname' class="transparent" style="width: 40px;" value="0"><input type="text" name='attr_total_skillname' value="(@{base_skillname}+@{carac_skillname}+@{profbonus_skillname}+@{div_skillname}+@{obj_skillname})" disabled="true" style="width: 45px; text-align: center;"><button type='roll' name='roll_testattack' value='&{template:custom} {{title=@{skillname}}} {{resulat=[[1d100!>96cs>96cf<5 + @{total_skillname}]]}}'></button>
|
||||
</fieldset>
|
||||
</div>
|
||||
|
||||
<div class="col" style="width: 288px;">
|
||||
<label data-i18n="weaponskills" style="width: 162px; padding-left: 5px;" class="header">Compétences d'armes</label><label data-i18n="ob" style="width: 30px;"class="header">BO</label><label data-i18n="db" style="width: 30px;" class="header">BD</label>
|
||||
<fieldset class="repeating_weapons">
|
||||
<input type="text" name="attr_weapon" style="width: 177px;" /><input type="text" name="attr_weaponbo" style="width: 40px;" /><input type="text" name="attr_weaponbd" style="width: 40px;" /><button type='roll' name='roll_testattack' value='&{template:custom} {{title=@{weapon}}} {{^{result}=[[1d100!>96cs>96cf<5 + @{weaponbo} - ?{Ennemy DB|0}]]}}'></button>
|
||||
</fieldset>
|
||||
<br>
|
||||
<label data-i18n="resistances" style="width: 85px; padding-left: 5px;" class="header">Résistances</label><label data-i18n="base-abbr" style="width: 30px;" class="header">Base</label><label data-i18n="race-abbr" style="width: 30px;" class="header">Race</label><label data-i18n="miscellaneous" style="width: 30px;" class="header">Divers</label><label data-i18n="total-abbr" style="width: 30px;" class="header">TOTAL</label>
|
||||
<fieldset class="repeating_resistances" >
|
||||
<input type="text" name="attr_resistancename" style="width: 99px;" /><input type="text" name='attr_base_resistancename' class="transparent" style="width: 40px;" value="0"><input type="text" name='attr_race_resistancename' class="transparent" style="width: 40px;" value="0"><input type="text" name='attr_divers_resistancename' class="transparent" style="width: 40px;" value="0"><input type="text" name='attr_total_resistancename' value="(@{base_resistancename}+@{race_resistancename}+@{divers_resistancename})" disabled="true" class='sheet-short' style="width: 40px;"><button type='roll' name='roll_testattack' value='&{template:custom} {{title=^{resistancecheck} @{resistancename}}} {{result=[[1d100!>96cs>96cf<5 + @{total_resistancename}]]}}'></button>
|
||||
</fieldset>
|
||||
<br>
|
||||
<label data-i18n="notes" style="width: 274px; padding-left: 5px;" class="header">Notes</label>
|
||||
<textarea name="attr_notes" style="width: 279px;"></textarea>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</span>
|
||||
|
||||
<div class='sheet-equipment'>
|
||||
<span>
|
||||
<div class="2colrow" >
|
||||
<div class="col" style="width: 466px;">
|
||||
<label data-i18n="equipment" style="width: 381px; padding-left: 5px;" class="header">Equipement</label><label data-i18n="weight" style="width: 60px;" class="header">Poids kg</label>
|
||||
<fieldset class="repeating_equipment">
|
||||
<input type="text" name="attr_equipment" style="width: 396px;" /><input type="text" name="attr_poids_equipment" style="width: 70px;" />
|
||||
</fieldset>
|
||||
<br>
|
||||
<label data-i18n="loadcapacity"style="width: 200px;">Capacité de charge (kg)</label><input type="text" name="attr_loadcapacity" class='sheet-short'/><br>
|
||||
<label data-i18n="weighttotal"style="width: 200px;">Poids total (kg)</label><input type="text" name="attr_weighttotal" class='sheet-short'/>
|
||||
</div>
|
||||
<div class="col" style="width: 500px;">
|
||||
<label data-i18n="possessions" style="width: 324px; padding-left: 5px;" class="header">Possessions</label><label data-i18n="localization" style="width: 150px;" class="header">Localisation</label>
|
||||
<fieldset class="repeating_possessions">
|
||||
<input type="text" name="attr_possessions" style="width: 340px;" /><input type="text" name="attr_loca_possessions" style="width: 160px;" />
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
<hr/>
|
||||
<div>
|
||||
<div class="col" style="width: 466px;">
|
||||
<label data-i18n="mithril" style="width: 56px; padding-left: 5px;" class="header">Mithril</label><label data-i18n="gold" style="width: 60px;" class="header">Or</label><label data-i18n="silver" style="width: 60px;" class="header">Argent</label><label data-i18n="bronze" style="width: 60px;" class="header">Bronze</label><label data-i18n="copper" style="width: 60px;" class="header">Cuivre</label><label data-i18n="iron" style="width: 58px;" class="header">Fer</label>
|
||||
<input type="number" name="attr_pm" style="width: 70px;" /><input type="number" name="attr_po" style="width: 70px;" /><input type="number" name="attr_pa" style="width: 70px;" /><input type="number" name="attr_pb" style="width: 70px;" /><input type="number" name="attr_pc" style="width: 70px;" /><input type="number" name="attr_pf" style="width: 70px;" />
|
||||
</div>
|
||||
</div>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<div class='sheet-magic'>
|
||||
<span>
|
||||
<div class="col" style="width: 950px;">
|
||||
<label data-i18n="show" style="width: 45px; padding-left: 5px;" class="header">Afficher</label><label data-i18n="spelllists" style="width: 290px;" class="header">Listes de sorts</label><label data-i18n="realm" style="width: 90px;" class="header">Royaume</label><label data-i18n="listtype" style="width: 90px;" class="header">Type de liste</label><label data-i18n="levelmax" style="width: 70px;" class="header">Niveau max</label><label data-i18n="learnchances" style="width: 70px;" class="header">%Apprent.</label><label data-i18n="bookandpage" style="width: 137px;" class="header">Manuel et page</label>
|
||||
<br>
|
||||
<input type="checkbox" class="sheet-toggle-show-1" style="width: 57px;"/><input type="text" name="attr_spell_list_1_nom" style="width: 300px;" /><input type="text" name="attr_spell_list_1_royaume" style="width: 100px;" /><input type="text" name="attr_spell_list_1_type" style="width: 100px;" /><input type="text" name="attr_spell_list_1_niveau" style="width: 80px;" /><input type="text" name="attr_spell_list_1_pourcentage" style="width: 80px;" /><input type="text" name="attr_spell_list_1_page" style="width: 150px;" />
|
||||
<div class="sheet-body-1">
|
||||
<label data-i18n="level" style="width: 37px; padding-left: 5px;" class="header">Niveau</label><label data-i18n="spellname" style="width: 190px;" class="header">Nom</label><label data-i18n="spellclass" style="width: 60px;" class="header">Classe</label><label data-i18n="spellduration" style="width: 60px;" class="header">Durée</label><label data-i18n="spellrange" style="width: 60px;" class="header">Portée</label><label data-i18n="description" style="width: 427px;" class="header">Description</label>
|
||||
<fieldset class="repeating_spell-1">
|
||||
<input type="text" name="attr_spell_niveau-1" style="width: 50px;" /><input type="text" name="attr_spell_nom-1" style="width: 200px;" /><input type="text" name="attr_spell_classe-1" style="width: 70px;" /><input type="text" name="attr_spell_duree-1" style="width: 70px;" /><input type="text" name="attr_spell_portee-1" style="width: 70px;" /><input type="text" name="attr_spell_descri-1" style="width: 439px;" /><button type='roll' name='roll_testattack' value='&{template:custom} {{title=@{spell_nom-1}}} {{^{level}=@{spell_niveau-1}}} {{^{spellclass}=@{spell_classe-1}}} {{^{spellduration}=@{spell_duree-1}}} {{^{spellrange}=@{spell_portee-1}}} {{desc=@{spell_descri-1}}}'></button>
|
||||
</fieldset>
|
||||
</div>
|
||||
<br>
|
||||
<input type="checkbox" class="sheet-toggle-show-2" style="width: 57px;"/><input type="text" name="attr_spell_list_2_nom" style="width: 300px;" /><input type="text" name="attr_spell_list_2_royaume" style="width: 100px;" /><input type="text" name="attr_spell_list_2_type" style="width: 100px;" /><input type="text" name="attr_spell_list_2_niveau" style="width: 80px;" /><input type="text" name="attr_spell_list_2_pourcentage" style="width: 80px;" /><input type="text" name="attr_spell_list_2_page" style="width: 150px;" />
|
||||
<div class="sheet-body-2">
|
||||
<label data-i18n="level" style="width: 37px; padding-left: 5px;" class="header">Niveau</label><label data-i18n="spellname" style="width: 190px;" class="header">Nom</label><label data-i18n="spellclass" style="width: 60px;" class="header">Classe</label><label data-i18n="spellduration" style="width: 60px;" class="header">Durée</label><label data-i18n="spellrange" style="width: 60px;" class="header">Portée</label><label data-i18n="description" style="width: 427px;" class="header">Description</label>
|
||||
<fieldset class="repeating_spell-2">
|
||||
<input type="text" name="attr_spell_niveau-1" style="width: 50px;" /><input type="text" name="attr_spell_nom-1" style="width: 200px;" /><input type="text" name="attr_spell_classe-1" style="width: 70px;" /><input type="text" name="attr_spell_duree-1" style="width: 70px;" /><input type="text" name="attr_spell_portee-1" style="width: 70px;" /><input type="text" name="attr_spell_descri-1" style="width: 439px;" /><button type='roll' name='roll_testattack' value='&{template:custom} {{title=@{spell_nom-1}}} {{^{level}=@{spell_niveau-1}}} {{^{spellclass}=@{spell_classe-1}}} {{^{spellduration}=@{spell_duree-1}}} {{^{spellrange}=@{spell_portee-1}}} {{desc=@{spell_descri-1}}}'></button>
|
||||
</fieldset>
|
||||
</div>
|
||||
<br>
|
||||
<input type="checkbox" class="sheet-toggle-show-3" style="width: 57px;"/><input type="text" name="attr_spell_list_3_nom" style="width: 300px;" /><input type="text" name="attr_spell_list_3_royaume" style="width: 100px;" /><input type="text" name="attr_spell_list_3_type" style="width: 100px;" /><input type="text" name="attr_spell_list_3_niveau" style="width: 80px;" /><input type="text" name="attr_spell_list_3_pourcentage" style="width: 80px;" /><input type="text" name="attr_spell_list_3_page" style="width: 150px;" />
|
||||
<div class="sheet-body-3">
|
||||
<label data-i18n="level" style="width: 37px; padding-left: 5px;" class="header">Niveau</label><label data-i18n="spellname" style="width: 190px;" class="header">Nom</label><label data-i18n="spellclass" style="width: 60px;" class="header">Classe</label><label data-i18n="spellduration" style="width: 60px;" class="header">Durée</label><label data-i18n="spellrange" style="width: 60px;" class="header">Portée</label><label data-i18n="description" style="width: 427px;" class="header">Description</label>
|
||||
<fieldset class="repeating_spell-3">
|
||||
<input type="text" name="attr_spell_niveau-1" style="width: 50px;" /><input type="text" name="attr_spell_nom-1" style="width: 200px;" /><input type="text" name="attr_spell_classe-1" style="width: 70px;" /><input type="text" name="attr_spell_duree-1" style="width: 70px;" /><input type="text" name="attr_spell_portee-1" style="width: 70px;" /><input type="text" name="attr_spell_descri-1" style="width: 439px;" /><button type='roll' name='roll_testattack' value='&{template:custom} {{title=@{spell_nom-1}}} {{^{level}=@{spell_niveau-1}}} {{^{spellclass}=@{spell_classe-1}}} {{^{spellduration}=@{spell_duree-1}}} {{^{spellrange}=@{spell_portee-1}}} {{desc=@{spell_descri-1}}}'></button>
|
||||
</fieldset>
|
||||
</div>
|
||||
<br>
|
||||
<input type="checkbox" class="sheet-toggle-show-4" style="width: 57px;"/><input type="text" name="attr_spell_list_4_nom" style="width: 300px;" /><input type="text" name="attr_spell_list_4_royaume" style="width: 100px;" /><input type="text" name="attr_spell_list_4_type" style="width: 100px;" /><input type="text" name="attr_spell_list_4_niveau" style="width: 80px;" /><input type="text" name="attr_spell_list_4_pourcentage" style="width: 80px;" /><input type="text" name="attr_spell_list_4_page" style="width: 150px;" />
|
||||
<div class="sheet-body-4">
|
||||
<label data-i18n="level" style="width: 37px; padding-left: 5px;" class="header">Niveau</label><label data-i18n="spellname" style="width: 190px;" class="header">Nom</label><label data-i18n="spellclass" style="width: 60px;" class="header">Classe</label><label data-i18n="spellduration" style="width: 60px;" class="header">Durée</label><label data-i18n="spellrange" style="width: 60px;" class="header">Portée</label><label data-i18n="description" style="width: 427px;" class="header">Description</label>
|
||||
<fieldset class="repeating_spell-4">
|
||||
<input type="text" name="attr_spell_niveau-1" style="width: 50px;" /><input type="text" name="attr_spell_nom-1" style="width: 200px;" /><input type="text" name="attr_spell_classe-1" style="width: 70px;" /><input type="text" name="attr_spell_duree-1" style="width: 70px;" /><input type="text" name="attr_spell_portee-1" style="width: 70px;" /><input type="text" name="attr_spell_descri-1" style="width: 439px;" /><button type='roll' name='roll_testattack' value='&{template:custom} {{title=@{spell_nom-1}}} {{^{level}=@{spell_niveau-1}}} {{^{spellclass}=@{spell_classe-1}}} {{^{spellduration}=@{spell_duree-1}}} {{^{spellrange}=@{spell_portee-1}}} {{desc=@{spell_descri-1}}}'></button>
|
||||
</fieldset>
|
||||
</div>
|
||||
<br>
|
||||
<input type="checkbox" class="sheet-toggle-show-5" style="width: 57px;"/><input type="text" name="attr_spell_list_5_nom" style="width: 300px;" /><input type="text" name="attr_spell_list_5_royaume" style="width: 100px;" /><input type="text" name="attr_spell_list_5_type" style="width: 100px;" /><input type="text" name="attr_spell_list_5_niveau" style="width: 80px;" /><input type="text" name="attr_spell_list_5_pourcentage" style="width: 80px;" /><input type="text" name="attr_spell_list_5_page" style="width: 150px;" />
|
||||
<div class="sheet-body-5">
|
||||
<label data-i18n="level" style="width: 37px; padding-left: 5px;" class="header">Niveau</label><label data-i18n="spellname" style="width: 190px;" class="header">Nom</label><label data-i18n="spellclass" style="width: 60px;" class="header">Classe</label><label data-i18n="spellduration" style="width: 60px;" class="header">Durée</label><label data-i18n="spellrange" style="width: 60px;" class="header">Portée</label><label data-i18n="description" style="width: 427px;" class="header">Description</label>
|
||||
<fieldset class="repeating_spell-5">
|
||||
<input type="text" name="attr_spell_niveau-1" style="width: 50px;" /><input type="text" name="attr_spell_nom-1" style="width: 200px;" /><input type="text" name="attr_spell_classe-1" style="width: 70px;" /><input type="text" name="attr_spell_duree-1" style="width: 70px;" /><input type="text" name="attr_spell_portee-1" style="width: 70px;" /><input type="text" name="attr_spell_descri-1" style="width: 439px;" /><button type='roll' name='roll_testattack' value='&{template:custom} {{title=@{spell_nom-1}}} {{^{level}=@{spell_niveau-1}}} {{^{spellclass}=@{spell_classe-1}}} {{^{spellduration}=@{spell_duree-1}}} {{^{spellrange}=@{spell_portee-1}}} {{desc=@{spell_descri-1}}}'></button>
|
||||
</fieldset>
|
||||
</div>
|
||||
<br>
|
||||
<input type="checkbox" class="sheet-toggle-show-6" style="width: 57px;"/><input type="text" name="attr_spell_list_6_nom" style="width: 300px;" /><input type="text" name="attr_spell_list_6_royaume" style="width: 100px;" /><input type="text" name="attr_spell_list_6_type" style="width: 100px;" /><input type="text" name="attr_spell_list_6_niveau" style="width: 80px;" /><input type="text" name="attr_spell_list_6_pourcentage" style="width: 80px;" /><input type="text" name="attr_spell_list_6_page" style="width: 150px;" />
|
||||
<div class="sheet-body-6">
|
||||
<label data-i18n="level" style="width: 37px; padding-left: 5px;" class="header">Niveau</label><label data-i18n="spellname" style="width: 190px;" class="header">Nom</label><label data-i18n="spellclass" style="width: 60px;" class="header">Classe</label><label data-i18n="spellduration" style="width: 60px;" class="header">Durée</label><label data-i18n="spellrange" style="width: 60px;" class="header">Portée</label><label data-i18n="description" style="width: 427px;" class="header">Description</label>
|
||||
<fieldset class="repeating_spell-6">
|
||||
<input type="text" name="attr_spell_niveau-1" style="width: 50px;" /><input type="text" name="attr_spell_nom-1" style="width: 200px;" /><input type="text" name="attr_spell_classe-1" style="width: 70px;" /><input type="text" name="attr_spell_duree-1" style="width: 70px;" /><input type="text" name="attr_spell_portee-1" style="width: 70px;" /><input type="text" name="attr_spell_descri-1" style="width: 439px;" /><button type='roll' name='roll_testattack' value='&{template:custom} {{title=@{spell_nom-1}}} {{^{level}=@{spell_niveau-1}}} {{^{spellclass}=@{spell_classe-1}}} {{^{spellduration}=@{spell_duree-1}}} {{^{spellrange}=@{spell_portee-1}}} {{desc=@{spell_descri-1}}}'></button>
|
||||
</fieldset>
|
||||
</div>
|
||||
<br>
|
||||
<input type="checkbox" class="sheet-toggle-show-7" style="width: 57px;"/><input type="text" name="attr_spell_list_7_nom" style="width: 300px;" /><input type="text" name="attr_spell_list_7_royaume" style="width: 100px;" /><input type="text" name="attr_spell_list_7_type" style="width: 100px;" /><input type="text" name="attr_spell_list_7_niveau" style="width: 80px;" /><input type="text" name="attr_spell_list_7_pourcentage" style="width: 80px;" /><input type="text" name="attr_spell_list_7_page" style="width: 150px;" />
|
||||
<div class="sheet-body-7">
|
||||
<label data-i18n="level" style="width: 37px; padding-left: 5px;" class="header">Niveau</label><label data-i18n="spellname" style="width: 190px;" class="header">Nom</label><label data-i18n="spellclass" style="width: 60px;" class="header">Classe</label><label data-i18n="spellduration" style="width: 60px;" class="header">Durée</label><label data-i18n="spellrange" style="width: 60px;" class="header">Portée</label><label data-i18n="description" style="width: 427px;" class="header">Description</label>
|
||||
<fieldset class="repeating_spell-7">
|
||||
<input type="text" name="attr_spell_niveau-1" style="width: 50px;" /><input type="text" name="attr_spell_nom-1" style="width: 200px;" /><input type="text" name="attr_spell_classe-1" style="width: 70px;" /><input type="text" name="attr_spell_duree-1" style="width: 70px;" /><input type="text" name="attr_spell_portee-1" style="width: 70px;" /><input type="text" name="attr_spell_descri-1" style="width: 439px;" /><button type='roll' name='roll_testattack' value='&{template:custom} {{title=@{spell_nom-1}}} {{^{level}=@{spell_niveau-1}}} {{^{spellclass}=@{spell_classe-1}}} {{^{spellduration}=@{spell_duree-1}}} {{^{spellrange}=@{spell_portee-1}}} {{desc=@{spell_descri-1}}}'></button>
|
||||
</fieldset>
|
||||
</div>
|
||||
<br>
|
||||
<input type="checkbox" class="sheet-toggle-show-8" style="width: 57px;"/><input type="text" name="attr_spell_list_8_nom" style="width: 300px;" /><input type="text" name="attr_spell_list_8_royaume" style="width: 100px;" /><input type="text" name="attr_spell_list_8_type" style="width: 100px;" /><input type="text" name="attr_spell_list_8_niveau" style="width: 80px;" /><input type="text" name="attr_spell_list_8_pourcentage" style="width: 80px;" /><input type="text" name="attr_spell_list_8_page" style="width: 150px;" />
|
||||
<div class="sheet-body-8">
|
||||
<label data-i18n="level" style="width: 37px; padding-left: 5px;" class="header">Niveau</label><label data-i18n="spellname" style="width: 190px;" class="header">Nom</label><label data-i18n="spellclass" style="width: 60px;" class="header">Classe</label><label data-i18n="spellduration" style="width: 60px;" class="header">Durée</label><label data-i18n="spellrange" style="width: 60px;" class="header">Portée</label><label data-i18n="description" style="width: 427px;" class="header">Description</label>
|
||||
<fieldset class="repeating_spell-8">
|
||||
<input type="text" name="attr_spell_niveau-1" style="width: 50px;" /><input type="text" name="attr_spell_nom-1" style="width: 200px;" /><input type="text" name="attr_spell_classe-1" style="width: 70px;" /><input type="text" name="attr_spell_duree-1" style="width: 70px;" /><input type="text" name="attr_spell_portee-1" style="width: 70px;" /><input type="text" name="attr_spell_descri-1" style="width: 439px;" /><button type='roll' name='roll_testattack' value='&{template:custom} {{title=@{spell_nom-1}}} {{^{level}=@{spell_niveau-1}}} {{^{spellclass}=@{spell_classe-1}}} {{^{spellduration}=@{spell_duree-1}}} {{^{spellrange}=@{spell_portee-1}}} {{desc=@{spell_descri-1}}}'></button>
|
||||
</fieldset>
|
||||
</div>
|
||||
<br>
|
||||
<input type="checkbox" class="sheet-toggle-show-9" style="width: 57px;"/><input type="text" name="attr_spell_list_9_nom" style="width: 300px;" /><input type="text" name="attr_spell_list_9_royaume" style="width: 100px;" /><input type="text" name="attr_spell_list_9_type" style="width: 100px;" /><input type="text" name="attr_spell_list_9_niveau" style="width: 80px;" /><input type="text" name="attr_spell_list_9_pourcentage" style="width: 80px;" /><input type="text" name="attr_spell_list_9_page" style="width: 150px;" />
|
||||
<div class="sheet-body-9">
|
||||
<label data-i18n="level" style="width: 37px; padding-left: 5px;" class="header">Niveau</label><label data-i18n="spellname" style="width: 190px;" class="header">Nom</label><label data-i18n="spellclass" style="width: 60px;" class="header">Classe</label><label data-i18n="spellduration" style="width: 60px;" class="header">Durée</label><label data-i18n="spellrange" style="width: 60px;" class="header">Portée</label><label data-i18n="description" style="width: 427px;" class="header">Description</label>
|
||||
<fieldset class="repeating_spell-9">
|
||||
<input type="text" name="attr_spell_niveau-1" style="width: 50px;" /><input type="text" name="attr_spell_nom-1" style="width: 200px;" /><input type="text" name="attr_spell_classe-1" style="width: 70px;" /><input type="text" name="attr_spell_duree-1" style="width: 70px;" /><input type="text" name="attr_spell_portee-1" style="width: 70px;" /><input type="text" name="attr_spell_descri-1" style="width: 439px;" /><button type='roll' name='roll_testattack' value='&{template:custom} {{title=@{spell_nom-1}}} {{^{level}=@{spell_niveau-1}}} {{^{spellclass}=@{spell_classe-1}}} {{^{spellduration}=@{spell_duree-1}}} {{^{spellrange}=@{spell_portee-1}}} {{desc=@{spell_descri-1}}}'></button>
|
||||
</fieldset>
|
||||
</div>
|
||||
<br>
|
||||
<input type="checkbox" class="sheet-toggle-show-10" style="width: 57px;"/><input type="text" name="attr_spell_list_10_nom" style="width: 300px;" /><input type="text" name="attr_spell_list_10_royaume" style="width: 100px;" /><input type="text" name="attr_spell_list_10_type" style="width: 100px;" /><input type="text" name="attr_spell_list_10_niveau" style="width: 80px;" /><input type="text" name="attr_spell_list_10_pourcentage" style="width: 80px;" /><input type="text" name="attr_spell_list_10_page" style="width: 150px;" />
|
||||
<div class="sheet-body-10">
|
||||
<label data-i18n="level" style="width: 37px; padding-left: 5px;" class="header">Niveau</label><label data-i18n="spellname" style="width: 190px;" class="header">Nom</label><label data-i18n="spellclass" style="width: 60px;" class="header">Classe</label><label data-i18n="spellduration" style="width: 60px;" class="header">Durée</label><label data-i18n="spellrange" style="width: 60px;" class="header">Portée</label><label data-i18n="description" style="width: 427px;" class="header">Description</label>
|
||||
<fieldset class="repeating_spell-10">
|
||||
<input type="text" name="attr_spell_niveau-1" style="width: 50px;" /><input type="text" name="attr_spell_nom-1" style="width: 200px;" /><input type="text" name="attr_spell_classe-1" style="width: 70px;" /><input type="text" name="attr_spell_duree-1" style="width: 70px;" /><input type="text" name="attr_spell_portee-1" style="width: 70px;" /><input type="text" name="attr_spell_descri-1" style="width: 439px;" /><button type='roll' name='roll_testattack' value='&{template:custom} {{title=@{spell_nom-1}}} {{^{level}=@{spell_niveau-1}}} {{^{spellclass}=@{spell_classe-1}}} {{^{spellduration}=@{spell_duree-1}}} {{^{spellrange}=@{spell_portee-1}}} {{desc=@{spell_descri-1}}}'></button>
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<div class='sheet-settings'>
|
||||
|
||||
<label data-i18n="totalhpcalcmode" style="width: 200px;"/>Total HP calculation mode:</label>
|
||||
<select name="attr_totalhpcalculation">
|
||||
<option data-i18n="legacycalc" value="1" selected="selected">Legacy calculations</option>
|
||||
<option data-i18n="nocalc" value="0">No calculations</option>
|
||||
</select>
|
||||
<p data-i18n="hpcalcdescription">Choose the Total HP calculation. In Legacy, the Total HP equals the Base HP + Base HP * (constitution bonus / 100). If you choose No Calculations, Total HP is not automatically calculated and you will need to enter the value manually. If you do that, you don't have to use the Base HP value.</p>
|
||||
|
||||
<label data-i18n="professionbonusmode" style="width: 200px;"/>Profession bonus mode:</label>
|
||||
<select name="attr_professionbonuscalcmode">
|
||||
<option data-i18n="legacyprofbonus" value="0" selected="selected">Legacy profession bonus</option>
|
||||
<option data-i18n="flatprofbonus" value="1">Flat profession bonus</option>
|
||||
</select>
|
||||
<p data-i18n="profbonusmodedescription">Placeholder</p>
|
||||
</div>
|
||||
|
||||
<rolltemplate class="sheet-rolltemplate-custom">
|
||||
<div class="sheet-container sheet-color-{{color}}">
|
||||
<div class="sheet-header">
|
||||
{{#title}}<div class="sheet-title">{{title}}</div>{{/title}}
|
||||
{{#subtitle}}<div class="sheet-subtitle">{{subtitle}}</div>{{/subtitle}}
|
||||
</div>
|
||||
<div class="sheet-content">
|
||||
{{#allprops() title subtitle desc color}}
|
||||
<div class="sheet-key">{{key}}</div>
|
||||
<div class="sheet-value">{{value}}</div>
|
||||
{{/allprops() title subtitle desc color}}
|
||||
{{#desc}}<div class="sheet-desc">{{desc}}</div>{{/desc}}
|
||||
</div>
|
||||
</div>
|
||||
</rolltemplate>
|
||||
|
||||
<script type="text/worker">
|
||||
const buttonlist = ["character","equipment","magic", "settings"];
|
||||
buttonlist.forEach(button => {
|
||||
on(`clicked:${button}`, function() {
|
||||
setAttrs({
|
||||
sheetTab: button
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
const repeatingSum = (destinations, section, fields, ...extras) => {
|
||||
const isNumber = value => parseFloat(value).toString() === value.toString();
|
||||
const isOption = value => [...checks.valid, ...checks.roundtypes].includes(value);
|
||||
const isRounding = value => checks.roundtypes.includes(value);
|
||||
const isFraction = value => value.includes('/') && !(value.includes(',') || value.includes('|'));
|
||||
const getTrimmed = value => value.toLowerCase().replace(/\s/g, '');
|
||||
const getRounded = (type, value, pow) => (Math[type](value * Math.pow(10, pow)) / Math.pow(10, pow)).toFixed(Math.max(0, pow));
|
||||
const getFraction = (value) => /*{ console.log(`value: ${value}`); */
|
||||
parseInt(value.split('/')[0]) / parseInt(value.split('/')[1]);
|
||||
const getMultiplier = (value, rounding = 1) => 'undefined' === typeof value ? (rounding ? 0: 1) : (
|
||||
isNumber(value) ? parseFloat(value) : (isFraction(value) ? getFraction(value) : value));
|
||||
if (!Array.isArray(destinations)) destinations = [getTrimmed(destinations)];
|
||||
if (!Array.isArray(fields)) fields = [getTrimmed(fields)];
|
||||
const fields_trimmed = fields.map(field => getTrimmed(field).split(':')[0]);
|
||||
const subfields = fields_trimmed.slice(0,destinations.length);
|
||||
const checks = { valid: ['multiplier'], roundtypes: ['ceil', 'round', 'floor'] };
|
||||
let properties = {attributes: {}, options: {}};
|
||||
extras.forEach(extra => {
|
||||
const [prop, v] = getTrimmed(extra).split(':');
|
||||
const multiplier_maybe = getMultiplier(v, isRounding(prop));
|
||||
const obj = isNumber(multiplier_maybe) ? subfields.reduce((obj,field) => {
|
||||
obj[field] = multiplier_maybe;
|
||||
return obj;
|
||||
},{}) : multiplier_maybe.split(',').reduce((obj, item) => {
|
||||
const [stat, value] = item.split('|');
|
||||
const multiplier = getMultiplier(value, isRounding(prop));
|
||||
obj[stat] = multiplier;
|
||||
return obj;
|
||||
}, {});
|
||||
properties[isOption(prop) ? 'options' : 'attributes'][prop] = obj;
|
||||
});
|
||||
getSectionIDs(`repeating_${section}`, idArray => {
|
||||
const attrArray = idArray.reduce((m, id) => [...m, ...(fields_trimmed.map(field => `repeating_${section}_${id}_${field}`))], []);
|
||||
getAttrs([...attrArray, ...Object.keys(properties.attributes)], v => {
|
||||
const getValue = (section, id, field) => v[`repeating_${section}_${id}_${field}`] === 'on' ? 1 : parseFloat(v[`repeating_${section}_${id}_${field}`]) || 0;
|
||||
const commonMultipliers = (fields.length <= destinations.length) ? [] : fields.splice(destinations.length, fields.length - destinations.length);
|
||||
const output = destinations.reduce((obj, destination, index) => {
|
||||
let sumTotal = idArray.reduce((total, id) => total + getValue(section, id, fields_trimmed[index]) * commonMultipliers.reduce((subtotal, mult) => subtotal * ((!mult.includes(':') || mult.split(':')[1].split(',').includes(fields_trimmed[index])) ? getValue(section, id, mult.split(':')[0]) : 1), 1), 0);
|
||||
sumTotal *= (properties.options.hasOwnProperty('multiplier') && Object.keys(properties.options.multiplier).includes(fields_trimmed[index])) ? (parseFloat(properties.options.multiplier[fields_trimmed[index]]) || 0): 1;
|
||||
sumTotal += Object.entries(properties.attributes).reduce((total, [key, value]) =>
|
||||
total += (value.hasOwnProperty(fields_trimmed[index]) ? parseFloat(v[key] || 0) * (parseFloat(value[fields_trimmed[index]]) || 1): 0) , 0);
|
||||
checks.roundtypes.forEach(type => {
|
||||
if (properties.options.hasOwnProperty(type)) {
|
||||
if (Object.keys(properties.options[type]).includes(fields_trimmed[index])) {
|
||||
sumTotal = getRounded(type, sumTotal, (+properties.options[type][fields_trimmed[index]] || 0));
|
||||
} else if (properties.options[type] == '0' || !isNaN(+properties.options[type] || 'x') ) {
|
||||
sumTotal = getRounded(type, sumTotal, +properties.options[type]);
|
||||
}
|
||||
}
|
||||
});
|
||||
obj[destination] = sumTotal;
|
||||
return obj;
|
||||
}, {});
|
||||
setAttrs(output);
|
||||
});
|
||||
});
|
||||
};
|
||||
on('change:repeating_equipment:poids_equipment remove:repeating_equipment change:weighttotal', function() {
|
||||
repeatingSum('weighttotal','equipment','poids_equipment','round:2');
|
||||
});
|
||||
|
||||
on('change:hp_base change:base_constitution change:race_constitution change:totalhpcalculation change:hp_max', () => {
|
||||
getAttrs(['hp_base','base_constitution','race_constitution','totalhpcalculation'], values => {
|
||||
const base = parseInt( values.hp_base) || 0;
|
||||
const basemod = parseInt( values.base_constitution) || 0;
|
||||
const racemod = parseInt( values.race_constitution) || 0;
|
||||
const check = parseInt( values.totalhpcalculation) || 0;
|
||||
// check to see if calculation is on or off. If off, end the sheet worker.
|
||||
if(check==0) return;
|
||||
// calculate hp
|
||||
const hp = Math.round(base * (1+ ((basemod + racemod) / 100)));
|
||||
// update hp attribute on sheet.
|
||||
setAttrs({
|
||||
hp_max: hp
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
on('change:repeating_skills:prof_skillname change:professionbonuscalcmode change:niveau', () => {
|
||||
getSectionIDs('repeating_skills', ids => {
|
||||
// get an array of names for the skillname attribute across all rows.
|
||||
// getSectionIDs gives an array of the row ids.
|
||||
const fieldnames = [];
|
||||
ids.forEach(id => fieldnames.push(`repeating_skills_${id}_prof_skillname`));
|
||||
|
||||
// now getAttrs can use that array to get the attributes from all rows
|
||||
getAttrs([...fieldnames,'niveau', 'professionbonuscalcmode'], values => {
|
||||
// get the values of the attributes outside the repeating section
|
||||
const level = parseInt( values.niveau) || 0;
|
||||
const check = parseInt( values.professionbonuscalcmode) || 0;
|
||||
|
||||
// create a variable to hold all the stats that need to be updated
|
||||
const output = {};
|
||||
// now loop through the row ids again
|
||||
ids.forEach(id => {
|
||||
// get the value of the prof_skillname attribute for this specific row.
|
||||
const prof = parseInt( values[`repeating_skills_${id}_prof_skillname`]) || 0;
|
||||
|
||||
// check to see if calculation is 1 or 0. Use triple equality to match properly.
|
||||
if(check === 0) {
|
||||
const profbonus = prof*level;
|
||||
output[`repeating_skills_${id}_profbonus_skillname`] = profbonus;
|
||||
} else if(check === 1) {
|
||||
const profbonus = prof;
|
||||
output[`repeating_skills_${id}_profbonus_skillname`] = profbonus;
|
||||
}
|
||||
});
|
||||
// save the collected attributes.
|
||||
setAttrs(output);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
on('change:repeating_secondaryskills:prof_skillname change:professionbonuscalcmode change:niveau', () => {
|
||||
getSectionIDs('repeating_secondaryskills', ids => {
|
||||
// get an array of names for the skillname attribute across all rows.
|
||||
// getSectionIDs gives an array of the row ids.
|
||||
const fieldnames = [];
|
||||
ids.forEach(id => fieldnames.push(`repeating_secondaryskills_${id}_prof_skillname`));
|
||||
|
||||
// now getAttrs can use that array to get the attributes from all rows
|
||||
getAttrs([...fieldnames,'niveau', 'professionbonuscalcmode'], values => {
|
||||
// get the values of the attributes outside the repeating section
|
||||
const level = parseInt( values.niveau) || 0;
|
||||
const check = parseInt( values.professionbonuscalcmode) || 0;
|
||||
|
||||
// create a variable to hold all the stats that need to be updated
|
||||
const output = {};
|
||||
// now loop through the row ids again
|
||||
ids.forEach(id => {
|
||||
// get the value of the prof_skillname attribute for this specific row.
|
||||
const prof = parseInt( values[`repeating_secondaryskills_${id}_prof_skillname`]) || 0;
|
||||
|
||||
// check to see if calculation is 1 or 0. Use triple equality to match properly.
|
||||
if(check === 0) {
|
||||
const profbonus = prof*level;
|
||||
output[`repeating_secondaryskills_${id}_profbonus_skillname`] = profbonus;
|
||||
} else if(check === 1) {
|
||||
const profbonus = prof;
|
||||
output[`repeating_secondaryskills_${id}_profbonus_skillname`] = profbonus;
|
||||
}
|
||||
});
|
||||
// save the collected attributes.
|
||||
setAttrs(output);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
</script>
|
||||
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 156 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 77 KiB |
@@ -0,0 +1,32 @@
|
||||
{
|
||||
"html": "Rolemaster_2nd-classic.html",
|
||||
"css": "Rolemaster_2nd-classic.css",
|
||||
"authors": "Thibaut 'Onirim' C.",
|
||||
"preview": "Rolemaster_2nd-classic.png",
|
||||
"instructions": "A Rolemaster 1st, 2nd, Express & Classic edition sheet in vintage colors. The character sheet don't use auto-calculations for stats for the sake of simplicity and adaptability. The sheet is compatible with the most options of Rolemaster 2nd and Classic. I plan to add a configuration page for supporting some options. RM2/RMC is all about options so the auto-calculations will remain limited. The character sheet is compatible with the first Rolemaster family (RM1, RM2, RMX, RMC), but is not compatible with the Standard System/Fantasy Roleplaying family.",
|
||||
"useroptions":
|
||||
[
|
||||
{
|
||||
"attribute": "totalhpcalculation",
|
||||
"displayname": "Mode of Total HP calculations: ",
|
||||
"type": "select",
|
||||
"options": [
|
||||
"Legacy calculation|1",
|
||||
"No calculation|0"
|
||||
],
|
||||
"default": "1",
|
||||
"description": "Choose the Total HP calculation. In Legacy, the Total HP equals the Base HP + Base HP * (constitution bonus / 100). If you choose No Calculations, Total HP is not automatically calculated and you will need to enter the value manually. If you do that, you don't have to use the Base HP value."
|
||||
},
|
||||
{
|
||||
"attribute": "professionbonuscalcmode",
|
||||
"displayname": "Mode of professional bonus calculations: ",
|
||||
"type": "select",
|
||||
"options": [
|
||||
"Per level|0",
|
||||
"Flat bonus|1"
|
||||
],
|
||||
"default": "0",
|
||||
"description": "Choose the mode of professional bonus calculations. By the legacy rules, the professional bonus is multiplied by the character level. You can also choice the flat bonus option, in this case, the professional bonus don't scale with the caracter level."
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,109 @@
|
||||
{
|
||||
"race": "Race",
|
||||
"profession": "Profession",
|
||||
"level": "Niveau",
|
||||
"experience": "Exp.",
|
||||
"character": "Personnage",
|
||||
"equipment": "Equipement",
|
||||
"magic": "Magie",
|
||||
"settings": "Config.",
|
||||
"realmpower": "Roy. pouvoir",
|
||||
"powerpoints": "Pts pouvoir",
|
||||
"basehp": "PdC base",
|
||||
"totalhp": "PdC total",
|
||||
"actualhp": "PdC actuels",
|
||||
"attributes": "Caractéristiques",
|
||||
"temporary-abbr": "Temp.",
|
||||
"potential-abbr": "Pot.",
|
||||
"development-abbr": "Dev.",
|
||||
"base-abbr": "Base",
|
||||
"race-abbr": "Race",
|
||||
"total-abbr": "Total",
|
||||
"constitution": "Constitution",
|
||||
"agility": "Agilité",
|
||||
"selfdiscipline": "Autodiscipline",
|
||||
"memory": "Mémoire",
|
||||
"reasoning": "Raisonnement",
|
||||
"strength": "Force",
|
||||
"quickness": "Rapidité",
|
||||
"presence": "Présence",
|
||||
"empathy": "Empathie",
|
||||
"intuition": "Intuition",
|
||||
"defenses": "Défenses",
|
||||
"armor-at": "Armure (TA)",
|
||||
"defensivebonus-db": "Bonus défensif (BD)",
|
||||
"withshield": "Avec bouclier",
|
||||
"movementpenalty": "Malus mouv.",
|
||||
"helmet": "Casque",
|
||||
"armgreaves": "Brassards",
|
||||
"leggreaves": "Jambières",
|
||||
"distancepenalty": "Malus tir",
|
||||
"wounds": "Blessures",
|
||||
"languages": "Langages",
|
||||
"spoken": "parlé",
|
||||
"writen": "écrit",
|
||||
"miscellaneous": "Divers",
|
||||
"hitdice": "Dé de vie",
|
||||
"developmentpoints": "Pts de Dév",
|
||||
"primaryskills": "Comp. principales",
|
||||
"attributemod-abbr": "Mod. carac",
|
||||
"cost": "Coût",
|
||||
"profession-abbr": "Prof.",
|
||||
"nbranks": "#Rangs",
|
||||
"attribute-abbr": "Carac.",
|
||||
"miscellaneous-abbr": "Div.",
|
||||
"item-abbr": "Obj.",
|
||||
"secondaryskills": "Comp. secondaires",
|
||||
"weaponskills": "Compétences d'armes",
|
||||
"ob": "BO",
|
||||
"db": "BD",
|
||||
"resistances": "Résistances",
|
||||
"notes": "Notes",
|
||||
"weight": "Poids kg",
|
||||
"possessions": "Possessions",
|
||||
"mithril": "Mithril",
|
||||
"gold": "Or",
|
||||
"silver": "Argent",
|
||||
"bronze": "Bronze",
|
||||
"copper": "Cuivre",
|
||||
"iron": "Fer",
|
||||
"show": "Afficher",
|
||||
"localization": "Localisation",
|
||||
"spelllists": "Listes de sorts",
|
||||
"realm": "Royaume",
|
||||
"listtype": "Type de liste",
|
||||
"levelmax": "Niv. max",
|
||||
"learnchances": "%Apprent.",
|
||||
"bookandpage": "Manuel et page",
|
||||
"spellname": "Nom",
|
||||
"spellclass": "Classe",
|
||||
"spellduration": "Durée",
|
||||
"spellrange": "Portée",
|
||||
"description": "Description",
|
||||
"relations": "Relations",
|
||||
"constitutioncheck": "Jet de constitution",
|
||||
"agilitycheck": "Jet d'agilité",
|
||||
"selfdisciplinecheck": "Jet d'autodiscipline",
|
||||
"memorycheck": "Jet de mémoire",
|
||||
"reasoningcheck": "Jet de raisonnement",
|
||||
"strengthcheck": "Jet de force",
|
||||
"quicknesscheck": "Jet de rapidité",
|
||||
"presencecheck": "Jet de présence",
|
||||
"empathycheck": "Jet d'empathie",
|
||||
"intuitioncheck": "Jet d'intuition",
|
||||
"resistancecheck": "Jet de résistance",
|
||||
"ennemydb": "BD adverse",
|
||||
"result": "Résultat",
|
||||
"dev-abbr": "Dev.",
|
||||
"loadcapacity": "Capacité de charge (kg)",
|
||||
"weighttotal": "Poids total (kg)",
|
||||
"sheet-colors": "Couleurs de la feuille",
|
||||
"totalhpcalcmode": "Mode de calcul des PdC totaux",
|
||||
"legacycalc": "Règles de base",
|
||||
"nocalc": "Mode manuel",
|
||||
"hpcalcdescription": "Choisissez un type de calcul de Points de Coups totaux. Par défaut, les PdC totaux sont calculés à partir des PdC de base*(1+bonus constitution/100). En sélectionnant le mode manuel, vous pouvez entrer la valeur de PdC total de votre choix, la valeur de PdC de base peut éventuellement être ignorée.",
|
||||
"professionbonusmode": "Mode de calcul des bonus de profession",
|
||||
"legacyprofbonus": "Par niveaux",
|
||||
"flatprofbonus": "Bonus plat",
|
||||
"profbonusmodedescription": "Choissez le type de calcul des bonus de profession. Par défaut, les bonus de professions sont octroyés par niveau, il est également possible de choisir les bonus de professions en tant que bonus plats à attribuer à la création du personnage, ou à certains paliers de leurs progression."
|
||||
}
|
||||
@@ -0,0 +1,109 @@
|
||||
{
|
||||
"race": "Race",
|
||||
"profession": "Profession",
|
||||
"level": "Level",
|
||||
"experience": "Exp.",
|
||||
"character": "Character",
|
||||
"equipment": "Equipment",
|
||||
"magic": "Magic",
|
||||
"settings": "Settings",
|
||||
"realmpower": "Realm Power",
|
||||
"powerpoints": "Power Pts",
|
||||
"basehp": "Base HP",
|
||||
"totalhp": "Total HP",
|
||||
"actualhp": "Actual HP",
|
||||
"attributes": "Attributes",
|
||||
"temporary-abbr": "Temp.",
|
||||
"potential-abbr": "Pot.",
|
||||
"development-abbr": "Dev.",
|
||||
"base-abbr": "Base",
|
||||
"race-abbr": "Race",
|
||||
"total-abbr": "Total",
|
||||
"constitution": "Constitution",
|
||||
"agility": "Agility",
|
||||
"selfdiscipline": "Selfdiscipline",
|
||||
"memory": "Memory",
|
||||
"reasoning": "Reasoning",
|
||||
"strength": "Strength",
|
||||
"quickness": "Quickness",
|
||||
"presence": "Presence",
|
||||
"empathy": "Empathy",
|
||||
"intuition": "Intuition",
|
||||
"defenses": "Defenses",
|
||||
"armor-at": "Armor (AT)",
|
||||
"defensivebonus-db": "Defensive Bonus (DB)",
|
||||
"withshield": "With Shield",
|
||||
"movementpenalty": "Movement Pen.",
|
||||
"helmet": "Helmet",
|
||||
"armgreaves": "Arms",
|
||||
"leggreaves": "Legs",
|
||||
"distancepenalty": "Distance Pen.",
|
||||
"wounds": "Wounds",
|
||||
"languages": "Languages",
|
||||
"spoken": "Spoken",
|
||||
"writen": "Writen",
|
||||
"miscellaneous": "Misc.",
|
||||
"hitdice": "Hit Dice",
|
||||
"developmentpoints": "Dev Points",
|
||||
"primaryskills": "Primary Skills",
|
||||
"attributemod-abbr": "Attr. Mod",
|
||||
"cost": "Cost",
|
||||
"profession-abbr": "Prof.",
|
||||
"nbranks": "#Ranks",
|
||||
"attribute-abbr": "Attr.",
|
||||
"miscellaneous-abbr": "Misc.",
|
||||
"item-abbr": "Item.",
|
||||
"secondaryskills": "Secondary Skills",
|
||||
"weaponskills": "Weapon Skills",
|
||||
"ob": "OB",
|
||||
"db": "DB",
|
||||
"resistances": "Resistances",
|
||||
"notes": "Notes",
|
||||
"weight": "Weight",
|
||||
"possessions": "Possessions",
|
||||
"mithril": "Mithril",
|
||||
"gold": "Gold",
|
||||
"silver": "Silver",
|
||||
"bronze": "Bronze",
|
||||
"copper": "Copper",
|
||||
"iron": "Iron",
|
||||
"show": "Show",
|
||||
"localization": "Localization",
|
||||
"spelllists": "Spell Lists",
|
||||
"realm": "Realm",
|
||||
"listtype": "List Type",
|
||||
"levelmax": "Max Lvl",
|
||||
"learnchances": "%learn.",
|
||||
"bookandpage": "Book & Page",
|
||||
"spellname": "Name",
|
||||
"spellclass": "Class",
|
||||
"spellduration": "Duration",
|
||||
"spellrange": "Range",
|
||||
"description": "Description",
|
||||
"relations": "Relatives",
|
||||
"constitutioncheck": "Constitution Check",
|
||||
"agilitycheck": "Agility Check",
|
||||
"selfdisciplinecheck": "Self-Discipline Check",
|
||||
"memorycheck": "Memory Check",
|
||||
"reasoningcheck": "Reasoning Check",
|
||||
"strengthcheck": "Strength Check",
|
||||
"quicknesscheck": "Quickness Check",
|
||||
"presencecheck": "Presence Check",
|
||||
"empathycheck": "Empathy Check",
|
||||
"intuitioncheck": "Intuition Check",
|
||||
"resistancecheck": "Resistance Check",
|
||||
"ennemydb": "Ennemy DB",
|
||||
"result": "Result",
|
||||
"dev-abbr": "Dev.",
|
||||
"loadcapacity": "Load capacity (lbs)",
|
||||
"weighttotal": "Total weight (lbs)",
|
||||
"sheet-colors": "Sheet colors",
|
||||
"totalhpcalcmode": "Mode of Total HP calculations",
|
||||
"legacycalc": "Legacy calculation",
|
||||
"nocalc": "Manual mode",
|
||||
"hpcalcdescription": "Choose the Total HP calculation. In Legacy, the Total HP equals the Base HP + Base HP * (constitution bonus / 100). If you choose No Calculations, Total HP is not automatically calculated and you will need to enter the value manually. If you do that, you don't have to use the Base HP value.",
|
||||
"professionbonusmode": "Mode of professional bonus calculations",
|
||||
"legacyprofbonus": "Per level",
|
||||
"flatprofbonus": "Flat bonus",
|
||||
"profbonusmodedescription": "Choose the mode of professional bonus calculations. By the legacy rules, the professional bonus is multiplied by the character level. You can also choice the flat bonus option, in this case, the professional bonus don't scale with the caracter level."
|
||||
}
|
||||
@@ -0,0 +1,109 @@
|
||||
{
|
||||
"race": "Race",
|
||||
"profession": "Profession",
|
||||
"level": "Niveau",
|
||||
"experience": "Exp.",
|
||||
"character": "Personnage",
|
||||
"equipment": "Equipement",
|
||||
"magic": "Magie",
|
||||
"settings": "Config.",
|
||||
"realmpower": "Roy. pouvoir",
|
||||
"powerpoints": "Pts pouvoir",
|
||||
"basehp": "PdC base",
|
||||
"totalhp": "PdC total",
|
||||
"actualhp": "PdC actuels",
|
||||
"attributes": "Caractéristiques",
|
||||
"temporary-abbr": "Temp.",
|
||||
"potential-abbr": "Pot.",
|
||||
"development-abbr": "Dev.",
|
||||
"base-abbr": "Base",
|
||||
"race-abbr": "Race",
|
||||
"total-abbr": "Total",
|
||||
"constitution": "Constitution",
|
||||
"agility": "Agilité",
|
||||
"selfdiscipline": "Autodiscipline",
|
||||
"memory": "Mémoire",
|
||||
"reasoning": "Raisonnement",
|
||||
"strength": "Force",
|
||||
"quickness": "Rapidité",
|
||||
"presence": "Présence",
|
||||
"empathy": "Empathie",
|
||||
"intuition": "Intuition",
|
||||
"defenses": "Défenses",
|
||||
"armor-at": "Armure (TA)",
|
||||
"defensivebonus-db": "Bonus défensif (BD)",
|
||||
"withshield": "Avec bouclier",
|
||||
"movementpenalty": "Malus mouvement",
|
||||
"helmet": "Casque",
|
||||
"armgreaves": "Brassards",
|
||||
"leggreaves": "Jambières",
|
||||
"distancepenalty": "Malus tir",
|
||||
"wounds": "Blessures",
|
||||
"languages": "Langages",
|
||||
"spoken": "parlé",
|
||||
"writen": "écrit",
|
||||
"miscellaneous": "Divers",
|
||||
"hitdice": "Dé de vie",
|
||||
"developmentpoints": "Pts de Dév",
|
||||
"primaryskills": "Comp. principales",
|
||||
"attributemod-abbr": "Mod. carac",
|
||||
"cost": "Coût",
|
||||
"profession-abbr": "Prof.",
|
||||
"nbranks": "#Rangs",
|
||||
"attribute-abbr": "Carac.",
|
||||
"miscellaneous-abbr": "Div.",
|
||||
"item-abbr": "Obj.",
|
||||
"secondaryskills": "Comp. secondaires",
|
||||
"weaponskills": "Compétences d'armes",
|
||||
"ob": "BO",
|
||||
"db": "BD",
|
||||
"resistances": "Résistances",
|
||||
"notes": "Notes",
|
||||
"weight": "Poids kg",
|
||||
"possessions": "Possessions",
|
||||
"mithril": "Mithril",
|
||||
"gold": "Or",
|
||||
"silver": "Argent",
|
||||
"bronze": "Bronze",
|
||||
"copper": "Cuivre",
|
||||
"iron": "Fer",
|
||||
"show": "Afficher",
|
||||
"localization": "Localisation",
|
||||
"spelllists": "Listes de sorts",
|
||||
"realm": "Royaume",
|
||||
"listtype": "Type de liste",
|
||||
"levelmax": "Niv. max",
|
||||
"learnchances": "%Apprent.",
|
||||
"bookandpage": "Manuel et page",
|
||||
"spellname": "Nom",
|
||||
"spellclass": "Classe",
|
||||
"spellduration": "Durée",
|
||||
"spellrange": "Portée",
|
||||
"description": "Description",
|
||||
"relations": "Relations",
|
||||
"constitutioncheck": "Jet de constitution",
|
||||
"agilitycheck": "Jet d'agilité",
|
||||
"selfdisciplinecheck": "Jet d'autodiscipline",
|
||||
"memorycheck": "Jet de mémoire",
|
||||
"reasoningcheck": "Jet de raisonnement",
|
||||
"strengthcheck": "Jet de force",
|
||||
"quicknesscheck": "Jet de rapidité",
|
||||
"presencecheck": "Jet de présence",
|
||||
"empathycheck": "Jet d'empathie",
|
||||
"intuitioncheck": "Jet d'intuition",
|
||||
"resistancecheck": "Jet de résistance",
|
||||
"ennemydb": "BD adverse",
|
||||
"result": "Résultat",
|
||||
"dev-abbr": "Dev.",
|
||||
"loadcapacity": "Capacité de charge (kg)",
|
||||
"weighttotal": "Poids total (kg)",
|
||||
"sheet-colors": "Couleurs de la feuille",
|
||||
"totalhpcalcmode": "Mode de calcul des PdC totaux",
|
||||
"legacycalc": "Règles de base",
|
||||
"nocalc": "Mode manuel",
|
||||
"hpcalcdescription": "Choisissez un type de calcul de Points de Coups totaux. Par défaut, les PdC totaux sont calculés à partir des PdC de base*(1+bonus constitution/100). En sélectionnant le mode manuel, vous pouvez entrer la valeur de PdC total de votre choix, la valeur de PdC de base peut éventuellement être ignorée.",
|
||||
"professionbonusmode": "Mode de calcul des bonus de profession",
|
||||
"legacyprofbonus": "Par niveaux",
|
||||
"flatprofbonus": "Bonus plat",
|
||||
"profbonusmodedescription": "Choissez le type de calcul des bonus de profession. Par défaut, les bonus de professions sont octroyés par niveau, il est également possible de choisir les bonus de professions en tant que bonus plats à attribuer à la création du personnage, ou à certains paliers de leurs progression."
|
||||
}
|
||||
Reference in New Issue
Block a user