Files
roll20-character-sheets-tester/DeusVault/DeusVault.html
T

1550 lines
82 KiB
HTML

<div class="sheet-body">
<input type="hidden" name="attr_fiche_type" value="pj" />
<input type="hidden" name="attr_section" value="1" />
<input id="section-1" type="radio" name="attr_section" value="1" hidden />
<input id="section-2" type="radio" name="attr_section" value="2" hidden />
<input id="section-3" type="radio" name="attr_section" value="3" hidden />
<input class="sheet-option-btn" type="checkbox" name="options_show" />
<span></span>
<div class="sheet-options">
<h2>Options</h2>
<label for="attr_fiche_type"
>Type de fiche :
<select id="attr_fiche_type" name="attr_fiche_type">
<option value="pj">PJ</option>
<option value="pnj">PNJ</option>
</select>
</label>
<label for="attr_privaterolls"
>Chuchoter au MJ
<select class="sheet-opt-field" name="attr_privaterolls">
<option value="/w gm " data-i18n="oui-toujours">Oui (Toujours)</option>
<option value=" " data-i18n="non-jamais">Non (Jamais)</option>
<option value="?{Chuchoter au MJ ?|Oui,/w gm |Non,}" data-i18n="demander-oui-par-defaut">
Demander (Oui par défaut)
</option>
<option value="?{Chuchoter au MJ ?|Non,|Oui,/w gm }" data-i18n="demander-non-par-defaut">
Demander (Non par défaut)
</option>
</select>
</label>
<button type="action" name="act_generage_default_skills">Générer les compétences par défaut</button>
<button type="action" name="act_generage_default_talents">Générer les talents par défaut</button>
</div>
<div class="sheet-fiche">
<div class="sheet-general-informations">
<img class="sheet-character-avatar" name="attr_character_token" />
<div class="sheet-character-informations">
<div>
<div class="sheet-input-field">
<span>Nom</span>
<input name="attr_character_name" type="text" title="@{character_name}" />
</div>
</div>
<div>
<div class="sheet-input-field">
<span>Race</span>
<input name="attr_race" type="text" title="@{race}" />
</div>
<div class="sheet-input-field sheet-input-field-age">
<span>Age</span>
<input name="attr_age" type="text" title="@{age}" />
</div>
</div>
<div>
<div class="sheet-input-field sheet-input-field-level">
<span>Niveau</span>
<input class="sheet-text-center" value="1" name="attr_level" type="text" title="@{level}" />
</div>
<div class="sheet-input-field sheet-input-field-experience">
<span>Experience</span>
<input class="sheet-text-center" name="attr_experience" type="text" title="@{experience}" />
<span>/</span>
<input
class="sheet-text-center"
name="attr_experience_required"
type="text"
title="@{experience_required}"
/>
</div>
</div>
</div>
<div class="sheet-caracteristiques">
<div>
<div>
<button class="sheet-button-roll" name="act_strength" type="action">
<span class="sheet-field-name">Force</span>
<input type="text" name="attr_strength_name" value="Force" hidden />
</button>
</div>
<div>
<input value="4" name="attr_strength" type="text" title="@{strength}" />
</div>
</div>
<div>
<div>
<button class="sheet-button-roll" name="act_dexterity" type="action">
<span class="sheet-field-name">Dextérité</span>
<input type="text" name="attr_dexterity_name" value="Dextérité" hidden />
</button>
</div>
<div>
<input value="4" name="attr_dexterity" type="text" title="@{dexterity}" />
</div>
</div>
<div>
<div>
<button class="sheet-button-roll" name="act_endurance" type="action">
<span class="sheet-field-name">Endurance</span>
<input type="text" name="attr_endurance_name" value="@{endurance}" hidden />
</button>
</div>
<div>
<input value="4" name="attr_endurance" type="text" title="@{endurance}" />
</div>
</div>
<div>
<div>
<button class="sheet-button-roll" name="act_intelligence" type="action">
<span class="sheet-field-name">Intelligence</span>
<input type="text" name="attr_intelligence_name" value="@{intelligence}" hidden />
</button>
</div>
<div>
<input value="4" name="attr_intelligence" type="text" title="@{intelligence}" />
</div>
</div>
<div>
<div>
<button class="sheet-button-roll" name="act_charisma" type="action">
<span class="sheet-field-name">Charisme</span>
<input type="text" name="attr_charisma_name" value="Charisme" hidden />
</button>
</div>
<div>
<input value="4" name="attr_charisma" type="text" title="@{charisma}" />
</div>
</div>
</div>
</div>
<div class="sheet-character-status">
<div>
<div class="sheet-s-50">
<input name="attr_wounds" type="text" title="@{wounds}" value="0" />
</div>
<span>Blessures</span>
</div>
<div>
<div class="sheet-s-65">
<input value="0" name="attr_dv" type="text" title="@{dv}" />
</div>
<span>Dés de soin</span>
</div>
<div>
<div class="sheet-s-80">
<input value="0" name="attr_hp" type="text" title="@{hp}" />
<div>
<input value="0" name="attr_hp_temp" type="text" title="@{hp_temp}" />
<span>Temp.</span>
</div>
<div>
<input name="attr_hp_max" type="text" title="@{hp_max}" value="(@{endurance}*3)" disabled />
<span>Max.</span>
</div>
</div>
<span>Points de vie</span>
</div>
<div>
<div class="sheet-s-65">
<input value="0" name="attr_armor" type="text" title="@{armor}" />
<div>
<input value="0" name="attr_shield" type="text" title="@{shield}" />
<span>Bouclier</span>
</div>
<div>
<input value="0" name="attr_armor_other" type="text" title="@{armor_other}" />
<span>Autre</span>
</div>
</div>
<span>Armure</span>
</div>
<div>
<div class="sheet-s-50">
<input name="attr_speed" type="text" title="@{speed}" value="9" />
</div>
<span>Vitesse</span>
</div>
</div>
<hr />
<div class="sheet-section-buttons" data-section-id>
<label for="section-1">Attaques & Maîtrises</label>
<label for="section-2">Talents</label>
<label for="section-3">Inventaire & Équipement</label>
</div>
<div class="sheet-sections-container" data-section-id="|1|2|" data-section-pnj>
<div class="sheet-section sheet-display-repcontrol" data-section-id="|1|2|" data-section-pnj>
<div class="sheet-section-title">
<h2>Compétences</h2>
</div>
<div>
<fieldset class="repeating_skills">
<div class="sheet-skill-section">
<button class="sheet-button-roll" name="act_roll" type="action"></button>
<input type="text" name="attr_skillname" value="" />
<div class="sheet-link">
<select name="attr_link1">
<option value="@{strength}">FOR</option>
<option value="@{dexterity}">DEX</option>
<option value="@{endurance}">END</option>
<option value="@{intelligence}">INT</option>
<option value="@{charisma}">CHA</option>
</select>
/
<select name="attr_link2">
<option value="@{strength}">FOR</option>
<option value="@{dexterity}">DEX</option>
<option value="@{endurance}">END</option>
<option value="@{intelligence}">INT</option>
<option value="@{charisma}">CHA</option>
</select>
</div>
<input
class="sheet-mastery-value"
name="attr_mastery"
type="text"
title="@{mastery}"
value="@{mastery}%"
disabled
/>
<input type="hidden" name="attr_mastery_max" value="@{mastery_max}" disabled />
</div>
</fieldset>
</div>
</div>
<hr />
<div class="sheet-sections-container-col">
<div class="sheet-section sheet-display-repcontrol" data-section-id="|1|" data-section-pnj>
<div class="sheet-section-title">
<h2>Maîtrises</h2>
</div>
<div>
<fieldset class="repeating_masteries">
<div class="sheet-skill-section">
<button class="sheet-button-roll" name="act_roll" type="action"></button>
<input list="masteries-list" type="text" name="attr_skillname" value="" />
<div class="sheet-link">
<select name="attr_link1">
<option value="@{strength}">FOR</option>
<option value="@{dexterity}">DEX</option>
<option value="@{endurance}">END</option>
<option value="@{intelligence}">INT</option>
<option value="@{charisma}">CHA</option>
</select>
/
<select name="attr_link2">
<option value="@{strength}">FOR</option>
<option value="@{dexterity}">DEX</option>
<option value="@{endurance}">END</option>
<option value="@{intelligence}">INT</option>
<option value="@{charisma}">CHA</option>
</select>
</div>
<input
class="sheet-mastery-bonus"
name="attr_mastery_bonus"
type="text"
title="@{mastery_bonus}"
value="0"
/>
<input
class="sheet-mastery-value"
name="attr_mastery"
type="text"
title="@{mastery}"
value="@{mastery}%"
disabled
/>
<input type="hidden" name="attr_mastery_max" value="@{mastery_max}" disabled />
</div>
</fieldset>
</div>
</div>
<hr data-section-id="|1|" data-section-pnj />
<div class="sheet-section sheet-display-repcontrol" data-section-id="|1|" data-section-pnj>
<div class="sheet-section-title">
<h2>Attaques</h2>
</div>
<div>
<fieldset class="repeating_attacks">
<div class="sheet-attack-section sheet-option-btn-container">
<input type="hidden" name="attr_extended" />
<div class="sheet-skill-section">
<button class="sheet-button-roll" name="act_roll" type="action"></button>
<input type="text" name="attr_skillname" value="" />
<input
class="sheet-mastery-value"
name="attr_attack"
type="text"
title="@{attack}"
value="1d4"
/>
<input
class="sheet-option-btn sheet-extend-btn"
type="checkbox"
name="attr_extended"
/>
<span></span>
</div>
<div class="sheet-extended-attack-section">
<div class="sheet-input-field sheet-description-field">
<span>Description</span>
<textarea
name="attr_attack_description"
title="@{attack_description}"
></textarea>
</div>
</div>
</div>
</fieldset>
</div>
</div>
<hr data-section-pnj />
<div class="sheet-section sheet-pnj-notes" data-section-pnj>
<div class="sheet-notes-section">
<div class="sheet-section-title">
<h2>Notes</h2>
</div>
<textarea name="attr_notes"></textarea>
</div>
</div>
<div class="sheet-section" data-section-id="|2|">
<div class="sheet-section-title">
<h2>Talents</h2>
</div>
<div>
<div class="sheet-talent-container sheet-display-repcontrol">
<input
class="sheet-expand-talent-btn"
type="checkbox"
id="attr_expend_handicraft"
name="attr_expend_handicraft"
hidden
/>
<div class="sheet-talent-title">
<label for="attr_expend_handicraft">
<h3>
<span class="material-icons sheet-expend-icon">expand_more</span>
<span class="material-icons sheet-retract-icon">expand_less</span>
Talents d'artisanat
</h3>
</label>
<div class="sheet-link">
<select name="attr_talent_handicraft_link1">
<option value="strength">FOR</option>
<option selected value="dexterity">DEX</option>
<option value="endurance">END</option>
<option value="intelligence">INT</option>
<option value="charisma">CHA</option>
</select>
/
<select name="attr_talent_handicraft_link2">
<option value="strength">FOR</option>
<option value="dexterity">DEX</option>
<option value="endurance">END</option>
<option selected value="intelligence">INT</option>
<option value="charisma">CHA</option>
</select>
</div>
</div>
<div class="sheet-talent-list">
<fieldset class="repeating_talent-handicraft">
<div class="sheet-skill-section">
<input
type="hidden"
name="attr_talent_links"
value="@{talent_handicraft_link1}+@{talent_handicraft_link2}"
disabled
/>
<input type="text" name="attr_talent_name" value="handicraft" hidden />
<button class="sheet-button-roll" name="act_roll" type="action"></button>
<input type="text" name="attr_skillname" value="" />
<div class="sheet-skill-xp">
<input type="text" name="attr_skill_xp" value="0" />/1000
</div>
<input type="checkbox" name="attr_skill_mastered" title="@{skill_mastered}" />
<input
class="sheet-mastery-value"
type="text"
name="attr_mastery"
value="@{mastery}%"
disabled
/>
<input type="hidden" name="attr_mastery_max" value="@{mastery_max}" disabled />
</div>
</fieldset>
</div>
</div>
<div class="sheet-talent-container sheet-display-repcontrol">
<input
class="sheet-expand-talent-btn"
type="checkbox"
id="attr_expend_secret"
name="attr_expend_secret"
hidden
/>
<div class="sheet-talent-title">
<label for="attr_expend_secret">
<h3>
<span class="material-icons sheet-expend-icon">expand_more</span>
<span class="material-icons sheet-retract-icon">expand_less</span>
Talents d'archiviste
</h3>
</label>
<div class="sheet-link">
<select name="attr_talent_secret_link1">
<option value="strength">FOR</option>
<option value="dexterity">DEX</option>
<option value="endurance">END</option>
<option selected value="intelligence">INT</option>
<option value="charisma">CHA</option>
</select>
/
<select name="attr_talent_secret_link2">
<option value="strength">FOR</option>
<option value="dexterity">DEX</option>
<option value="endurance">END</option>
<option value="intelligence">INT</option>
<option selected value="charisma">CHA</option>
</select>
</div>
</div>
<div class="sheet-talent-list">
<fieldset class="repeating_talent-secret">
<div class="sheet-skill-section">
<input
type="hidden"
name="attr_talent_links"
value="@{talent_secret_link1}+@{talent_secret_link2}"
disabled
/>
<input type="text" name="attr_talent_name" value="secret" hidden />
<button class="sheet-button-roll" name="act_roll" type="action"></button>
<input type="text" name="attr_skillname" value="" />
<div class="sheet-skill-xp">
<input type="text" name="attr_skill_xp" value="0" />/1000
</div>
<input type="checkbox" name="attr_skill_mastered" title="@{skill_mastered}" />
<input
class="sheet-mastery-value"
type="text"
name="attr_mastery"
value="@{mastery}%"
disabled
/>
<input type="hidden" name="attr_mastery_max" value="@{mastery_max}" disabled />
</div>
</fieldset>
</div>
</div>
<div class="sheet-talent-container sheet-display-repcontrol">
<input
class="sheet-expand-talent-btn"
type="checkbox"
id="attr_expend_stealth"
name="attr_expend_stealth"
hidden
/>
<div class="sheet-talent-title">
<label for="attr_expend_stealth">
<h3>
<span class="material-icons sheet-expend-icon">expand_more</span>
<span class="material-icons sheet-retract-icon">expand_less</span>
Talents de furtivité
</h3>
</label>
<div class="sheet-link">
<select name="attr_talent_stealth_link1">
<option value="strength">FOR</option>
<option selected value="dexterity">DEX</option>
<option value="endurance">END</option>
<option value="intelligence">INT</option>
<option value="charisma">CHA</option>
</select>
/
<select name="attr_talent_stealth_link2">
<option value="strength">FOR</option>
<option value="dexterity">DEX</option>
<option value="endurance">END</option>
<option value="intelligence">INT</option>
<option selected value="charisma">CHA</option>
</select>
</div>
</div>
<div class="sheet-talent-list">
<fieldset class="repeating_talent-stealth">
<div class="sheet-skill-section">
<input
type="hidden"
name="attr_talent_links"
value="@{talent_stealth_link1}+@{talent_stealth_link2}"
disabled
/>
<input type="text" name="attr_talent_name" value="stealth" hidden />
<button class="sheet-button-roll" name="act_roll" type="action"></button>
<input type="text" name="attr_skillname" value="" />
<div class="sheet-skill-xp">
<input type="text" name="attr_skill_xp" value="0" />/1000
</div>
<input type="checkbox" name="attr_skill_mastered" title="@{skill_mastered}" />
<input
class="sheet-mastery-value"
type="text"
name="attr_mastery"
value="@{mastery}%"
disabled
/>
<input type="hidden" name="attr_mastery_max" value="@{mastery_max}" disabled />
</div>
</fieldset>
</div>
</div>
<div class="sheet-talent-container sheet-display-repcontrol">
<input
class="sheet-expand-talent-btn"
type="checkbox"
id="attr_expend_dressage"
name="attr_expend_dressage"
hidden
/>
<div class="sheet-talent-title">
<label for="attr_expend_dressage">
<h3>
<span class="material-icons sheet-expend-icon">expand_more</span>
<span class="material-icons sheet-retract-icon">expand_less</span>
Talents de dressage
</h3>
</label>
<div class="sheet-link">
<select name="attr_talent_dressage_link1">
<option selected value="strength">FOR</option>
<option value="dexterity">DEX</option>
<option value="endurance">END</option>
<option value="intelligence">INT</option>
<option value="charisma">CHA</option>
</select>
/
<select name="attr_talent_dressage_link2">
<option value="strength">FOR</option>
<option value="dexterity">DEX</option>
<option value="endurance">END</option>
<option value="intelligence">INT</option>
<option selected value="charisma">CHA</option>
</select>
</div>
</div>
<div class="sheet-talent-list">
<fieldset class="repeating_talent-dressage">
<div class="sheet-skill-section">
<input
type="hidden"
name="attr_talent_links"
value="@{talent_dressage_link1}+@{talent_dressage_link2}"
disabled
/>
<input type="text" name="attr_talent_name" value="dressage" hidden />
<button class="sheet-button-roll" name="act_roll" type="action"></button>
<input type="text" name="attr_skillname" value="" />
<div class="sheet-skill-xp">
<input type="text" name="attr_skill_xp" value="0" />/1000
</div>
<input type="checkbox" name="attr_skill_mastered" title="@{skill_mastered}" />
<input
class="sheet-mastery-value"
type="text"
name="attr_mastery"
value="@{mastery}%"
disabled
/>
<input type="hidden" name="attr_mastery_max" value="@{mastery_max}" disabled />
</div>
</fieldset>
</div>
</div>
<div class="sheet-talent-container sheet-display-repcontrol">
<input
class="sheet-expand-talent-btn"
type="checkbox"
id="attr_expend_larceny"
name="attr_expend_larceny"
hidden
/>
<div class="sheet-talent-title">
<label for="attr_expend_larceny">
<h3>
<span class="material-icons sheet-expend-icon">expand_more</span>
<span class="material-icons sheet-retract-icon">expand_less</span>
Talents de larcin
</h3>
</label>
<div class="sheet-link">
<select name="attr_talent_larceny_link1">
<option value="strength">FOR</option>
<option selected value="dexterity">DEX</option>
<option value="endurance">END</option>
<option value="intelligence">INT</option>
<option value="charisma">CHA</option>
</select>
/
<select name="attr_talent_larceny_link2">
<option value="strength">FOR</option>
<option value="dexterity">DEX</option>
<option value="endurance">END</option>
<option selected value="intelligence">INT</option>
<option value="charisma">CHA</option>
</select>
</div>
</div>
<div class="sheet-talent-list">
<fieldset class="repeating_talent-larceny">
<div class="sheet-skill-section">
<input
type="hidden"
name="attr_talent_links"
value="@{talent_larceny_link1}+@{talent_larceny_link2}"
disabled
/>
<input type="text" name="attr_talent_name" value="larceny" hidden />
<button class="sheet-button-roll" name="act_roll" type="action"></button>
<input type="text" name="attr_skillname" value="" />
<div class="sheet-skill-xp">
<input type="text" name="attr_skill_xp" value="0" />/1000
</div>
<input type="checkbox" name="attr_skill_mastered" title="@{skill_mastered}" />
<input
class="sheet-mastery-value"
type="text"
name="attr_mastery"
value="@{mastery}%"
disabled
/>
<input type="hidden" name="attr_mastery_max" value="@{mastery_max}" disabled />
</div>
</fieldset>
</div>
</div>
<div class="sheet-talent-container sheet-display-repcontrol">
<input
class="sheet-expand-talent-btn"
type="checkbox"
id="attr_expend_language"
name="attr_expend_language"
hidden
/>
<div class="sheet-talent-title">
<label for="attr_expend_language">
<h3>
<span class="material-icons sheet-expend-icon">expand_more</span>
<span class="material-icons sheet-retract-icon">expand_less</span>
Talents linguistiques
</h3>
</label>
<div class="sheet-link">
<select name="attr_talent_language_link1">
<option value="strength">FOR</option>
<option value="dexterity">DEX</option>
<option value="endurance">END</option>
<option selected value="intelligence">INT</option>
<option value="charisma">CHA</option>
</select>
/
<select name="attr_talent_language_link2">
<option value="strength">FOR</option>
<option value="dexterity">DEX</option>
<option value="endurance">END</option>
<option value="intelligence">INT</option>
<option selected value="charisma">CHA</option>
</select>
</div>
</div>
<div class="sheet-talent-list">
<fieldset class="repeating_talent-language">
<div class="sheet-skill-section">
<input
type="hidden"
name="attr_talent_links"
value="@{talent_language_link1}+@{talent_language_link2}"
disabled
/>
<input type="text" name="attr_talent_name" value="language" hidden />
<button class="sheet-button-roll" name="act_roll" type="action"></button>
<input type="text" name="attr_skillname" value="" />
<div class="sheet-skill-xp">
<input type="text" name="attr_skill_xp" value="0" />/1000
</div>
<input type="checkbox" name="attr_skill_mastered" title="@{skill_mastered}" />
<input
class="sheet-mastery-value"
type="text"
name="attr_mastery"
value="@{mastery}%"
disabled
/>
<input type="hidden" name="attr_mastery_max" value="@{mastery_max}" disabled />
</div>
</fieldset>
</div>
</div>
<div class="sheet-talent-container sheet-display-repcontrol">
<input
class="sheet-expand-talent-btn"
type="checkbox"
id="attr_expend_maneuver"
name="attr_expend_maneuver"
hidden
/>
<div class="sheet-talent-title">
<label for="attr_expend_maneuver">
<h3>
<span class="material-icons sheet-expend-icon">expand_more</span>
<span class="material-icons sheet-retract-icon">expand_less</span>
Talents de manoeuvrabilité
</h3>
</label>
<div class="sheet-link">
<select name="attr_talent_maneuver_link1">
<option value="strength">FOR</option>
<option selected value="dexterity">DEX</option>
<option value="endurance">END</option>
<option value="intelligence">INT</option>
<option value="charisma">CHA</option>
</select>
/
<select name="attr_talent_maneuver_link2">
<option value="strength">FOR</option>
<option value="dexterity">DEX</option>
<option selected value="endurance">END</option>
<option value="intelligence">INT</option>
<option value="charisma">CHA</option>
</select>
</div>
</div>
<div class="sheet-talent-list">
<fieldset class="repeating_talent-maneuver">
<div class="sheet-skill-section">
<input
type="hidden"
name="attr_talent_links"
value="@{talent_maneuver_link1}+@{talent_maneuver_link2}"
disabled
/>
<input type="text" name="attr_talent_name" value="maneuver" hidden />
<button class="sheet-button-roll" name="act_roll" type="action"></button>
<input type="text" name="attr_skillname" value="" />
<div class="sheet-skill-xp">
<input type="text" name="attr_skill_xp" value="0" />/1000
</div>
<input type="checkbox" name="attr_skill_mastered" title="@{skill_mastered}" />
<input
class="sheet-mastery-value"
type="text"
name="attr_mastery"
value="@{mastery}%"
disabled
/>
<input type="hidden" name="attr_mastery_max" value="@{mastery_max}" disabled />
</div>
</fieldset>
</div>
</div>
<div class="sheet-talent-container sheet-display-repcontrol">
<input
class="sheet-expand-talent-btn"
type="checkbox"
id="attr_expend_psychology"
name="attr_expend_psychology"
hidden
/>
<div class="sheet-talent-title">
<label for="attr_expend_psychology">
<h3>
<span class="material-icons sheet-expend-icon">expand_more</span>
<span class="material-icons sheet-retract-icon">expand_less</span>
Talents de psychologie
</h3>
</label>
<div class="sheet-link">
<select name="attr_talent_psychology_link1">
<option value="strength">FOR</option>
<option value="dexterity">DEX</option>
<option selected value="endurance">END</option>
<option value="intelligence">INT</option>
<option value="charisma">CHA</option>
</select>
/
<select name="attr_talent_psychology_link2">
<option value="strength">FOR</option>
<option value="dexterity">DEX</option>
<option value="endurance">END</option>
<option selected value="intelligence">INT</option>
<option value="charisma">CHA</option>
</select>
</div>
</div>
<div class="sheet-talent-list">
<fieldset class="repeating_talent-psychology">
<div class="sheet-skill-section">
<input
type="hidden"
name="attr_talent_links"
value="@{talent_psychology_link1}+@{talent_psychology_link2}"
disabled
/>
<input type="text" name="attr_talent_name" value="psychology" hidden />
<button class="sheet-button-roll" name="act_roll" type="action"></button>
<input type="text" name="attr_skillname" value="" />
<div class="sheet-skill-xp">
<input type="text" name="attr_skill_xp" value="0" />/1000
</div>
<input type="checkbox" name="attr_skill_mastered" title="@{skill_mastered}" />
<input
class="sheet-mastery-value"
type="text"
name="attr_mastery"
value="@{mastery}%"
disabled
/>
<input type="hidden" name="attr_mastery_max" value="@{mastery_max}" disabled />
</div>
</fieldset>
</div>
</div>
<div class="sheet-talent-container sheet-display-repcontrol">
<input
class="sheet-expand-talent-btn"
type="checkbox"
id="attr_expend_survival"
name="attr_expend_survival"
hidden
/>
<div class="sheet-talent-title">
<label for="attr_expend_survival">
<h3>
<span class="material-icons sheet-expend-icon">expand_more</span>
<span class="material-icons sheet-retract-icon">expand_less</span>
Talents de survie
</h3>
</label>
<div class="sheet-link">
<select name="attr_talent_survival_link1">
<option value="strength">FOR</option>
<option value="dexterity">DEX</option>
<option selected value="endurance">END</option>
<option value="intelligence">INT</option>
<option value="charisma">CHA</option>
</select>
/
<select name="attr_talent_survival_link2">
<option value="strength">FOR</option>
<option value="dexterity">DEX</option>
<option value="endurance">END</option>
<option selected value="intelligence">INT</option>
<option value="charisma">CHA</option>
</select>
</div>
</div>
<div class="sheet-talent-list">
<fieldset class="repeating_talent-survival">
<div class="sheet-skill-section">
<input
type="hidden"
name="attr_talent_links"
value="@{talent_survival_link1}+@{talent_survival_link2}"
disabled
/>
<input type="text" name="attr_talent_name" value="survival" hidden />
<button class="sheet-button-roll" name="act_roll" type="action"></button>
<input type="text" name="attr_skillname" value="" />
<div class="sheet-skill-xp">
<input type="text" name="attr_skill_xp" value="0" />/1000
</div>
<input type="checkbox" name="attr_skill_mastered" title="@{skill_mastered}" />
<input
class="sheet-mastery-value"
type="text"
name="attr_mastery"
value="@{mastery}%"
disabled
/>
<input type="hidden" name="attr_mastery_max" value="@{mastery_max}" disabled />
</div>
</fieldset>
</div>
</div>
<div class="sheet-talent-container sheet-display-repcontrol">
<input
class="sheet-expand-talent-btn"
type="checkbox"
id="attr_expend_other"
name="attr_expend_other"
hidden
/>
<div class="sheet-talent-title">
<label for="attr_expend_other">
<h3>
<span class="material-icons sheet-expend-icon">expand_more</span>
<span class="material-icons sheet-retract-icon">expand_less</span>
Autres
</h3>
</label>
</div>
<div class="sheet-talent-list">
<fieldset class="repeating_talent-other">
<div class="sheet-talent-other sheet-option-btn-container">
<div class="sheet-skill-section">
<input type="hidden" name="attr_extended" />
<div>
<button
class="sheet-button-roll"
name="act_roll"
type="action"
></button>
<input type="text" name="attr_skillname" value="" />
<div class="sheet-skill-xp">
<input type="text" name="attr_skill_xp" value="0" />/1000
</div>
<input
type="checkbox"
name="attr_skill_mastered"
title="@{skill_mastered}"
/>
<input
class="sheet-mastery-value"
type="text"
name="attr_mastery"
value="@{mastery}%"
disabled
/>
<input
type="hidden"
name="attr_mastery_max"
value="@{mastery_max}"
disabled
/>
</div>
<div class="sheet-link">
<select name="attr_link1">
<option value="strength">FOR</option>
<option value="dexterity">DEX</option>
<option selected value="endurance">END</option>
<option value="intelligence">INT</option>
<option value="charisma">CHA</option>
</select>
/
<select name="attr_link2">
<option value="strength">FOR</option>
<option value="dexterity">DEX</option>
<option value="endurance">END</option>
<option selected value="intelligence">INT</option>
<option value="charisma">CHA</option>
</select>
</div>
</div>
<input
class="sheet-option-btn sheet-extend-btn"
type="checkbox"
name="attr_extended"
/>
<span></span>
</div>
</fieldset>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="sheet-sections-container sheet-inventory-sections-container" data-section-id="|3|">
<div class="sheet-inventory-container">
<div class="sheet-inventory-section">
<h3>Inventaire</h3>
<textarea name="attr_inventory"></textarea>
</div>
<div class="sheet-money-section">
<label class="sheet-currency-input" title="Pièce de platine">
<input type="text" name="attr_currency_pp" />
<span>PP</span>
</label>
<label class="sheet-currency-input" title="Pièce d'or">
<input type="text" name="attr_currency_po" />
<span>PO</span>
</label>
<label class="sheet-currency-input" title="Pièce d'argent">
<input type="text" name="attr_currency_pa" />
<span>PA</span>
</label>
<label class="sheet-currency-input" title="Pièce de cuivre">
<input type="text" name="attr_currency_pc" />
<span>PC</span>
</label>
</div>
<div class="sheet-equipment-section">
<h3>Équipement</h3>
<textarea name="attr_equipment"></textarea>
</div>
</div>
<div class="sheet-notes-section">
<h3>Notes</h3>
<textarea name="attr_notes"></textarea>
</div>
</div>
</div>
</div>
<datalist id="masteries-list">
<option value="Armes légères"></option>
<option value="Armes intermédiaires"></option>
<option value="Armes lourdes"></option>
<option value="Armes colossales"></option>
<option value="Armes improvisées"></option>
<option value="Sans armes"></option>
<option value="Armes de jet"></option>
<option value="Armes à projectiles"></option>
<option value="Armes à distance colossales"></option>
<option value="Détermination"></option>
<option value="Inspiration"></option>
<option value="Abjuration"></option>
<option value="Conjuration"></option>
<option value="Divination"></option>
<option value="Enchantement"></option>
<option value="Evocation"></option>
<option value="Illusion"></option>
<option value="Nécromancie"></option>
<option value="Transmutation"></option>
</datalist>
<rolltemplate class="sheet-rolltemplate-rt1">
<div
class="sheet-rt1-container"
style="background-color: #fcf8f2; border: 2px solid #a69c73; padding: 5px; color: #3e3431"
>
<h1 style="color: #3e3431">{{name}}</h1>
<h2 style="color: #3e3431; border-bottom: 2px solid rgba(62, 52, 49, 0.2)">{{character_name}}</h2>
{{#description}}
<div>{{description}}</div>
{{/description}} {{#damageRolled}}
<div class="sheet-rt1-rollvalue">
<span>Dégâts: <span>{{damageRolled}}</span></span>
</div>
{{/damageRolled}} {{#successLevel}}
<div class="sheet-rt1-success">
{{#rollTotal() computed::successLevel 0}}
<div></div>
{{/rollTotal() computed::successLevel 0}}
<span class="sheet-rt1-success-level">{{success0}}</span>
{{#rollTotal() computed::successLevel 1}}
<div></div>
{{/rollTotal() computed::successLevel 1}}
<span class="sheet-rt1-success-level">{{success1}}</span>
{{#rollTotal() computed::successLevel 2}}
<div></div>
{{/rollTotal() computed::successLevel 2}}
<span class="sheet-rt1-success-level">{{success2}}</span>
{{#rollTotal() computed::successLevel 3}}
<div></div>
{{/rollTotal() computed::successLevel 3}}
<span class="sheet-rt1-success-level">{{success3}}</span>
{{#rollTotal() computed::successLevel 4}}
<div></div>
{{/rollTotal() computed::successLevel 4}}
<span class="sheet-rt1-success-level">{{success4}}</span>
</div>
{{/successLevel}}
<div class="sheet-rt1-roll">
<div>{{roll}}</div>
</div>
</div>
</rolltemplate>
<script type="text/worker">
(function () {
const skills = [
{
name: "Acrobatie",
links: ["dexterity", "endurance"],
},
{
name: "Artisanat / Construire",
links: ["dexterity", "intelligence"],
talent_name: "Talents d'artisanat",
repeating_section_name: "handicraft",
talents: [
"Alchimie",
"Cuisine",
"Forge",
"Couture",
"Travail du cuir",
"Thaumaturgie",
"Artisan trappeur",
],
},
{
name: "Athlétisme",
links: ["strength", "endurance"],
},
{
name: "Combat rapproché",
links: ["strength", "dexterity"],
talent_name: "Talents de combat rapproché",
//repeating_section_name: "cac",
talents: ["Armes légères", "Armes intermédiaires", "Armes lourdes", "Armes colossales"],
},
{
name: "Combat à distance",
links: ["dexterity", "intelligence"],
talent_name: "Talents de combat à distance",
//repeating_section_name: "range",
talents: ["Armes de jets", "Armes à projectiles", "Armes à distance colossales"],
},
{
name: "Connaissance des secrets",
links: ["intelligence", "charisma"],
talent_name: "Talents d'archiviste",
repeating_section_name: "secret",
talents: ["Religion", "Arcane", "Histoire"],
},
{
name: "Connaissance de la nature",
links: ["dexterity", "intelligence"],
},
{
name: "Discrétion",
links: ["dexterity", "charisma"],
talent_name: "Talents de furtivité",
repeating_section_name: "stealth",
talents: ["Camouflage", "Filature"],
},
{
name: "Dressage",
links: ["strength", "charisma"],
talent_name: "Talents de dressage",
repeating_section_name: "dressage",
talents: ["Domptage", "Apprivoisement"],
},
{
name: "Esquiver",
links: ["dexterity", "intelligence"],
},
{
name: "Intimider",
links: ["strength", "charisma"],
},
{
name: "Larcin",
links: ["dexterity", "intelligence"],
talent_name: "Talents de larcin",
repeating_section_name: "larceny",
talents: ["Crochetage", "Vol à la tire", "Désamorçage"],
},
{
name: "Lire/Ecrire",
links: ["intelligence", "charisma"],
talent_name: "Talents linguistiques",
repeating_section_name: "language",
talents: [
"Langue commune",
"Langue runique",
"Langue elfique",
"Langue orc",
"Langue sacrée",
"Langue draconique",
"Langue elfique ancienne",
],
},
{
name: "Manoeuvrer",
links: ["dexterity", "endurance"],
talent_name: "Talents de manoeuvrabilité",
repeating_section_name: "maneuver",
talents: ["Equitation", "Armes de siège", "Navigation"],
},
{
name: "Médecine",
links: ["intelligence", "endurance"],
},
{
name: "Mentir / Convaincre",
links: ["intelligence", "charisma"],
},
{
name: "Perception",
links: ["intelligence", "charisma"],
},
{
name: "Psychologie",
links: ["endurance", "intelligence"],
talent_name: "Talents de psychologie",
repeating_section_name: "psychology",
talents: ["Perspicacité", "Ténacité"],
},
{
name: "Réflexes",
links: ["dexterity", "endurance"],
},
{
name: "Survie",
links: ["endurance", "intelligence"],
talent_name: "Talents de survie",
repeating_section_name: "survival",
talents: ["Chasse/Pêche", "Cartographie/Repérage"],
},
];
function generageDefaultSkills() {
const sectionName = "repeating_skills";
const skillNameAttr = "skillname";
getSectionIDs(sectionName, (ids) => {
getAttrs(
ids.map((i) => `${sectionName}_${i}_${skillNameAttr}`),
(names) => {
const skillNamesToSectionId = {};
Object.keys(names).forEach((skillname_path) => {
skillNamesToSectionId[names[skillname_path]] = skillname_path.substring(
sectionName.length + 1,
skillname_path.length - skillNameAttr.length - 1
);
});
const skillNames = Object.values(names);
const attrsToAdd = {};
skills.forEach((skill) => {
rowId =
skillNames.indexOf(skill.name) !== -1
? skillNamesToSectionId[skill.name]
: generateRowID();
attrsToAdd[`${sectionName}_${rowId}_skillname`] = skill.name;
attrsToAdd[`${sectionName}_${rowId}_link1`] = `@{${skill.links[0]}}`;
attrsToAdd[`${sectionName}_${rowId}_link2`] = `@{${skill.links[1]}}`;
});
setAttrs(attrsToAdd);
}
);
});
}
on("clicked:generage_default_skills", function () {
generageDefaultSkills();
});
function generageDefaultTalents() {
skills.forEach((skill) => {
if (!skill["repeating_section_name"]) {
return;
}
const sectionName = `repeating_talent-${skill["repeating_section_name"]}`;
const skillNameAttr = "skillname";
getSectionIDs(sectionName, (ids) => {
getAttrs(
ids.map((i) => `${sectionName}_${i}_${skillNameAttr}`),
(names) => {
const skillNamesToSectionId = {};
Object.keys(names).forEach((skillname_path) => {
skillNamesToSectionId[names[skillname_path]] = skillname_path.substring(
sectionName.length + 1,
skillname_path.length - skillNameAttr.length - 1
);
});
const skillNames = Object.values(names);
const attrsToAdd = {};
skill.talents.forEach((talent) => {
rowId =
skillNames.indexOf(talent) !== -1 ? skillNamesToSectionId[talent] : generateRowID();
attrsToAdd[`${sectionName}_${rowId}_skillname`] = talent;
});
setAttrs(attrsToAdd);
}
);
});
});
}
on("clicked:generage_default_talents", function () {
generageDefaultTalents();
});
function roll_rt1(name, skillLevel, roll, description, displayRoll) {
getAttrs(["privaterolls"], (values) => {
const success = skillLevel
? [
Math.min(Math.floor((skillLevel * 1) / 3), 90),
Math.min(Math.floor((skillLevel * 2) / 3), 90),
Math.min(skillLevel, 90),
Math.min(skillLevel + 10, 90),
Math.min(skillLevel + 20, 90),
]
: undefined;
const cmd = `${
values["privaterolls"]
}&{template:rt1} {{name=${name}}} {{character_name=[@{character_name}](http://journal.roll20.net/character/@{character_id})}} ${
success ? success.map((v, i) => `{{success${i}=${v}%}}`).join(" ") + " {{successLevel=[[-1]]}}" : ""
} {{roll=[[${roll ? roll : "1d100"}]]}} ${description ? `{{description=${description}}}` : ""} ${
displayRoll ? `{{damageRolled=${roll}}}` : ""
}`;
startRoll(cmd, (results) => {
const r = results.results.roll.result;
finishRoll(results.rollId, {
successLevel: success ? success.findIndex((s) => s >= r) : undefined,
});
});
});
}
on(
"clicked:strength clicked:dexterity clicked:endurance clicked:intelligence clicked:charisma",
(eventInfo) => {
const attrName = eventInfo.triggerName.substring(8);
getAttrs([attrName, `${attrName}_name`], (values) => {
roll_rt1(values[`${attrName}_name`], parseInt(values[attrName]));
});
}
);
function skillClicked(sourceAttribute, btnName, attrSkillName, attrValueName) {
const pathBase = sourceAttribute.substring(0, sourceAttribute.length - btnName.length);
const skillNamePath = pathBase + attrSkillName;
const valuePath = pathBase + attrValueName;
getAttrs([skillNamePath, valuePath], (values) => {
roll_rt1(values[skillNamePath], values[valuePath]);
});
}
on("clicked:repeating_skills:roll clicked:repeating_masteries:roll", async (eventInfo) => {
skillClicked(eventInfo.sourceAttribute, "roll", "skillname", "mastery_max");
});
on("clicked:repeating_attacks:roll", async (eventInfo) => {
const pathBase = eventInfo.sourceAttribute.substring(0, eventInfo.sourceAttribute.length - 4);
getAttrs([`${pathBase}skillname`, `${pathBase}attack`, `${pathBase}attack_description`], (values) => {
roll_rt1(
values[`${pathBase}skillname`],
undefined,
values[`${pathBase}attack`],
values[`${pathBase}attack_description`],
values[`${pathBase}attack`]
);
});
});
on(
`clicked:repeating_talent-other:roll ${skills
.filter((s) => s["repeating_section_name"])
.map((s) => `clicked:repeating_talent-${s["repeating_section_name"]}:roll`)
.join(" ")}`,
async function (eventInfo) {
const pathBase = eventInfo.sourceAttribute.substring(0, eventInfo.sourceAttribute.length - 4);
getAttrs([`${pathBase}skillname`, `${pathBase}mastery_max`], (values) => {
roll_rt1(values[`${pathBase}skillname`], values[`${pathBase}mastery_max`]);
});
}
);
const characteristicNames = ["strength", "dexterity", "endurance", "intelligence", "charisma"];
function getLinkAttr(linkValue) {
return linkValue.substring(2, linkValue.length - 1);
}
function calculate_repeating_skills(repSection) {
getAttrs([`${repSection}_link1`, `${repSection}_link2`, ...characteristicNames], (values) => {
const output = {};
const masteryMax = Math.floor(
(parseInt(values[getLinkAttr(values[`${repSection}_link1`])]) +
parseInt(values[getLinkAttr(values[`${repSection}_link2`])])) *
2.5
);
output[`${repSection}_mastery`] = Math.min(90, masteryMax);
output[`${repSection}_mastery_max`] = masteryMax;
setAttrs(output);
});
}
on("change:repeating_skills:link1 change:repeating_skills:link2", async (eventInfo) => {
calculate_repeating_skills(eventInfo.sourceAttribute.substring(0, eventInfo.sourceAttribute.length - 6));
});
function calculate_repeating_masteries(repSections) {
getAttrs(
repSections.reduce(
(acc, repSection) => [
...acc,
`${repSection}_link1`,
`${repSection}_link2`,
`${repSection}_mastery_bonus`,
...characteristicNames,
],
[]
),
(values) => {
const output = {};
repSections.forEach((repSection) => {
const masteryMax = Math.floor(
(parseInt(values[getLinkAttr(values[`${repSection}_link1`])]) +
parseInt(values[getLinkAttr(values[`${repSection}_link2`])])) /
2 +
parseInt(values[`${repSection}_mastery_bonus`])
);
output[`${repSection}_mastery`] = Math.min(90, masteryMax);
output[`${repSection}_mastery_max`] = masteryMax;
});
setAttrs(output);
}
);
}
on("change:repeating_masteries:link1 change:repeating_masteries:link2", async (eventInfo) => {
calculate_repeating_masteries([
eventInfo.sourceAttribute.substring(0, eventInfo.sourceAttribute.length - 6),
]);
});
on("change:repeating_masteries:mastery_bonus", async (eventInfo) => {
calculate_repeating_masteries([
eventInfo.sourceAttribute.substring(0, eventInfo.sourceAttribute.length - 14),
]);
});
function calculate_repeating_talent(basePaths) {
getAttrs(
basePaths.reduce(
(acc, pathBase) => [...acc, `${pathBase}talent_name`, `${pathBase}skill_mastered`],
[]
),
(values) => {
const talentNames = basePaths.map((pathBase) => values[`${pathBase}talent_name`]);
getAttrs(
talentNames.reduce(
(acc, talentName) => [
...acc,
`talent_${talentName}_link1`,
`talent_${talentName}_link2`,
...characteristicNames,
],
[]
),
(talentValues) => {
const output = {};
basePaths.forEach((pathBase) => {
const talentName = values[`${pathBase}talent_name`];
const masteryMax = Math.floor(
(values[`${pathBase}skill_mastered`] === "on" ? 10 : 0) +
(parseInt(talentValues[talentValues[`talent_${talentName}_link1`]]) +
parseInt(talentValues[talentValues[`talent_${talentName}_link2`]])) *
2.5
);
output[`${pathBase}mastery`] = Math.min(90, masteryMax);
output[`${pathBase}mastery_max`] = masteryMax;
});
setAttrs(output);
}
);
}
);
}
on(
skills
.filter((s) => s["repeating_section_name"])
.map((s) => `change:repeating_talent-${s["repeating_section_name"]}`)
.join(" "),
async (eventInfo) => {
const rowIdIdx = eventInfo.triggerName.indexOf("_-");
if (rowIdIdx === -1) {
const sectionName = eventInfo.triggerName.substring(0, eventInfo.triggerName.lastIndexOf("_"));
getSectionIDs(sectionName, (ids) => {
calculate_repeating_talent(ids.map((id) => `${sectionName}_${id}_`));
});
} else {
if (eventInfo.sourceAttribute.indexOf("_", eventInfo.sourceAttribute.indexOf("-", 17)) !== -1) {
calculate_repeating_talent([`${eventInfo.triggerName}_`]);
}
}
}
);
function calculate_repeating_talent_other(basePaths) {
getAttrs(
basePaths.reduce(
(acc, pathBase) => [
...acc,
`${pathBase}skillname`,
`${pathBase}skill_mastered`,
`${pathBase}link1`,
`${pathBase}link2`,
],
[...characteristicNames]
),
(values) => {
const output = {};
basePaths.forEach((pathBase) => {
const masteryMax = Math.floor(
(values[`${pathBase}skill_mastered`] === "on" ? 10 : 0) +
(parseInt(values[values[`${pathBase}link1`]]) +
parseInt(values[values[`${pathBase}link2`]])) *
2.5
);
output[`${pathBase}mastery`] = Math.min(90, masteryMax);
output[`${pathBase}mastery_max`] = masteryMax;
});
setAttrs(output);
}
);
}
on("change:repeating_talent-other", (eventInfo) => {
const rowIdIdx = eventInfo.triggerName.indexOf("_-");
if (rowIdIdx === -1) {
const sectionName = eventInfo.triggerName.substring(0, eventInfo.triggerName.lastIndexOf("_"));
getSectionIDs(sectionName, (ids) => {
calculate_repeating_talent_other(ids.map((id) => `${sectionName}_${id}_`));
});
} else {
if (eventInfo.sourceAttribute.indexOf("_", eventInfo.sourceAttribute.indexOf("-", 17)) !== -1) {
calculate_repeating_talent_other([`${eventInfo.triggerName}_`]);
}
}
});
on(characteristicNames.map((c) => `change:${c}`).join(" "), async (eventInfo) => {
getSectionIDs("repeating_masteries", (ids) => {
calculate_repeating_masteries(ids.map((i) => `repeating_masteries_${i}`));
});
const repTalents = skills.filter((s) => s["repeating_section_name"]);
getAttrs(
repTalents.reduce(
(acc, t) => [
...acc,
`talent_${t["repeating_section_name"]}_link1`,
`talent_${t["repeating_section_name"]}_link2`,
],
[]
),
(talentLinks) => {
const talentsToUpdate = repTalents.filter(
(t) =>
talentLinks[`talent_${t["repeating_section_name"]}_link1`] === eventInfo.sourceAttribute ||
talentLinks[`talent_${t["repeating_section_name"]}_link2`] === eventInfo.sourceAttribute
);
talentsToUpdate.forEach((talentToUpdate) => {
const sectionName = `repeating_talent-${talentToUpdate["repeating_section_name"]}`;
getSectionIDs(sectionName, (ids) => {
calculate_repeating_talent(ids.map((id) => `${sectionName}_${id}_`));
});
});
}
);
getSectionIDs("repeating_talent-other", (ids) => {
calculate_repeating_talent_other(ids.map((i) => `repeating_talent-other_${i}_`));
});
});
})();
</script>