mirror of
https://github.com/Nighthawk42/roll20-character-sheets.git
synced 2026-09-12 01:52:32 +00:00
3484 lines
294 KiB
HTML
3484 lines
294 KiB
HTML
<!-- Agone Character Sheet -->
|
|
|
|
<!-- Version 1.1 -->
|
|
<!-- Author: Le Grand Dragon de la Foudre -->
|
|
<!-- Website: http://legdf.free.fr-->
|
|
|
|
<div class="menu">
|
|
<div class="tab-menu active" data-tab="pc" data-i18n="character-header">Personnage</div>
|
|
<div class="tab-menu" data-tab="companion" data-i18n="companion-header">Compagnon</div>
|
|
<div class="tab-menu" data-tab="demon" data-i18n="demon-header">Démon</div>
|
|
<div class="tab-menu" data-tab="npc" data-i18n="npc-header">PNJ</div>
|
|
<div class="tab-menu summary-menu" data-tab="summary" data-i18n="summary-header">Résumé</div>
|
|
<div class="tab-menu help-menu" data-tab="help" data-i18n="help-header">Aide</div>
|
|
</div>
|
|
|
|
<div class="summary section tab-container" data-tab="summary">
|
|
<div>
|
|
<div class="pc-summary grid">
|
|
<span class="pc-summary-state-lbl title bold" data-i18n="state-header">État</span>
|
|
<span class="pc-summary-rolls-lbl title bold" data-i18n="rolls-header">Jets</span>
|
|
<span data-i18n="hp-header">Points de Vie</span>
|
|
<input type="number" class="pc-summary-state-first-full number" name="attr_pcHP" title="Point(s) de Vie actuel(s)" data-i18n-title="current-hp-title">
|
|
<input type="number" class="pc-summary-state-second-full number" name="attr_pcHP_max" title="Voir Livre des Règles" data-i18n-title="core-book-title" readonly>
|
|
<span data-i18n="open-roll-header">Ouvert</span>
|
|
<button class="dice" type="roll" value="&{template:agone-generic} {{name=@{character_name}}} {{Roll=@{genericRoll} : [[[[1d10!]]+[[?{@{baseRoll}|0}]]+[[?{@{bonusPenaltyRoll}|0}]]]]}} {{Dice=@{rollRoll}: $[[0]]}} {{Base=@{baseRoll}: $[[1]]}} {{BonPen=@{bonusPenaltyRoll}: $[[2]]}}" name="roll_pc-generic-open" title="Jet ouvert" data-i18n-title="open-roll-title"></button>
|
|
<span data-i18n="closed-roll-header">Fermé</span>
|
|
<button class="dice" type="roll" value="&{template:agone-generic} {{name=@{character_name}}} {{Roll=@{genericRoll} : [[[[1d10]]+[[?{@{baseRoll}|0}]]+[[?{@{bonusPenaltyRoll}|0}]]]]}} {{Dice=@{rollRoll}: $[[0]]}} {{Base=@{baseRoll}: $[[1]]}} {{BonPen=@{bonusPenaltyRoll}: $[[2]]}}" name="roll_pc-generic-open" title="Jet fermé" data-i18n-title="closed-roll-title"></button>
|
|
<span></span>
|
|
<span></span>
|
|
<span data-i18n="fp-header">Points d'Héroïsme</span>
|
|
<input type="number" class="pc-summary-state-first-full number" name="attr_pcFP" title="Point(s) d'Héroïsme actuel(s)" data-i18n-title="current-fp-title">
|
|
<input type="number" class="pc-summary-state-second-full number" name="attr_pcFP_max" title="Score de Flamme x 2" data-i18n-title="max-fp-title" readonly>
|
|
<span data-i18n="attributes-summary-header">Caractéristiques</span>
|
|
<button class="dice" type="roll" value="@{pcAttributeRoll}" name="roll_pc-attributes" title="Jet de Caractéristique" data-i18n-title="attribute-roll-title"></button>
|
|
<span data-i18n="fumble-header"></span>
|
|
<button class="dice" type="roll" value="@{fumbleRollButton}" name="roll_pc-fumble" title="Fumble" data-i18n-title="fumble-title"></button>
|
|
<span></span>
|
|
<span></span>
|
|
<span data-i18n="stuff-header">Équipement</span>
|
|
<input type="number" class="pc-summary-state-first-full number" name="attr_pcLoad" title="Charge actuelle" data-i18n-title="current-load-title" readonly>
|
|
<input type="number" class="pc-summary-state-second-full number" name="attr_pcLoadPenalty" title="Malus dû à la surcharge" data-i18n-title="load-penalty-title" readonly>
|
|
<span data-i18n="skills-header">Compétences</span>
|
|
<button class="dice" type="roll" value="@{pcSkillsSelection}" name="roll_pc-skills" title="Jet de Compétence" name="roll_pc-skills" data-i18n-title="skill-roll-title"></button>
|
|
<span data-i18n="invoking-header"></span>
|
|
<button class="dice" type="roll" value="&{template:agone-invoking} {{name=@{character_name}}}{{Invoking=@{invokingRoll} : [[[[1d10!]]+[[@{pcInvokingAptitute}]]+[[?{@{bonusPenaltyRoll}|0}]]]]}} {{Dice=@{rollRoll}: $[[0]]}} {{Base=@{baseRoll}: $[[1]]}} {{BonPen=@{bonusPenaltyRoll}: $[[2]]}}" name="roll_pc-invoking" title="Jet de Conjuration" data-i18n-title="invoking-roll-title"></button>
|
|
<span></span>
|
|
<span></span>
|
|
<span data-i18n="armor-header">Armure</span>
|
|
<input type="checkbox" name="attr_pcArmorWorn" value="1" title="Armure portée" data-i18n-title="armor-worn-title">
|
|
<input type="number" class="number half-number item-left" name="attr_pcArmorProtection" title="Protection de l'armure" data-i18n-title="armor-protection-title">
|
|
<input type="number" class="number half-number item-right" name="attr_pcArmorAgilityPenalty" title="Malus de l'armure" data-i18n-title="armor-penalty-title">
|
|
<input type="number" class="number half-number item-left" name="attr_pcArmorPerceptionPenalty" title="Malus de perception de l'armure" data-i18n-title="armor-perception-penalty-title" readonly>
|
|
<span data-i18n="initiative-header">Initiative</span>
|
|
<button class="dice" type="roll" value="&{template:agone-initiative} {{name=@{selected|character_name}}} {{Initiative=@{initiativeRoll}[[[[1d10]]+[[@{pcInit}]]+[[?{@{bonusPenaltyRoll}|@{pcLoadPenalty}}]] &{tracker}]]}} {{Dice=@{rollRoll}: $[[0]]}} {{Base=@{baseRoll}: $[[1]]}} {{BonPen=@{bonusPenaltyRoll}: $[[2]]}}" name="roll_pc-init" title="Jet d'Initiative" data-i18n-title="initiative-roll-title"></button>
|
|
<span data-i18n="dodge-header">Esquive</span>
|
|
<button class="dice" type="roll" value="&{template:agone-dodge} {{name=@{character_name}}} {{Dodge=@{dodgeRoll} : [[[[1d10!]]+[[@{pcDodgeTotal}]]+[[?{@{bonusPenaltyRoll}|@{pcArmorAGIPenalty}+@{pcLoadPenalty}}]]]]}} {{Dice=@{rollRoll}: $[[0]]}} {{Base=@{baseRoll}: $[[1]]}} {{BonPen=@{bonusPenaltyRoll}: $[[2]]}}" name="roll_pc-dodge" title="Jet d'Esquive" data-i18n-title="dodge-roll-title"></button>
|
|
<span data-i18n="natural-defense-header">Défense Naturelle</span>
|
|
<button class="dice" type="roll" value="&{template:agone-natural-defense} {{name=@{character_name}}} {{NaturalDefense=@{naturalDefenseRoll}: [[[[1d10!]]+[[@{pcNaturalDefense}]]+[[?{@{bonusPenaltyRoll}|@{pcArmorAGIPenalty}+@{pcLoadPenalty}}]]]]}} {{Dice=@{rollRoll}: $[[0]]}} {{Base=@{baseRoll}: $[[1]]}} {{BonPen=@{bonusPenaltyRoll}: $[[2]]}}" name="roll_pc-natural-defense" title="Jet de Défense Naturelle" data-i18n-title="natural-defense-roll-title"></button>
|
|
<span data-i18n="serious-wound(s)-header">Blessure(s) Grave(s)</span>
|
|
<input type="number" name="attr_pcSeriousWound" class="pc-summary-state-first-full number" title="Blessure(s) Grave(s) encaissée(s)" data-i18n-title="serious-wound(s)-received-title" value="0">
|
|
<input type="number" name="attr_pcSeriousWoundPenalty" class="pc-summary-state-second-full number" title="Malus dû à la ou les Blessure(s) Grave(s)" data-i18n-title="serious-wound(s)-penalty-title" readonly>
|
|
<span data-i18n="spells-initiative-header">Initiative (Sorts)</span>
|
|
<button class="dice" type="roll" value="&{template:agone-initiative} {{name=@{selected|character_name}}} {{Initiative=@{initiativeRoll}[[[[1d10]]+[[@{pcMagicInit}]]+[[?{@{bonusPenaltyRoll}|0}]] &{tracker}]]}} {{Dice=@{rollRoll}: $[[0]]}} {{Base=@{baseRoll}: $[[1]]}} {{BonPen=@{bonusPenaltyRoll}: $[[2]]}}" name="roll_pc-magic-init" title="Jet d'Initiative" data-i18n-title="initiative-roll-title"></button>
|
|
<span data-i18n="ascendancy-header">Emprise</span>
|
|
<button class="dice" type="roll" value="@{pcAscendancySelection}" name="roll_pc-ascendancy-global" title="Jet d'Emprise" data-i18n-title="ascendancy-roll-title"></button>
|
|
<span data-i18n="magical-arts-header"></span>
|
|
<button class="dice" type="roll" value="@{pcArtSelection}" name="roll_pc-art-global" title="Jet d'Art Magique" data-i18n-title="magical-arts-roll-title"></button>
|
|
</div>
|
|
<hr class="separator">
|
|
<div class="pc-summary-weapons grid">
|
|
<span class="summary-weapon bold" name="attr_pcWeapon1" data-summary="pcWeapon1"></span>
|
|
<span class="summary-weapon bold" name="attr_pcWeapon2" data-summary="pcWeapon2"></span>
|
|
<span class="summary-weapon bold" name="attr_pcWeapon3" data-summary="pcWeapon3"></span>
|
|
<span class="summary-weapon bold" name="attr_pcWeapon4" data-summary="pcWeapon4"></span>
|
|
<span class="summary-weapon bold" name="attr_pcWeapon5" data-summary="pcWeapon5"></span>
|
|
<button class="summary-weapon dice item-center" type="roll" value="@{pcWeapon1Roll}" name="roll_pc-fight1" title="Jet de combat" data-i18n-title="fight-roll-title" data-summary="pcWeapon1"></button>
|
|
<button class="summary-weapon dice item-center" type="roll" value="@{pcWeapon2Roll}" name="roll_pc-fight2" title="Jet de combat" data-i18n-title="fight-roll-title" data-summary="pcWeapon2"></button>
|
|
<button class="summary-weapon dice item-center" type="roll" value="@{pcWeapon3Roll}" name="roll_pc-fight3" title="Jet de combat" data-i18n-title="fight-roll-title" data-summary="pcWeapon3"></button>
|
|
<button class="summary-weapon dice item-center" type="roll" value="@{pcWeapon4Roll}" name="roll_pc-fight4" title="Jet de combat" data-i18n-title="fight-roll-title" data-summary="pcWeapon4"></button>
|
|
<button class="summary-weapon dice item-center" type="roll" value="@{pcWeapon5Roll}" name="roll_pc-fight5" title="Jet de combat" data-i18n-title="fight-roll-title" data-summary="pcWeapon5"></button>
|
|
<span class="summary-weapon bold" name="attr_pcWeapon6" data-summary="pcWeapon6"></span>
|
|
<span class="summary-weapon bold" name="attr_pcWeapon7" data-summary="pcWeapon7"></span>
|
|
<span class="summary-weapon bold" name="attr_pcWeapon8" data-summary="pcWeapon8"></span>
|
|
<span class="summary-weapon bold" name="attr_pcWeapon9" data-summary="pcWeapon9"></span>
|
|
<span class="summary-weapon bold" name="attr_pcWeapon10" data-summary="pcWeapon10"></span>
|
|
<button class="summary-weapon dice item-center" type="roll" value="@{pcWeapon6Roll}" name="roll_pc-fight6" title="Jet de combat" data-i18n-title="fight-roll-title" data-summary="pcWeapon6"></button>
|
|
<button class="summary-weapon dice item-center" type="roll" value="@{pcWeapon7Roll}" name="roll_pc-fight7" title="Jet de combat" data-i18n-title="fight-roll-title" data-summary="pcWeapon7"></button>
|
|
<button class="summary-weapon dice item-center" type="roll" value="@{pcWeapon8Roll}" name="roll_pc-fight8" title="Jet de combat" data-i18n-title="fight-roll-title" data-summary="pcWeapon8"></button>
|
|
<button class="summary-weapon dice item-center" type="roll" value="@{pcWeapon9Roll}" name="roll_pc-fight9" title="Jet de combat" data-i18n-title="fight-roll-title" data-summary="pcWeapon9"></button>
|
|
<button class="summary-weapon dice item-center" type="roll" value="@{pcWeapon10Roll}" name="roll_pc-fight10" title="Jet de combat" data-i18n-title="fight-roll-title" data-summary="pcWeapon10"></button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="help section tab-container" data-tab="help">
|
|
<h1 class="title bold" data-i18n="help-section-header">Aide à l'utilisation de la fiche de personnage</h1>
|
|
<p>
|
|
<strong data-i18n="general-use-header">Utilisation générale</strong><br>
|
|
<ul>
|
|
<li data-i18n="general-use-item1-line">g
|
|
Le menu en haut de la feuille permet de créer des personnages, des compagnons (et montures), des démons et des PNJs. Un seul menu doit être utilisé par personnage.
|
|
</li>
|
|
<li data-i18n="general-use-item2-line">
|
|
À l'aide des boutons ronds en bois, vous pouvez ouvrir la section correspondante et y trouver son contenu.
|
|
</li>
|
|
<li data-i18n="general-use-item3-line">
|
|
Pour savoir à quoi correspondent les cases à remplir, laissez la souris dessus pour voir apparaître l'info-bulle.
|
|
</li>
|
|
<li data-i18n="general-use-item4-line">
|
|
Les cases en gris foncé sont automatiquement calculées et ne peuvent être modifiées.
|
|
</li>
|
|
<li data-i18n="general-use-item5-line">
|
|
Certains calculs nécessitent de fermer et de rouvrir la feuille.
|
|
</li>
|
|
<li data-i18n="general-use-item6-line">
|
|
Les boutons contenant la représentation d'un dé permettent d'effectuer un jet en relation à ce qui se trouvent à leur gauche (<i>Exemple : le bouton situé à droite de <strong>Fumble</strong> permet d'effectuer un jet correspondant à un fumble</i>).
|
|
</li>
|
|
<li data-i18n="general-use-item7-line">
|
|
On peut glisser-déposer les boutons dans la barre de macros rapides.
|
|
</li>
|
|
<li data-i18n="general-use-item8-line">
|
|
Tous les jets demanderont le cumul d'éventuels bonus et malus via l'interface du jeu, comme les malus dus aux blessures graves par exemple.
|
|
</li>
|
|
<li data-i18n="general-use-item9-line">
|
|
Le bouton à droite de <strong>Fumble</strong> permet de relancer un 1 sur 1d10 et soustraire le résultat.
|
|
</li>
|
|
<li data-i18n="general-use-item10-line">
|
|
Dans certaines sections, on peut rajouter des éléments (<i>Exemple : ajouter des armes</i>). Le bouton <span style="font-family: pictos;">&</span> permet d'ajouter. Le bouton <span style="font-family: pictos;">y</span> permet de passer en mode édition. Deux boutons apparaissent alors, celui de droite en rouge permet de supprimer, celui de gauche (hamburger) permet de déplacer. Enfin le bouton <span style="font-family: pictos;">3</span> permet de valider les changements du mode édition.
|
|
</li>
|
|
<li data-i18n="general-use-item11-line">
|
|
Lors des jets, dans le chat, le dé rouge peut être utilisé pour lancer un fumble.
|
|
</li>
|
|
</ul>
|
|
</p>
|
|
<p>
|
|
<strong data-i18n="attributes-header">Caractéristiques primaires</strong>
|
|
<ul>
|
|
<li data-i18n="attributes-item1-line">
|
|
Le bouton dans la barre de titre regroupe tous les jets de caractéristique en un.
|
|
</li>
|
|
<li data-i18n="attributes-item2-line">
|
|
Pour les doubles cases, celle de gauche correspond à la caractéristique ou l'aspect, celle de droite à l'expérience dépenséee.
|
|
</li>
|
|
</ul>
|
|
</p>
|
|
<p>
|
|
<strong data-i18n="skills-header">Compétences</strong>
|
|
<ul>
|
|
<li data-i18n="skills-item1-line">
|
|
Le bouton dans la barre de titre regroupe tous les jets de compétence en un.
|
|
</li>
|
|
<li data-i18n="skills-item2-line">
|
|
Pour les doubles cases, celle de gauche correspond à la compétence, celle de droite à l'expérience dépensée.
|
|
</li>
|
|
<li data-i18n="skills-item3-line">
|
|
Seules 10 compétences d'armes seront prises en compte dynamiquement pour les jets globaux.
|
|
</li>
|
|
</ul>
|
|
</p>
|
|
<p>
|
|
<strong data-i18n="penalty-header">Malus</strong>
|
|
<ul>
|
|
<li data-i18n="penalty-item1-line">
|
|
Les malus d'AGI et de PER sont proposés dans les jets lorsque la case de l'armure est cochée.
|
|
</li>
|
|
<li data-i18n="penalty-item2-line">
|
|
Les autres malus ne sont pas inclus dans les jets.
|
|
</li>
|
|
</ul>
|
|
</p>
|
|
<p>
|
|
<strong data-i18n="ascendancy-magical-arts-header">Emprise & Arts Magiques</strong>
|
|
<ul>
|
|
<li data-i18n="ascendancy-magical-arts-item1-line">
|
|
Le bouton dans la barre de titre regroupe tous les jets de magie en un.
|
|
</li>
|
|
</ul>
|
|
</p>
|
|
<p>
|
|
<strong data-i18n="summary-title">Résumé</strong>
|
|
<ul>
|
|
<li data-i18n="summary-item1-line">
|
|
Le menu <strong>Résumé</strong> permet d'accéder rapidement à de nombreux jets ainsi qu'aux informations d'état les plus courantes.
|
|
</li>
|
|
<li data-i18n="summary-item2-line">
|
|
Le menu n'est disponible que pour les personnages joueurs.
|
|
</li>
|
|
</ul>
|
|
</p>
|
|
</div>
|
|
<div class="pc-sheet section tab-container active" data-tab="pc">
|
|
<div class="pc-infos grid">
|
|
<span class="pc-name-lbl" data-i18n="name-header">Nom</span>
|
|
<input type="text" name="attr_character_name" class="pc-name text max" title="Nom" data-i18n-title="name-title">
|
|
<span class="pc-origin-lbl" data-i18n="birthplace-header">Origine</span>
|
|
<input type="text" name="attr_pcOrigin" class="pc-origin text max" title="Royaume d'origine" data-i18n-title="realm-birthplace-title">
|
|
<span class="pc-occupation-lbl" data-i18n="occupation-header">Occupation</span>
|
|
<input type="text" name="attr_pcOccupation" class="pc-occupation text max" title="Métier" data-i18n-title="profession-title">
|
|
<span class="pc-sex-lbl" data-i18n="sex-header">Sexe</span>
|
|
<input type="text" name="attr_pcSex" class="pc-sex text max" title="Genre" data-i18n-title="gender-title">
|
|
<span class="pc-age-lbl" data-i18n="age-header">Âge</span>
|
|
<input type="text" name="attr_pcAge" class="pc-age text ninety" title="Âge" data-i18n-title="age-title">
|
|
<span class="pc-size-lbl" data-i18n="size-header">Taille</span>
|
|
<input type="text" name="attr_pcSize" class="pc-size text max" title="Taille" data-i18n-title="size-title">
|
|
<span class="pc-siz-lbl" data-i18n="SIZ-header">TAI</span>
|
|
<input type="number" name="attr_pcSIZ" class="pc-siz number" title="Score de TAI" data-i18n-title="SIZ-title">
|
|
<span class="pc-exp-title title bold" data-i18n="experience-header">Expérience</span>
|
|
<span class="pc-hpfp-title title bold" data-i18n="hp-fp-header">PdV & PH</span>
|
|
<span class="pc-weight-lbl" data-i18n="weight-header">Masse</span>
|
|
<input type="text" name="attr_pcWeight" class="pc-weight text max" title="Masse en kg" data-i18n-title="weight-title">
|
|
<span class="pc-race-lbl" data-i18n="race-header">Peuple</span>
|
|
<select name="attr_pcRace" class="pc-race select ninety">
|
|
<option value="Human" data-i18n="human-option">Humain</option>
|
|
<option value="Spriggan" data-i18n="spriggan-option">Farfadet</option>
|
|
<option value="Sprite" data-i18n="sprite-option">Lutin</option>
|
|
<option value="Satyr" data-i18n="satyr-option">Satyre</option>
|
|
<option value="Giant" data-i18n="giant-option">Géant</option>
|
|
<option value="Minotaur" data-i18n="minotaur-option">Minotaure</option>
|
|
<option value="Ogre" data-i18n="ogre-option">Ogre</option>
|
|
<option value="Draaken" data-i18n="draaken-option">Drakonien</option>
|
|
<option value="Morgana" data-i18n="morgana-option">Morgane</option>
|
|
<option value="Pixie" data-i18n="pixie-option">Pixie</option>
|
|
<option value="Black Fey" data-i18n="black-fey-option">Fée Noire</option>
|
|
<option value="Medusa" data-i18n="medusa-option">Méduse</option>
|
|
<option value="Dwarf" data-i18n="dwarf-option">Nain</option>
|
|
</select>
|
|
<span class="pc-godfather-lbl" data-i18n="seasonling-sponsor-header">Parrain</span>
|
|
<input type="text" name="attr_pcSeasonlingSponsor" class="pc-godfather text max" title="Nom ou Saison du parrain" data-i18n-title="seasonling-sponsor-title">
|
|
<span class="pc-move-lbl" data-i18n="MV-header">MV</span>
|
|
<input type="number" name="attr_pcMove" class="pc-move number" title="Score de MV" data-i18n-title="MV-title">
|
|
<span class="pc-cexp-lbl" data-i18n="experience-header">Actuelle</span>
|
|
<input type="number" name="attr_pcCExp" class="pc-cexp number" title="Expérience non dépensée" data-i18n-title="unused-experience-title">
|
|
<span class="pc-hp-lbl" data-i18n="HP-header">PdV</span>
|
|
<input type="number" name="attr_pcHP" class="pc-hp number" title="Point(s) de Vie actuel(s)" data-i18n-title="current-hp-title">
|
|
<span class="pc-desc-lbl" data-i18n="description-header">Description</span>
|
|
<span class="pc-exp-lbl" data-i18n="total-experience-header">Totale</span>
|
|
<input type="number" name="attr_pcExp" class="pc-exp number" title="Expérience totale" data-i18n-title="total-experience-title">
|
|
<span class="pc-fp-lbl" data-i18n="FP-header">PH</span>
|
|
<input type="number" name="attr_pcFP" class="pc-fp number" title="Point(s) d'Héroïsme actuel(s)" data-i18n-title="current-fp-title">
|
|
<textarea name="attr_pcDescription" id="textarea" class="pc-desc textarea" placeholder="Description" data-i18n-placeholder="description-placeholder"></textarea>
|
|
<img src="https://imgsrv.roll20.net/?src=http%3A//legdf.free.fr/src/img/roll20/souffre-jour.png" class="pc-logo">
|
|
</div>
|
|
<ul class="fireflies">
|
|
<li class="firefly1"></li>
|
|
<li class="firefly2"></li>
|
|
<li class="firefly3"></li>
|
|
<li class="firefly4"></li>
|
|
<li class="firefly5"></li>
|
|
<li class="firefly6"></li>
|
|
<li class="firefly7"></li>
|
|
<li class="firefly8"></li>
|
|
<li class="firefly9"></li>
|
|
<li class="firefly10"></li>
|
|
</ul>
|
|
<div>
|
|
<div class="pc-attributes-menu title">
|
|
<button class="pc-sub-menu" data-tab="pc-attributes"></button>
|
|
<span data-i18n="ATTRIBUTES-header">CARACTÉRISTIQUES PRIMAIRES</span>
|
|
<button class="dice menu-dice" type="roll" value="@{pcAttributeRoll}" title="Jet de Caractéristique" data-i18n-title="attribute-roll-title"></button>
|
|
<span data-i18n="flame-header">Flamme</span>
|
|
<input type="number" name="attr_pcFlame" class="number border-white" title="Score de Flamme" data-i18n-title="flame-title" readonly>
|
|
<span data-i18n="dark-flame-header">Flamme Noire</span>
|
|
<input type="number" name="attr_pcDarkFlame" class="number border-white" title="Score de Flamme Noire" data-i18n-title="dark-flame-title" readonly>
|
|
</div>
|
|
<div class="pc-attributes grid" data-tab="pc-attributes">
|
|
<span class="pc-body-title title bold" data-i18n="BODY-header">CORPS</span>
|
|
<span class="pc-spirit-title title bold" data-i18n="SPIRIT-header">ESPRIT</span>
|
|
<span class="pc-soul-title title bold" data-i18n="SOUL-header">ÂME</span>
|
|
<span class="pc-body-lbl title bold" data-i18n="Body-header">Corps</span>
|
|
<input type="number" name="attr_pcBody" class="pc-body number half-number" title="Score de Corps" data-i18n-title="body-title">
|
|
<input type="number" name="attr_pcBodyExp" class="pc-body-exp number half-number" title="Expérience totale dépensée dans une caractéristique ou compétence liée au Corps" data-i18n-title="body-experience-title">
|
|
<span class="pc-dark-body-lbl title bold" data-i18n="dark-body-header">Corps Noir</span>
|
|
<input type="number" name="attr_pcDarkBody" class="pc-dark-body number" title="Score de Corps Noir" data-i18n-title="dark-body-title">
|
|
<span class="pc-spirit-lbl title bold" data-i18n="spirit-header">Esprit</span>
|
|
<input type="number" name="attr_pcSpirit" class="pc-spirit number half-number" title="Score d'Esprit" data-i18n-title="spirit-title">
|
|
<input type="number"name="attr_pcSpiritExp" class="pc-spirit-exp number half-number" title="Expérience totale dépensée dans une caractéristique ou compétence liée à l'Esprit" data-i18n-title="spirit-experience-title">
|
|
<span class="pc-dark-spirit-lbl title bold" data-i18n="dark-spirit-header">Esprit Noir</span>
|
|
<input type="number" name="attr_pcDarkSpirit" class="pc-dark-spirit number" title="Score d'Esprit Noir" data-i18n-title="dark-spirit-title">
|
|
<span class="pc-soul-lbl title bold" data-i18n="soul-header">Âme</span>
|
|
<input type="number" name="attr_pcSoul" class="pc-soul number half-number" title="Score d'Âme" data-i18n-title="soul-title">
|
|
<input type="number"name="attr_pcSoulExp" class="pc-soul-exp number half-number" title="Expérience totale dépensée dans une caractéristique ou compétence liée à l'Âme" data-i18n-title="soul-experience-title">
|
|
<span class="pc-dark-soul-lbl title bold" data-i18n="dark-soul-header">Âme Noire</span>
|
|
<input type="number" name="attr_pcDarkSoul" class="pc-dark-soul number" title="Score d'Âme Noire" data-i18n-title="dark-soul-title">
|
|
<span class="pc-body-bonus-lbl title bold" data-i18n="body-bonus-header">Bonus de Corps</span>
|
|
<input type="number" name="attr_pcBodyBonus" class="pc-body-bonus number" title="Différence entre Corps et Corps Noir" data-i18n-title="body-bonus-title" readonly>
|
|
<span class="pc-spirit-bonus-lbl title bold" data-i18n="spirit-bonus-header">Bonus d'Esprit</span>
|
|
<input type="number" name="attr_pcSpiritBonus" class="pc-spirit-bonus number" title="Différence entre Esprit et Esprit Noir" data-i18n-title="spirit-bonus-title" readonly>
|
|
<span class="pc-soul-bonus-lbl title bold" data-i18n="soul-bonus-header">Bonus d'Âme</span>
|
|
<input type="number" name="attr_pcSoulBonus" class="pc-soul-bonus number" title="Différence entre Âme et Âme Noire" data-i18n-title="soul-bonus-title" readonly>
|
|
<span class="pc-agility-lbl" data-i18n="AGIlity-header">AGIlité</span>
|
|
<input type="number" name="attr_pcAgility" class="pc-agility number half-number item-right" title="Score d'AGIlité" data-i18n-title="AGIlity-title">
|
|
<input type="number" name="attr_pcAgilityExp" class="pc-agility-exp number half-number item-center" title="Expérience dépensée en AGIlité" data-i18n-title="AGIlity-experience-title">
|
|
<button class="pc-agility-dice dice item-left" type="roll" value="&{template:agone-chars} {{name=@{character_name}}} {{Attribute=@{agilityRoll} : [[[[1d10!]]+[[2*@{pcAgility}]]+[[@{pcBodyBonus}]]+[[?{@{bonusPenaltyRoll}|@{pcArmorAGIPenalty}+@{pcLoadPenalty}}]]]]}} {{Dice=@{rollRoll}: $[[0]]}} {{Attr=@{agilityRoll} x2 : $[[1]]}} {{AspBonus=@{bodyBonusRoll} : $[[2]]}} {{BonPen=@{bonusPenaltyRoll}: $[[3]]}}" name="roll_pc-agility" title="Jet de Caractéristique" data-i18n-title="attribute-roll-title"></button>
|
|
<span class="pc-strength-lbl" data-i18n="STRength-header">FORce</span>
|
|
<input type="number" name="attr_pcStrength" class="pc-strength number half-number item-right" title="Score de FORce" data-i18n-title="STRength-title">
|
|
<input type="number" name="attr_pcStrengthExp" class="pc-strength-exp number half-number item-center" title="Expérience dépensée en FORce" data-i18n-title="STRength-experience-title">
|
|
<button class="pc-strength-dice dice item-left" type="roll" value="&{template:agone-chars} {{name=@{character_name}}} {{Attribute=@{strengthRoll} : [[[[1d10!]]+[[2*@{pcStrength}]]+[[@{pcBodyBonus}]]+[[?{@{bonusPenaltyRoll}|@{pcLoadPenalty}}]]]]}} {{Dice=@{rollRoll}: $[[0]]}} {{Attr=@{strengthRoll} x2 : $[[1]]}} {{AspBonus=@{bodyBonusRoll} : $[[2]]}} {{BonPen=@{bonusPenaltyRoll}: $[[3]]}}" name="roll_pc-strength" title="Jet de Caractéristique" data-i18n-title="attribute-roll-title"></button>
|
|
<span class="pc-intelligence-lbl" data-i18n="INTelligence-header">INTelligence</span>
|
|
<input type="number" name="attr_pcIntelligence" class="pc-intelligence number half-number item-right" title="Score d'INTelligence" data-i18n-title="INTelligence-title">
|
|
<input type="number" name="attr_pcIntelligenceExp" class="pc-intelligence-exp number half-number item-center" title="Expérience dépensée en INTelligence" data-i18n-title="INTelligence-experience-title">
|
|
<button class="pc-intelligence-dice dice item-left" type="roll" value="&{template:agone-chars} {{name=@{character_name}}} {{Attribute=@{intelligenceRoll} : [[[[1d10!]]+[[2*@{pcIntelligence}]]+[[@{pcSpiritBonus}]]+[[?{@{bonusPenaltyRoll}|0}]]]]}} {{Dice=@{rollRoll}: $[[0]]}} {{Attr=@{intelligenceRoll} x2 : $[[1]]}} {{AspBonus=@{spiritBonusRoll} : $[[2]]}} {{BonPen=@{bonusPenaltyRoll}: $[[3]]}}" name="roll_pc-intelligence" title="Jet de Caractéristique" data-i18n-title="attribute-roll-title"></button>
|
|
<span class="pc-charisma-lbl" data-i18n="CHArisma-header">CHArisme</span>
|
|
<input type="number" name="attr_pcCharisma" class="pc-charisma number half-number item-right" title="Score de CHArisme" data-i18n-title="CHArisma-title">
|
|
<input type="number" name="attr_pcCharismaExp" class="pc-charisma-exp number half-number item-center" title="Expérience dépensée en CHArisme" data-i18n-title="CHArisma-experience-title">
|
|
<button class="pc-charisma-dice dice item-left" type="roll" value="&{template:agone-chars} {{name=@{character_name}}} {{Attribute=@{charismaRoll} : [[[[1d10!]]+[[2*@{pcCharisma}]]+[[@{pcSoulBonus}]]+[[?{@{bonusPenaltyRoll}|0}]]]]}} {{Dice=@{rollRoll}: $[[0]]}} {{Attr=@{charismaRoll} x2 : $[[1]]}} {{AspBonus=@{soulBonusRoll} : $[[2]]}} {{BonPen=@{bonusPenaltyRoll}: $[[3]]}}" name="roll_pc-charisma" title="Jet de Caractéristique" data-i18n-title="attribute-roll-title"></button>
|
|
<span class="pc-perception-lbl" data-i18n="PERception-header">PERception</span>
|
|
<input type="number" name="attr_pcPerception" class="pc-perception number half-number item-right" title="Score de PERception" data-i18n-title="PERception-title">
|
|
<input type="number" name="attr_pcPerceptionExp" class="pc-perception-exp number half-number item-center" title="Expérience dépensée en PERception" data-i18n-title="PERception-experience-title">
|
|
<button class="pc-perception-dice dice item-left" type="roll" value="&{template:agone-chars} {{name=@{character_name}}} {{Attribute=@{perceptionRoll} : [[[[1d10!]]+[[2*@{pcPerception}]]+[[@{pcBodyBonus}]]+[[?{@{bonusPenaltyRoll}|@{pcArmorPERPenalty}}]]]]}} {{Dice=@{rollRoll}: $[[0]]}} {{Attr=@{perceptionRoll} x2 : $[[1]]}} {{AspBonus=@{bodyBonusRoll} : $[[2]]}} {{BonPen=@{bonusPenaltyRoll}: $[[3]]}}" name="roll_pc-perception"></button>
|
|
<span class="pc-stamina-lbl" data-i18n="STAmina-header" title="Jet de Caractéristique" data-i18n-title="attribute-roll-title">RÉSistance</span>
|
|
<input type="number" name="attr_pcStamina" class="pc-stamina number half-number item-right" title="Score de RÉSistance" data-i18n-title="STAmina-title">
|
|
<input type="number" name="attr_pcStaminaExp" class="pc-stamina-exp number half-number item-center" title="Expérience dépensée en RÉSistance" data-i18n-title="STAmina-experience-title">
|
|
<button class="pc-stamina-dice dice item-left" type="roll" value="&{template:agone-chars} {{name=@{character_name}}} {{Attribute=@{staminaRoll} : [[[[1d10!]]+[[2*@{pcStamina}]]+[[@{pcBodyBonus}]]+[[?{@{bonusPenaltyRoll}|@{pcLoadPenalty}}]]]]}} {{Dice=@{rollRoll}: $[[0]]}} {{Attr=@{staminaRoll} x2 : $[[1]]}} {{AspBonus=@{bodyBonusRoll} : $[[2]]}} {{BonPen=@{bonusPenaltyRoll}: $[[3]]}}" name="roll_pc-stamina" title="Jet de Caractéristique" data-i18n-title="attribute-roll-title"></button>
|
|
<span class="pc-will-lbl" data-i18n="WILl-header">VOLonté</span>
|
|
<input type="number" name="attr_pcWill" class="pc-will number half-number item-right" title="Score de VOLonté" data-i18n-title="WILl-title">
|
|
<input type="number" name="attr_pcWillExp" class="pc-will-exp number half-number item-center" title="Expérience dépensée en VOLonté" data-i18n-title="WILl-experience-title">
|
|
<button class="pc-will-dice dice item-left" type="roll" value="&{template:agone-chars} {{name=@{character_name}}} {{Attribute=@{willRoll} : [[[[1d10!]]+[[2*@{pcWill}]]+[[@{pcSpiritBonus}]]+[[?{@{bonusPenaltyRoll}|0}]]]]}} {{Dice=@{rollRoll}: $[[0]]}} {{Attr=@{willRoll} x2 : $[[1]]}} {{AspBonus=@{spiritBonusRoll} : $[[2]]}} {{BonPen=@{bonusPenaltyRoll}: $[[3]]}}" name="roll_pc-will" title="Jet de Caractéristique" data-i18n-title="attribute-roll-title"></button>
|
|
<span class="pc-creativity-lbl" data-i18n="CREativity-header">CRÉativité</span>
|
|
<input type="number" name="attr_pcCreativity" class="pc-creativity number half-number item-right" title="Score de CRÉativité" data-i18n-title="CREativity-title">
|
|
<input type="number" name="attr_pcCreativityExp" class="pc-creativity-exp number half-number item-center" title="Expérience dépensée en CRÉativité" data-i18n-title="CREativity-experience-title">
|
|
<button class="pc-creativity-dice dice item-left" type="roll" value="&{template:agone-chars} {{name=@{character_name}}} {{Attribute=@{creativityRoll} : [[[[1d10!]]+[[2*@{pcCreativity}]]+[[@{pcSoulBonus}]]+[[?{@{bonusPenaltyRoll}|0}]]]]}} {{Dice=@{rollRoll}: $[[0]]}} {{Attr=@{creativityRoll} x2 : $[[1]]}} {{AspBonus=@{soulBonusRoll} : $[[2]]}} {{BonPen=@{bonusPenaltyRoll}: $[[3]]}}" name="roll_pc-creativity" title="Jet de Caractéristique" data-i18n-title="attribute-roll-title"></button>
|
|
</div>
|
|
</div>
|
|
<div>
|
|
<div class="pc-secondary-attributes-menu title">
|
|
<button class="pc-sub-menu" data-tab="pc-secondary-attributes"></button>
|
|
<span data-i18n="SECONDARY-ATTRIBUTES-header">CARACTÉRISTIQUES SECONDAIRES</span>
|
|
<span data-i18n="fumble-header">Fumble</span>
|
|
<button class="dice menu-dice" type="roll" value="@{fumbleRollButton}" name="roll_pc-fumble" title="Fumble" data-i18n-title="fumble-title"></button>
|
|
</div>
|
|
<div class="pc-secondary-attributes grid" data-tab="pc-secondary-attributes">
|
|
<span data-i18n="MELee-header">MÊLée</span>
|
|
<input type="number" name="attr_pcMelee" class="number" title="(FOR+AGIx2)/3" data-i18n-title="melee-title" readonly>
|
|
<span data-i18n="AIM-header">TIR</span>
|
|
<input type="number" name="attr_pcAim" class="number" title="(PER+AGI)/2" data-i18n-title="aim-title" readonly>
|
|
<span data-i18n="DB-header">BD</span>
|
|
<input type="number" name="attr_pcDamageBonus" class="number" title="Voir Livre des Règles" data-i18n-title="core-book-title">
|
|
<span data-i18n="fortune-header">Héroïsme</span>
|
|
<input type="number" name="attr_pcFP_max" class="number" title="Score de Flamme x 2" data-i18n-title="max-fp-title" readonly>
|
|
<span data-i18n="hp-header">Points de Vie</span>
|
|
<input type="number" name="attr_pcHP_max" class="number" title="Voir Livre des Règles" data-i18n-title="core-book-title">
|
|
<span data-i18n="serious-wound-threshold-header">Bl. Grave</span>
|
|
<input type="number" name="attr_pcSeriousWoundThreshold" class="number" title="PdV/3" data-i18n-title="serious-wound-threshold-title" readonly>
|
|
<span data-i18n="critical-wound-threshold-header">Bl. Critique</span>
|
|
<input type="number" name="attr_pcCriticalWoundThreshold" class="number" title="PdV/2" data-i18n-title="critical-wound-threshold-title" readonly>
|
|
<span data-i18n="max-load-header">Charge max.</span>
|
|
<input type="number" name="attr_pcMaxLoad" class="number" title="Voir Livre des Règles" data-i18n-title="core-book-title">
|
|
<span data-i18n="half-load-header">Demi charge</span>
|
|
<input type="number" name="attr_pcHalfLoad" class="number" title="CM/2" data-i18n-title="half-load-title" readonly>
|
|
<span data-i18n="daily-load-header">Charge quot.</span>
|
|
<input type="number" name="attr_pcDailyLoad" class="number" title="CM/4" data-i18n-title="daily-load-title" readonly>
|
|
<span data-i18n="ART-header">ART</span>
|
|
<input type="number" name="attr_pcArt" class="number" title="(CHA+CRE)/2" data-i18n-title="art-title" readonly>
|
|
<span data-i18n="ASC-header">EMP</span>
|
|
<input type="number" name="attr_pcAscendancy" class="number" title="INT, (INT+VOL)/2 ou VOL" data-i18n-title="asc-title">
|
|
</div>
|
|
</div>
|
|
<div>
|
|
<div class="pc-skills-menu title">
|
|
<button class="pc-sub-menu" data-tab="pc-skills"></button>
|
|
<span data-i18n="SKILLS-header">COMPÉTENCES</span>
|
|
<button class="dice menu-dice" type="roll" value="@{pcSkillsSelection}" name="roll_pc-skills" title="Jet de Compétence" name="roll_pc-skills" data-i18n-title="skill-roll-title"></button>
|
|
</div>
|
|
<div class="pc-skills grid" data-tab="pc-skills">
|
|
<span class="title bold" data-i18n="name-header">Nom</span>
|
|
<span class="title bold" data-i18n="branch-header">Domaine</span>
|
|
<span class="title bold" data-i18n="specialty-header">Spécialité</span>
|
|
<span class="title bold" data-i18n="score-header">Score</span>
|
|
<span class="title bold" data-i18n="EXP-header">EXP</span>
|
|
<span class="title bold" data-i18n="roll-header">Jet</span>
|
|
<fieldset class="repeating_pc-skills">
|
|
<div class="pc-skills-container grid">
|
|
<select name="attr_pcSkillName" class="pc-skill-name select">
|
|
<option data-i18n="acrobatics-option">Acrobatie (Maraude)</option>
|
|
<option data-i18n="alchemy-option">Alchemie (Occulte)</option>
|
|
<option data-i18n="alphabets-option">Alphabets (Savoir)</option>
|
|
<option data-i18n="weapons-option">Armes (Épreuve)</option>
|
|
<option data-i18n="magical-arts-option">Arts Magiques (Occulte)</option>
|
|
<option data-i18n="astronomy-option">Astronomie (Savoir)</option>
|
|
<option data-i18n="athletics-option">Athlétisme (Épreuve)</option>
|
|
<option data-i18n="fast-talk-option">Baratin (Société)</option>
|
|
<option data-i18n="conceal-option">Camouflage (Maraude)</option>
|
|
<option data-i18n="hunt-option">Chasse (Maraude)</option>
|
|
<option data-i18n="surgery-option">Chirurgie (Savoir)</option>
|
|
<option data-i18n="dancer-lore-option">Conn. des Danseurs (Occulte)</option>
|
|
<option data-i18n="cipher-sorcery-option">Cryptogramme (Occulte)</option>
|
|
<option data-i18n="cults-option">Cultes (Savoir)</option>
|
|
<option data-i18n="disguise-option">Déguisement (Maraude)</option>
|
|
<option data-i18n="demonology-option">Démonologie (Occulte)</option>
|
|
<option data-i18n="diplomacy-option">Diplomatie (Société)</option>
|
|
<option data-i18n="stealth-option">Discrétion (Maraude)</option>
|
|
<option data-i18n="elementalism-option">Élémentalisme (Occulte)</option>
|
|
<option data-i18n="eloquence-option">Éloquence (Société)</option>
|
|
<option data-i18n="ride-option">Équitation (Épreuve)</option>
|
|
<option data-i18n="climb-option">Escalade (Épreuve)</option>
|
|
<option data-i18n="dodge-option">Esquive (Épreuve)</option>
|
|
<option data-i18n="etiquette-option">Étiquette (Société)</option>
|
|
<option data-i18n="search-option">Fouille (Maraude)</option>
|
|
<option data-i18n="geography-option">Géographie (Savoir)</option>
|
|
<option data-i18n="concord-option">Harmonie (Occulte)</option>
|
|
<option data-i18n="plant-lore-option">Herboristerie (Savoir)</option>
|
|
<option data-i18n="history-legends-option">Histoire & légendes (Savoir)</option>
|
|
<option data-i18n="stewardship-option">Intendance (Société)</option>
|
|
<option data-i18n="intrigue-option">Intrigue (Maraude)</option>
|
|
<option data-i18n="gambling-option">Jeu (Maraude)</option>
|
|
<option data-i18n="languages-option">Langues (Savoir)</option>
|
|
<option data-i18n="law-option">Lois (Savoir)</option>
|
|
<option data-i18n="medicine-option">Médecine (Savoir)</option>
|
|
<option data-i18n="music-option">Musique (Société)</option>
|
|
<option data-i18n="swim-option">Natation (Épreuve)</option>
|
|
<option data-i18n="navigation-option">Navigation (Savoir)</option>
|
|
<option data-i18n="trade-option">Négoce (Société)</option>
|
|
<option data-i18n="legerdemain-option">Passe-passe (Maraude)</option>
|
|
<option data-i18n="painting-option">Peinture (Société)</option>
|
|
<option data-i18n="poetry-option">Poésie (Société)</option>
|
|
<option data-i18n="poisons-option">Poisons (Maraude)</option>
|
|
<option data-i18n="first-aid-option">Premiers soins (Épreuve)</option>
|
|
<option data-i18n="resonance-option">Résonance (Occulte)</option>
|
|
<option data-i18n="seasons-option">Saisons (Savoir)</option>
|
|
<option data-i18n="craft-option">Savoir-faire (Société)</option>
|
|
<option data-i18n="sculpture-option">Sculpture (Société)</option>
|
|
<option data-i18n="locksmith-option">Serrurerie (Maraude)</option>
|
|
<option data-i18n="strategy-option">Stratégie (Savoir)</option>
|
|
<option data-i18n="survival-option">Survie (Épreuve)</option>
|
|
<option data-i18n="alertness-option">Vigilance (Épreuve)</option>
|
|
<option data-i18n="traditions-option">Us et coutumes (Société)</option>
|
|
<option data-i18n="beast-lore-option">Zoologie (Savoir)</option>
|
|
</select>
|
|
<input type="text" name="attr_pcSkillBranch" class="text" title="Domaine de la compétence (si applicable)" data-i18n-title="branch-title" placeholder="domaine" data-i18n-placeholder="branch-placeholder">
|
|
<input type="text" name="attr_pcSkillSpecialty" class="text" title="Spécialité de la compétence" data-i18n-title="specialty-title" placeholder="spécialité" data-i18n-placeholder="specialty-placeholder">
|
|
<input type="number" name="attr_pcSkillScore" class="number" title="Score de la compétence" data-i18n-title="skill-title">
|
|
<input type="number" name="attr_pcSkillExp" class="number" title="Expérience dépensée dans la compétence" data-i18n-title="skill-experience-title">
|
|
<input type="hidden" name="attr_pcSkill">
|
|
<button class="dice pc-skill-dice" type="roll" value="&{template:agone-skills} {{name=@{character_name}}} {{Skill=@{pcSkill} : [[[[1d10!]]+[[@{pcSkillScore}]]+?{@{attributeRoll}|@{agilityRoll}, [[@{pcAgility}]]+[[@{pcBodyBonus}]]+[[?{@{bonusPenaltyRoll}&#124;@{pcArmorAGIPenalty}+@{pcLoadPenalty}&#125;]]|@{strengthRoll}, [[@{pcStrength}]]+[[@{pcBodyBonus}]]+[[?{@{bonusPenaltyRoll}&#124;@{pcLoadPenalty}&#125;]]|@{perceptionRoll}, [[@{pcPerception}]]+[[@{pcBodyBonus}]]+[[?{@{bonusPenaltyRoll}&#124;@{pcArmorPERPenalty}&#125;]]|@{staminaRoll}, [[@{pcStamina}]]+[[@{pcBodyBonus}]]+[[?{@{bonusPenaltyRoll}&#124;@{pcLoadPenalty}&#125;]]|@{intelligenceRoll}, [[@{pcIntelligence}]]+[[@{pcSpiritBonus}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]|@{willRoll}, [[@{pcWill}]]+[[@{pcSpiritBonus}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]|@{charismaRoll}, [[@{pcCharisma}]]+[[@{pcSoulBonus}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]|@{creativityRoll}, [[@{pcCreativity}]]+[[@{pcSoulBonus}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]|@{meleeRoll}, [[@{pcMelee}]]+[[@{pcBodyBonus}]]+[[?{@{bonusPenaltyRoll}&#124;@{pcLoadPenalty}&#125;]]|@{aimRoll}, [[@{pcAim}]]+[[@{pcBodyBonus}]]+[[?{@{bonusPenaltyRoll}&#124;@{pcLoadPenalty}&#125;]]}}]]}} {{Dice=@{rollRoll}: $[[0]]}} {{Sk=@{skillRoll}: $[[1]]}} {{Attr=@{attributeRoll}: $[[2]]}} {{AspBonus=@{aspectBonusRoll} : $[[3]]}} {{BonPen=@{bonusPenaltyRoll}: $[[4]]}}" name="roll_pc-skill" title="Jet de Compétence" name="roll_pc-skills" data-i18n-title="skill-roll-title"></button>
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
</div>
|
|
<div>
|
|
<div class="pc-assets-faults-menu title">
|
|
<button class="pc-sub-menu" data-tab="pc-assets-faults"></button>
|
|
<span data-i18n="ASSETS-FAULTS-header">AVANTAGES & DÉFAUTS</span>
|
|
</div>
|
|
<div class="pc-assets-faults grid" data-tab="pc-assets-faults">
|
|
<span class="title bold" data-i18n="asset-name-header">Nom de l'avantage</span>
|
|
<span class="title bold" data-i18n="cost-header">Coût</span>
|
|
<span class="title bold" data-i18n="fault-name-header">Nom du défaut</span>
|
|
<span class="title bold" data-i18n="cost-header">Coût</span>
|
|
<fieldset class="repeating_pc-assets">
|
|
<div class="pc-assets-container grid">
|
|
<textarea name="attr_pcAsset" id="textarea" class="textarea expandable" title="Avantage et description" data-i18n-title="asset-title"></textarea>
|
|
<input type="number" name="attr_pcAssetCost" class="number" title="Coût de l'avantage" data-i18n-title="asset-cost-title">
|
|
</div>
|
|
</fieldset>
|
|
<fieldset class="repeating_pc-faults">
|
|
<div class="pc-faults-container grid">
|
|
<textarea name="attr_pcFault" id="textarea" class="textarea expandable" title="Défaut et description" data-i18n-title="fault-title"></textarea>
|
|
<input type="number" name="attr_pcFaultCost" class="number" title="Coût du défaut" data-i18n-title="fault-cost-title">
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
</div>
|
|
<div>
|
|
<div class="pc-darkness-perfidy-menu title">
|
|
<button class="pc-sub-menu" data-tab="pc-darkness-perfidy"></button>
|
|
<span data-i18n="SORROWS-DARKNESS-header">PEINES & TÉNÈBRES,</span>
|
|
<span data-i18n="GIFTS-header">BIENFAITS,</span>
|
|
<span data-i18n="SORROWS-PERFIDY-header">PEINES & PERFIDIE</span>
|
|
</div>
|
|
<div class="pc-darkness-perfidy grid" data-tab="pc-darkness-perfidy">
|
|
<span class="pc-darkness-lbl title bold" data-i18n="darkness-header">Ténèbre</span>
|
|
<input type="number" name="attr_pcDarkness" class="pc-darkness number" title="Points de Ténèbre" data-i18n-title="darkness-title">
|
|
<span class="title bold" data-i18n="blackness-header">Noirceur</span>
|
|
<input type="number" name="attr_pcBlackness" class="pc-blackness number" title="Points de Ténèbre / 10" data-i18n-title="darkness-title" readonly>
|
|
<span class="title bold" data-i18n="perfidy-header">Perfidie</span>
|
|
<input type="number" name="attr_pcPerfidy" class="pc-perfidy number" title="Points de Perfidie" data-i18n-title="perfidy-title">
|
|
<span class="pc-sorrow-value">10</span>
|
|
<span class="pc-sorrow-lbl" data-i18n="trickster-header">Diablotin farceur</span>
|
|
<input type="checkbox" name="attr_pcTrickster" class="pc-sorrow">
|
|
<span class="pc-sorrow-value">20</span>
|
|
<span class="pc-sorrow-lbl" data-i18n="nightmares-header">Cauchemars</span>
|
|
<input type="checkbox" name="attr_pcNightmares" class="pc-sorrow">
|
|
<span class="pc-sorrow-value">30</span>
|
|
<span class="pc-sorrow-lbl" data-i18n="mischevious-demon-header">Démon facétieux</span>
|
|
<input type="checkbox" name="attr_pcMischeviousDemon" class="pc-sorrow">
|
|
<span class="pc-sorrow-value">40</span>
|
|
<span class="pc-sorrow-lbl" data-i18n="sleep-walking-header">Somnambule</span>
|
|
<input type="checkbox" name="attr_pcSleepWalking" class="pc-sorrow">
|
|
<span class="pc-sorrow-value">50</span>
|
|
<span class="pc-sorrow-lbl" data-i18n="insomnia-header">Insomniaque</span>
|
|
<input type="checkbox" name="attr_pcInsomnia" class="pc-sorrow">
|
|
<span class="pc-sorrow-value">55</span>
|
|
<span class="pc-sorrow-lbl" data-i18n="contempt-header">Mépris</span>
|
|
<input type="checkbox" name="attr_pcContempt" class="pc-sorrow">
|
|
<span class="pc-sorrow-value">60</span>
|
|
<span class="pc-sorrow-lbl" data-i18n="sexual-perversion-header">Déviance sexuelle</span>
|
|
<input type="checkbox" name="attr_pcSexualPerversion" class="pc-sorrow">
|
|
<span class="pc-sorrow-value">65</span>
|
|
<span class="pc-sorrow-lbl" data-i18n="lunar-scarifications-header">Scarifications lunaires</span>
|
|
<input type="checkbox" name="attr_pcLunarScarifications" class="pc-sorrow">
|
|
<span class="pc-sorrow-value">70</span>
|
|
<span class="pc-sorrow-lbl" data-i18n="demonic-twin-header">Jumeau démoniaque</span>
|
|
<input type="checkbox" name="attr_pcDemonicTwin" class="pc-sorrow">
|
|
<span class="pc-sorrow-value">75</span>
|
|
<span class="pc-sorrow-lbl" data-i18n="obsessed-by-shadow-header">Obsession de l'ombre</span>
|
|
<input type="checkbox" name="attr_pcObsessedByShadow" class="pc-sorrow">
|
|
<span class="pc-sorrow-value">78</span>
|
|
<span class="pc-sorrow-lbl" data-i18n="oppressive-presence-header">Présence oppressante</span>
|
|
<input type="checkbox" name="attr_pcOppressivePresence" class="pc-sorrow">
|
|
<span class="pc-sorrow-value">81</span>
|
|
<span class="pc-sorrow-lbl" data-i18n="alteration-of-the-senses-header">Altération des sens</span>
|
|
<input type="checkbox" name="attr_pcAlterationOfTheSenses" class="pc-sorrow">
|
|
<span class="pc-sorrow-value">84</span>
|
|
<span class="pc-sorrow-lbl" data-i18n="black-blood-header">Sang noir</span>
|
|
<input type="checkbox" name="attr_pcBlackBlood" class="pc-sorrow">
|
|
<span class="pc-sorrow-value">87</span>
|
|
<span class="pc-sorrow-lbl" data-i18n="demonic-appearance-header">Apparence démoniaque</span>
|
|
<input type="checkbox" name="attr_pcDemonicAppearance" class="pc-sorrow">
|
|
<span class="pc-sorrow-value">90</span>
|
|
<span class="pc-sorrow-lbl" data-i18n="siamese-of-darkness-header">Siamois de Ténèbres</span>
|
|
<input type="checkbox" name="attr_pcSiameseOfDarkness" class="pc-sorrow">
|
|
<span class="pc-sorrow-value">92</span>
|
|
<span class="pc-sorrow-lbl" data-i18n="curse-header">Malédiction</span>
|
|
<input type="checkbox" name="attr_pcCurse" class="pc-sorrow">
|
|
<span class="pc-sorrow-value">94</span>
|
|
<span class="pc-sorrow-lbl" data-i18n="living-shadow-header">Ombre vivante</span>
|
|
<input type="checkbox" name="attr_pcLivingShadow" class="pc-sorrow">
|
|
<span class="pc-sorrow-value">96</span>
|
|
<span class="pc-sorrow-lbl" data-i18n="touch-of-high-devils-header">Marque des Hauts-Diables</span>
|
|
<input type="checkbox" name="attr_pcTouchOfHighDevils" class="pc-sorrow">
|
|
<span class="pc-sorrow-value">98</span>
|
|
<span class="pc-sorrow-lbl" data-i18n="inner-portal-header">Portail intérieur</span>
|
|
<input type="checkbox" name="attr_pcInnerPortal" class="pc-sorrow">
|
|
<span class="pc-sorrow-value">99</span>
|
|
<span class="pc-sorrow-lbl" data-i18n="shadow-of-perfidy-header">Ombre de la Perfidie</span>
|
|
<input type="checkbox" name="attr_pcShadowOfPerfidy" class="pc-sorrow">
|
|
<span class="pc-sorrow-value">100</span>
|
|
<span class="pc-sorrow-lbl" data-i18n="final-metamorphosis-header">Déchu</span>
|
|
<input type="checkbox" name="attr_pcFinalMetamorphosis" class="pc-sorrow">
|
|
<fieldset class="repeating_pc-gifts">
|
|
<textarea name="attr_pcGift" id="textarea" class="textarea expandable" title="Bienfait" data-i18n-title="gift-title" placeholder="Bienfait" data-i18n-placeholder="gift-placeholder"></textarea>
|
|
</fieldset>
|
|
<fieldset class="repeating_pc-sorrows">
|
|
<textarea name="attr_pcSorrow" id="textarea" class="textarea expandable" title="Peine" data-i18n-title="sorrow-title" placeholder="Peine" data-i18n-placeholder="sorrow-placeholder"></textarea>
|
|
</fieldset>
|
|
</div>
|
|
</div>
|
|
<div>
|
|
<div class="pc-flame-season-currency-menu title">
|
|
<button class="pc-sub-menu" data-tab="pc-flame-season-currency"></button>
|
|
<span data-i18n="FLAME-SEASONLINGS-header">FLAMME & SAISONINS,</span>
|
|
<span data-i18n="CURRENCY-header">MONNAIE</span>
|
|
</div>
|
|
<div class="pc-flame-season-currency grid" data-tab="pc-flame-season-currency">
|
|
<span class="title bold" data-i18n="powers-header">Pouvoirs</span>
|
|
<span class="title bold" data-i18n="currency-header">Monnaie</span>
|
|
<span class="title bold" data-i18n="value-header">Valeur</span>
|
|
<span class="title bold" data-i18n="quantity-header">Quantité</span>
|
|
<fieldset class="repeating_pc-powers">
|
|
<textarea name="attr_pcPower" id="textarea" class="textarea expandable" title="Pouvoir de Flamme ou de Saison" data-i18n-title="power-title"></textarea>
|
|
</fieldset>
|
|
<span class="pc-currency-lbl" data-i18n="eaglet-header">Aiglon</span>
|
|
<span class="pc-currency-value">10</span>
|
|
<input type="number" name="attr_pcEaglet" class="pc-currency number center" title="Quantité d'aiglon(s)" data-i18n-title="eaglet-title">
|
|
<span class="pc-currency-lbl" data-i18n="sastre-header">Sastre</span>
|
|
<span class="pc-currency-value">5</span>
|
|
<input type="number" name="attr_pcSastre" class="pc-currency number center" title="Quantité de sastre(s)" data-i18n-title="sastre-title">
|
|
<span class="pc-currency-lbl" data-i18n="pistol-header">Pistole</span>
|
|
<span class="pc-currency-value">10</span>
|
|
<input type="number" name="attr_pcPistol" class="pc-currency number center" title="Quantité de pistole(s)" data-i18n-title="pistol-title">
|
|
<span class="pc-currency-lbl" data-i18n="dirhem-header">Dirhem</span>
|
|
<span class="pc-currency-value">5</span>
|
|
<input type="number" name="attr_pcDirhem" class="pc-currency number center" title="Quantité de dirhem(s)" data-i18n-title="dirhem-title">
|
|
<span class="pc-currency-lbl" data-i18n="pearl-header">Perle</span>
|
|
<span class="pc-currency-value">10</span>
|
|
<input type="number" name="attr_pcPearl" class="pc-currency number center" title="Quantité de perle(s)" data-i18n-title="pearl-title">
|
|
<span class="pc-currency-lbl" data-i18n="crystal-header">Cristal</span>
|
|
<span class="pc-currency-value">5</span>
|
|
<input type="number" name="attr_pcCrystal" class="pc-currency number center" title="Quantité de cristal(ux)" data-i18n-title="crystal-title">
|
|
<span class="pc-currency-lbl" data-i18n="gold-piece-header">Pièce d'or</span>
|
|
<span class="pc-currency-value">1</span>
|
|
<input type="number" name="attr_pcGoldPiece" class="pc-currency number center" title="Quantité de pièce(s) d'or" data-i18n-title="gold piece-title">
|
|
<span class="pc-currency-lbl" data-i18n="coin-header">Sou</span>
|
|
<span class="pc-currency-value">1</span>
|
|
<input type="number" name="attr_pcCoin" class="pc-currency number center" title="Quantité de sou(s)" data-i18n-title="coin-title">
|
|
<span class="pc-currency-lbl" data-i18n="scrape-header">Bribe</span>
|
|
<span class="pc-currency-value">1/11</span>
|
|
<input type="number" name="attr_pcScrape" class="pc-currency number center" title="Quantité de bribe(s)" data-i18n-title="scrape-title">
|
|
</div>
|
|
</div>
|
|
<div>
|
|
<div class="pc-stuff-menu title">
|
|
<button class="pc-sub-menu" data-tab="pc-stuff"></button>
|
|
<span data-i18n="STUFF-header">ÉQUIPEMENT</span>
|
|
<input type="number" name="attr_pcLoad" class="number center border-white" title="Charge actuelle" data-i18n-title="current-load-title" readonly>
|
|
<input type="number" name="attr_pcLoadPenalty" class="number center border-white" title="Malus dû à la surcharge" data-i18n-title="load-penalty-title" readonly>
|
|
</div>
|
|
<div class="pc-stuff grid" data-tab="pc-stuff">
|
|
<span class="title bold" data-i18n="name-header">Nom</span>
|
|
<span class="title bold" data-i18n="quantity-header">Quantité</span>
|
|
<span class="title bold" data-i18n="weight-header">Masse</span>
|
|
<span class="title bold" data-i18n="total-header">Total</span>
|
|
<fieldset class="repeating_pc-stuff">
|
|
<div class="pc-stuff-rows grid">
|
|
<textarea name="attr_pcStuff" id="textarea" class="textarea expandable" title="Objet" data-i18n-title="item-title"></textarea>
|
|
<input type="number" name="attr_pcStuffQuantity" class="number" title="Quantité de l'objet" data-i18n-title="item-quantity-title">
|
|
<input type="number" name="attr_pcStuffWeight" class="number" step="0.01" title="Masse unitaire" data-i18n-title="item-unit-weight-title">
|
|
<input type="number" name="attr_pcStuffTotalWeight" class="number" title="Masse totale" data-i18n-title="item-total-weight-title" readonly>
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
</div>
|
|
<div>
|
|
<div class="pc-combat-menu title">
|
|
<button class="pc-sub-menu" data-tab="pc-combat"></button>
|
|
<span data-i18n="MANEUVERS-ARTFUL-THRUSTS-header">MANŒUVRES & BOTTES,</span>
|
|
<span data-i18n="ARMOR-STATE-header">ARMURE & ÉTAT</span>
|
|
</div>
|
|
<div class="pc-combat grid" data-tab="pc-combat">
|
|
<span class="title bold" data-i18n="name-description-header">Nom & description</span>
|
|
<span class="title bold" data-i18n="name-header">Nom</span>
|
|
<span class="title bold" data-i18n="type-header">Type</span>
|
|
<span class="pc-combat-score-lbl title bold" data-i18n="score-header">Score</span>
|
|
<span class="pc-combat-malus-lbl title bold" data-i18n="penalty-header">Malus</span>
|
|
<fieldset class="repeating_pc-maneuvers">
|
|
<textarea name="attr_pcManeuver" id="textarea" class="textarea expandable" title="Manœuvre, botte ou autre technique" data-i18n-title="maneuver-title"></textarea>
|
|
</fieldset>
|
|
<input type="text" name="attr_pcArmor" class="text ninety" title="Armure" data-i18n-title="armor-title">
|
|
<select name="attr_pcArmorType" class="select max" title="Type d'armure" data-i18n-title="armor-type-title">
|
|
<option value="0" data-i18n="vest-only-option">Veste seule</option>
|
|
<option value="1" data-i18n="partial-option">Partielle</option>
|
|
<option value="2" data-i18n="full-option">Complète</option>
|
|
</select>
|
|
<input type="checkbox" name="attr_pcArmorWorn" value="1" title="Armure portée" data-i18n-title="armor-worn-title">
|
|
<input type="number" name="attr_pcArmorProtection" class="number half-number item-left" title="Protection de l'armure" data-i18n-title="armor-protection-title" value="0">
|
|
<input type="number" name="attr_pcArmorAgilityPenalty" class="number half-number item-right" title="Malus de l'armure" data-i18n-title="armor-penalty-title" value="0">
|
|
<input type="number" name="attr_pcArmorPerceptionPenalty" class="number half-number item-left" title="Malus de perception de l'armure" data-i18n-title="armor-perception-penalty-title" value="0" readonly>
|
|
<span class="pc-combat-sub-lbl" data-i18n="serious-wound(s)-header">Blessure(s) Grave(s)</span>
|
|
<input type="number" name="attr_pcSeriousWound" class="pc-combat-score number" title="Blessure(s) Grave(s) encaissée(s)" data-i18n-title="serious-wound(s)-received-title" value="0">
|
|
<input type="number" name="attr_pcSeriousWoundPenalty" class="pc-combat-serious-wound-penalty number" title="Malus dû à la ou les Blessure(s) Grave(s)" data-i18n-title="serious-wound(s)-penalty-title" readonly>
|
|
<span class="pc-combat-sub-lbl" data-i18n="hp-header">Points de Vie</span>
|
|
<input type="number" name="attr_pcHP" class="pc-combat-score number" title="Point(s) de Vie actuel(s)" data-i18n-title="current-hp-title">
|
|
<input type="number" name="attr_pcHP_max" class="pc-combat-hp-max number" title="Voir Livre des Règles" data-i18n-title="core-book-title" readonly>
|
|
<span class="pc-combat-sub-lbl" data-i18n-title="fortune-points-header">Points d'Héroïsme</span>
|
|
<input type="number" name="attr_pcFP" class="pc-combat-score number" title="Point(s) d'Héroïsme actuel(s)" data-i18n-title="current-fp-title">
|
|
<input type="number" name="attr_pcFP_max" class="pc-combat-fp-max number" title="Score de Flamme x 2" data-i18n-title="max-fp-title" readonly>
|
|
</div>
|
|
</div>
|
|
<div>
|
|
<div class="pc-weapons-menu title">
|
|
<button class="pc-sub-menu" data-tab="pc-weapons"></button>
|
|
<span data-i18n="WEAPONS-header">ARMES</span>
|
|
<span data-i18n="initiative-header">Initiative</span>
|
|
<input type="number" name="attr_pcInit" class="number border-white" title="AGI+PER(+Bonus de Corps)" data-i18n-title="initiative-title" readonly>
|
|
<button class="dice menu-dice" type="roll" value="&{template:agone-initiative} {{name=@{selected|character_name}}} {{Initiative=@{initiativeRoll}[[[[1d10]]+[[@{pcInit}]]+[[?{@{bonusPenaltyRoll}|@{pcLoadPenalty}}]] &{tracker}]]}} {{Dice=@{rollRoll}: $[[0]]}} {{Base=@{baseRoll}: $[[1]]}} {{BonPen=@{bonusPenaltyRoll}: $[[2]]}}" name="roll_pc-init" title="Jet d'Initiative" data-i18n-title="initiative-roll-title"></button>
|
|
<span data-i18n="dodge-header">Esquive</span>
|
|
<input type="number" name="attr_pcDodgeTotal" class="number border-white" title="AGI+Esquive(+Bonus de Corps)" data-i18n-title="dodge-title" readonly>
|
|
<button class="dice menu-dice" type="roll" value="&{template:agone-dodge} {{name=@{character_name}}} {{Dodge=@{dodgeRoll} : [[[[1d10!]]+[[@{pcDodgeTotal}]]+[[?{@{bonusPenaltyRoll}|@{pcArmorAGIPenalty}+@{pcLoadPenalty}}]]]]}} {{Dice=@{rollRoll}: $[[0]]}} {{Base=@{baseRoll}: $[[1]]}} {{BonPen=@{bonusPenaltyRoll}: $[[2]]}}" name="roll_pc-dodge" title="Jet d'Esquive" data-i18n-title="dodge-roll-title"></button>
|
|
<span data-i18n="natural-defense-header">Défense Naturelle</span>
|
|
<input type="number" name="attr_pcNaturalDefense" class="number border-white" title="AGI(+Bonus de Corps)" data-i18n-title="natural-defense-title" readonly>
|
|
<button class="dice menu-dice" type="roll" value="&{template:agone-natural-defense} {{name=@{character_name}}} {{NaturalDefense=@{naturalDefenseRoll}: [[[[1d10!]]+[[@{pcNaturalDefense}]]+[[?{@{bonusPenaltyRoll}|@{pcArmorAGIPenalty}+@{pcLoadPenalty}}]]]]}} {{Dice=@{rollRoll}: $[[0]]}} {{Base=@{baseRoll}: $[[1]]}} {{BonPen=@{bonusPenaltyRoll}: $[[2]]}}" name="roll_pc-natural-defense" title="Jet de Défense Naturelle" data-i18n-title="natural-defense-roll-title"></button>
|
|
<span data-i18n="distance-dodge-header">Distance</span>
|
|
<input type="number" name="attr_pcDistanceDodge" class="number border-white" title="(AGIlité+Esquive)/2" data-i18n-title="distance-dodge-title" readonly>
|
|
</div>
|
|
<div class="pc-weapons grid" data-tab="pc-weapons">
|
|
<span class="title bold" data-i18n="name-header">Nom</span>
|
|
<span class="title bold" data-i18n="SIZ-header">TAI</span>
|
|
<span class="title bold" data-i18n="initiative-header">Initiative</span>
|
|
<span class="title bold" data-i18n="attack-header">Attaque</span>
|
|
<span class="title bold" data-i18n="defense-header">Défense</span>
|
|
<span class="title bold" data-i18n="damage-db-header">Dom.+BD</span>
|
|
<span class="title bold" data-i18n="type-header">Type</span>
|
|
<span class="title bold" data-i18n="style-header">Style</span>
|
|
<span class="title bold" data-i18n="skill-header">Compétence</span>
|
|
<fieldset class="repeating_pc-weapons">
|
|
<div class="pc-weapons-rows grid">
|
|
<input type="text" name="attr_pcWeaponName" class="text max" title="Nom de l'arme" data-i18n-title="weapon-name-title">
|
|
<button class="dice item-left" type="roll" value="?{@{rollRoll}|Initiative, &{template:agone-initiative&#125; {{name=@{selected|character_name}&#125;&#125; {{weapon=(@{pcWeaponName})&#125;&#125; {{Initiative=@{initiativeRoll}[[[[1d10]]+[[@{pcWeaponInitTotal}]]+[[?{@{bonusPenaltyRoll}&#124;@{pcLoadPenalty}&#125;]] &{tracker&#125;]]&#125;&#125; {{Dice=@{rollRoll}: $[[0]]&#125;&#125; {{Base=@{baseRoll}: $[[1]]&#125;&#125; {{BonPen=@{bonusPenaltyRoll}: $[[2]]&#125;&#125;|@{attackRoll}, &{template:agone-attack&#125; {{name=@{character_name}&#125;&#125; {{weapon=(@{pcWeaponName})&#125;&#125; {{Attack=@{attackRoll} : [[[[1d10!]]+[[@{pcWeaponAttackTotal}]]+[[?{@{bonusPenaltyRoll}&#124;@{pcLoadPenalty}&#125;]]]]&#125;&#125; {{Type=@{pcWeaponType}&#125;&#125; {{Dice=@{rollRoll}: $[[0]]&#125;&#125; {{Base=@{baseRoll}: $[[1]]&#125;&#125; {{BonPen=@{bonusPenaltyRoll}: $[[2]]&#125;&#125;|@{defenseRoll}, &{template:agone-defense&#125; {{name=@{character_name}&#125;&#125; {{weapon=(@{pcWeaponName})&#125;&#125; {{Defense=@{defenseRoll} : [[[[1d10!]]+[[@{pcWeaponDefenseTotal}]]+[[?{@{bonusPenaltyRoll}&#124;@{pcLoadPenalty}&#125;]]]]&#125;&#125; {{Dice=@{rollRoll}: $[[0]]&#125;&#125; {{Base=@{baseRoll}: $[[1]]&#125;&#125; {{BonPen=@{bonusPenaltyRoll}: $[[2]]&#125;&#125;|@{dodgeRoll}, &{template:agone-dodge&#125; {{name=@{character_name}&#125;&#125; {{Dodge=@{dodgeRoll} : [[[[1d10!]]+[[@{pcDodgeTotal}]]+[[?{@{bonusPenaltyRoll}&#124;@{pcArmorAGIPenalty}+@{pcLoadPenalty}&#125;]]]]&#125;&#125; {{Dice=@{rollRoll}: $[[0]]&#125;&#125; {{Base=@{baseRoll}: $[[1]]&#125;&#125; {{BonPen=@{bonusPenaltyRoll}: $[[2]]&#125;&#125;|@{naturalDefenseRoll}, &{template:agone-natural-defense&#125; {{name=@{character_name}&#125;&#125; {{NaturalDefense=@{naturalDefenseRoll}: [[[[1d10!]]+[[@{pcNaturalDefense}]]+[[?{@{bonusPenaltyRoll}&#124;@{pcArmorAGIPenalty}+@{pcLoadPenalty}&#125;]]]]&#125;&#125; {{Dice=@{rollRoll}: $[[0]]&#125;&#125; {{Base=@{baseRoll}: $[[1]]&#125;&#125; {{BonPen=@{bonusPenaltyRoll}: $[[2]]&#125;&#125;}" name="roll_pc-fight" title="Jet de combat" data-i18n-title="fight-roll-title"></button>
|
|
<input type="number" name="attr_pcWeaponSIZ" class="number" title="Score de TAI de l'arme" data-i18n-title="weapon-SIZ-title">
|
|
<input type="number" name="attr_pcWeaponInit" class="number half-number item-right" title="Initiative de l'arme" data-i18n-title="weapon-initiative-title">
|
|
<input type="number" name="attr_pcWeaponInitTotal" class="number half-number" title="Initiative totale (PER+AGI+Bonus de l'arme[+Bonus de Corps])" data-i18n-title="total-initiative-title" readonly>
|
|
<button class="dice item-left" type="roll" value="&{template:agone-initiative} {{name=@{selected|character_name} (@{pcWeaponName})}} {{Initiative=@{initiativeRoll}[[[[1d10]]+[[@{pcWeaponInitTotal}]]+[[?{@{bonusPenaltyRoll}|@{pcLoadPenalty}}]] &{tracker}]]}} {{Dice=@{rollRoll}: $[[0]]}} {{Base=@{baseRoll}: $[[1]]}} {{BonPen=@{bonusPenaltyRoll}: $[[2]]}}" name="roll_pc-weapon-init" title="Jet d'Initiative" data-i18n-title="initiative-roll-title"></button>
|
|
<input type="number" name="attr_pcWeaponAttack" class="number half-number item-right" title="Attaque de l'arme" data-i18n-title="weapon-attack-title">
|
|
<input type="number" name="attr_pcWeaponAttackTotal" class="number half-number" title="Attaque totale ([MEL ou TIR]+Compétence+Bonus de l'arme[+Bonus de Corps])" data-i18n-title="total-attack-title" readonly>
|
|
<button class="dice item-left" type="roll" value="&{template:agone-attack} {{name=@{character_name}}} {{weapon=(@{pcWeaponName})}} {{Attack=@{attackRoll} : [[[[1d10!]]+[[@{pcWeaponAttackTotal}]]+[[?{@{bonusPenaltyRoll}|@{pcLoadPenalty}}]]]]}} {{Type=@{pcWeaponType}}} {{Dice=@{rollRoll}: $[[0]]}} {{Base=@{baseRoll}: $[[1]]}} {{BonPen=@{bonusPenaltyRoll}: $[[2]]}}" name="roll_pc-attack" title="Jet d'attaque" data-i18n-title="attack-roll-title"></button>
|
|
<input type="number" name="attr_pcWeaponDefense" class="number half-number item-right" title="Parade de l'arme" data-i18n-title="wepaon-defense-title">
|
|
<input type="number" name="attr_pcWeaponDefenseTotal" class="number half-number" title="Parade totale (MEL+Compétence+Bonus de l'arme[+Bonus de Corps])" data-i18n-title="total-defense-title" readonly>
|
|
<button class="dice item-left" type="roll" value="&{template:agone-defense} {{name=@{character_name}}} {{weapon=(@{pcWeaponName})}} {{Defense=@{defenseRoll} : [[[[1d10!]]+[[@{pcWeaponDefenseTotal}]]+[[?{@{bonusPenaltyRoll}|@{pcLoadPenalty}}]]]]}} {{Dice=@{rollRoll}: $[[0]]}} {{Base=@{baseRoll}: $[[1]]}} {{BonPen=@{bonusPenaltyRoll}: $[[2]]}}" name="roll_pc-defense" title="Jet de parade" data-i18n-title="defense-roll-title"></button>
|
|
<input type="number" name="attr_pcWeaponDamage" class="number half-number" title="Dommages de l'arme" data-i18n-title="weapon-damages-title">
|
|
<input type="number" name="attr_pcWeaponDDB" class="number half-number" title="Dommages de l'arme + BD" data-i18n-title="total-damages-title" readonly>
|
|
<select name="attr_pcWeaponType" class="select max" title="Type de dégâts de l'arme" data-i18n-title="weapon-damage-type-title">
|
|
<option value="@{impalingOption}" data-i18n="I-option">P</option>
|
|
<option value="@{slashingOption}" data-i18n="S-option">T</option>
|
|
<option value="@{impalingSlashingOption}" data-i18n="IS-option">PT</option>
|
|
<option value="@{contusiveOption}" data-i18n="C-option">C</option>
|
|
</select>
|
|
<select name="attr_pcWeaponStyle" class="select max" title="Style de combat, mêlée, jet ou trait" data-i18n-title="weapon-style-title">
|
|
<option value="melee" data-i18n="melee-option">Mêlée</option>
|
|
<option value="thrown" data-i18n="thrown-option">Jet</option>
|
|
<option value="missile" data-i18n="missile-option">Trait</option>
|
|
</select>
|
|
<select name="attr_pcWeaponSkill" class="select max pcWeaponSkill" title="Compétence d'arme associée" data-i18n-title="weapon-skill-title">
|
|
<option value="@{pcWeaponSkill-1}" data-i18n="weapons1-option">Armes 1</option>
|
|
<option value="@{pcWeaponSkill-2}" data-i18n="weapons2-option">Armes 2</option>
|
|
<option value="@{pcWeaponSkill-3}" data-i18n="weapons3-option">Armes 3</option>
|
|
<option value="@{pcWeaponSkill-4}" data-i18n="weapons4-option">Armes 4</option>
|
|
<option value="@{pcWeaponSkill-5}" data-i18n="weapons5-option">Armes 5</option>
|
|
<option value="@{pcWeaponSkill-6}" data-i18n="weapons6-option">Armes 6</option>
|
|
<option value="@{pcWeaponSkill-7}" data-i18n="weapons7-option">Armes 7</option>
|
|
<option value="@{pcWeaponSkill-8}" data-i18n="weapons8-option">Armes 8</option>
|
|
<option value="@{pcWeaponSkill-9}" data-i18n="weapons9-option">Armes 9</option>
|
|
<option value="@{pcWeaponSkill-10}" data-i18n="weapons10-option">Armes 10</option>
|
|
</select>
|
|
<textarea name="attr_pcWeaponDescription" id="textarea" class="textarea expandable" placeholder="Particularités de l'arme" data-i18n-title="weapons-features-title"></textarea>
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
</div>
|
|
<div>
|
|
<div class="pc-ascendancy-menu title">
|
|
<button class="pc-sub-menu" data-tab="pc-ascendancy"></button>
|
|
<span data-i18n="ASCENDANCY-header">EMPRISE</span>
|
|
<button class="dice menu-dice" type="roll" value="@{pcAscendancySelection}" name="roll_pc-ascendancy-global" title="Jet d'Emprise" data-i18n-title="ascendancy-roll-title"></button>
|
|
<span data-i18n="initiative-header">Initiative</span>
|
|
<input type="number" name="attr_pcMagicInit" class="number border-white" title="Initiative pour lancer un sort (Init+10)" data-i18n-title="magic-initiative-title" readonly>
|
|
<button class="dice menu-dice" type="roll" value="&{template:agone-initiative} {{name=@{selected|character_name}}} {{Initiative=@{initiativeRoll}[[[[1d10]]+[[@{pcMagicInit}]]+[[?{@{bonusPenaltyRoll}|0}]] &{tracker}]]}} {{Dice=@{rollRoll}: $[[0]]}} {{Base=@{baseRoll}: $[[1]]}} {{BonPen=@{bonusPenaltyRoll}: $[[2]]}}" name="roll_pc-magic-init" title="Jet d'Initiative" data-i18n-title="initiative-roll-title"></button>
|
|
</div>
|
|
<div class="pc-ascendancy grid" data-tab="pc-ascendancy">
|
|
<span class="title bold" data-i18n="dancer-header">Danseur</span>
|
|
<span class="title bold" data-i18n="experience-header">Expérience</span>
|
|
<span class="title bold" data-i18n="memory-header">Mémoire</span>
|
|
<span class="title bold" data-i18n="ASC-bonus-header">Bonus d'EMP</span>
|
|
<span class="title bold" data-i18n="empathy-header">Empathie</span>
|
|
<span class="title bold" data-i18n="endurance-header">Endurance</span>
|
|
<span class="title bold" data-i18n="aptitude-header">Potentiel</span>
|
|
<span class="title bold" data-i18n="intuitive-header">Improvisation</span>
|
|
<fieldset class="repeating_pc-ascendancies">
|
|
<div class="pc-ascendancy-rows grid">
|
|
<input type="text" name="attr_pcDancer" class="text max" title="Nom du Danseur" data-i18n-title="dancer-name-title">
|
|
<input type="number" name="attr_pcDancerExp" class="number" title="Expérience non dépensée du Danseur" data-i18n-title="unused-dancer-experience-title">
|
|
<input type="number" name="attr_pcDancerMemory" class="number half-number item-right" title="Mémoire restante du Danseur" data-i18n-title="current-memory-title">
|
|
<input type="number" name="attr_pcDancerMemory_max" class="number half-number item-left" title="Mémoire totale du Danseur" data-i18n-title="max-memory-title">
|
|
<input type="number" name="attr_pcDancerASCBonus" class="number" title="Bonus d'Emprise du Danseur" data-i18n-title="ascendancy-bonus-title">
|
|
<input type="number" name="attr_pcDancerEmpathy" class="number" title="Empathie du Danseur" data-i18n-title="empathy-title">
|
|
<input type="number" name="attr_pcDancerEndurance" class="number half-number item-right" title="Endurance restante du Danseur" data-i18n-title="current-endurance-title">
|
|
<input type="number" name="attr_pcDancerEndurance_max" class="number half-number item-left" title="Endurance totale du Danseur" data-i18n-title="max-endurance-title">
|
|
<input type="number" name="attr_pcAscendancyAptitude" class="number item-right" title="Potentiel d'Emprise avec ce Danseur (EMP+[Résonance ou Connaissances des Danseurs]+Bonus d'Esprit+Bonus d'EMP du Danseur)" data-i18n-title="total-dancer-aptitude-title">
|
|
<button class="dice item-left" type="roll" value="&{template:agone-ascendancy} {{name=@{character_name}}} {{dancer=@{pcDancer}}} {{Ascendancy=@{ascendancyRoll} : [[[[1d10!]]+[[@{pcAscendancyAptitude}]]+[[?{@{bonusPenaltyRoll}|0}]]]]}} {{Dice=@{rollRoll}: $[[0]]}} {{Base=@{baseRoll}: $[[1]]}} {{BonPen=@{bonusPenaltyRoll}: $[[2]]}}" name="roll_pc-ascendancy" title="Jet d'Emprise" data-i18n-title="ascendancy-roll-title"></button>
|
|
<input type="number" name="attr_pcASCImproAptitude" class="number item-right" title="Potentiel d'improvisation en Emprise avec ce Danseur (CRÉ+[Résonance ou Empathie du Danseur]+Bonus d'Esprit)" data-i18n-title="total-dancer-intuitive-aptitude-title">
|
|
<button class="dice item-left" type="roll" value="&{template:agone-ascendancy-intuitive} {{name=@{character_name}}} {{dancer=@{pcDancer}}} {{Ascendancy (intuitive)=@{intuitiveAscendancyRoll} : [[[[1d10!]]+[[@{pcASCImproAptitude}]]+[[?{@{bonusPenaltyRoll}|0}]]]]}} {{Dice=@{rollRoll}: $[[0]]}} {{Base=@{baseRoll}: $[[1]]}} {{BonPen=@{bonusPenaltyRoll}: $[[2]]}}" name="roll_pc-ascendancy-intuitive" title="Jet d'Emprise" data-i18n-title="ascendancy-roll-title"></button>
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
</div>
|
|
<div>
|
|
<div class="pc-art-menu title">
|
|
<button class="pc-sub-menu" data-tab="pc-art"></button>
|
|
<span data-i18n="MAGICAL-ARTS-header">ARTS MAGIQUES</span>
|
|
<button class="dice menu-dice" type="roll" value="@{pcArtSelection}" name="roll_pc-art-global" title="Jet d'Art Magique" data-i18n-title="magical-arts-roll-title"></button>
|
|
<span data-i18n="initiative-header">Initiative</span>
|
|
<input type="number" name="attr_pcMagicInit" class="number border-white" title="Initiative pour lancer un sort (Init+10)" data-i18n-title="magic-initiative-title" readonly>
|
|
<button class="dice menu-dice" type="roll" value="&{template:agone-initiative} {{name=@{selected|character_name}}} {{Initiative=@{initiativeRoll}[[[[1d10]]+[[@{pcMagicInit}]]+[[?{@{bonusPenaltyRoll}|0}]] &{tracker}]]}} {{Dice=@{rollRoll}: $[[0]]}} {{Base=@{baseRoll}: $[[1]]}} {{BonPen=@{bonusPenaltyRoll}: $[[2]]}}" name="roll_pc-magic-init" title="Jet d'Initiative" data-i18n-title="initiative-roll-title"></button>
|
|
</div>
|
|
<div class="pc-art grid" data-tab="pc-art">
|
|
<span class="title bold" data-i18n="magical-arts-header">Arts Magiques</span>
|
|
<span class="title bold" data-i18n="aptitude-header">Potentiel</span>
|
|
<span class="title bold" data-i18n="intuitive-header">Improvisation</span>
|
|
<fieldset class="repeating_pc-arts">
|
|
<div class="pc-art-rows grid">
|
|
<input type="text" name="attr_pcArtName" class="text max" title="Art magique" data-i18n-title="magical-art-title">
|
|
<input type="number" name="attr_pcArtAptitude" class="number item-right" title="Potentiel d'Art magique (ART+[Art Magique ou Art profane]+Bonus d'Âme)" data-i18n-title="magical-art-aptitude-title">
|
|
<button class="dice item-left" type="roll" value="&{template:agone-art} {{name=@{character_name}}} {{Art=@{pcArtName} : [[[[1d10!]]+[[@{pcArtAptitude}]]+[[?{@{bonusPenaltyRoll}|0}]]]]}} {{Dice=@{rollRoll}: $[[0]]}} {{Base=@{baseRoll}: $[[1]]}} {{BonPen=@{bonusPenaltyRoll}: $[[2]]}}" name="roll_pc-art" title="Jet d'Art Magique" data-i18n-title="magical-arts-roll-title"></button>
|
|
<input type="number" name="attr_pcArtImproAptitude" class="number item-right" title="Potentiel d'improvisation en Art magique (CRÉ+[Art Magique ou Art profane]+Bonus d'Âme)" data-i18n-title="magical-art-intuitive-aptitude-title">
|
|
<button class="dice item-left" type="roll" value="&{template:agone-art-intuitive} {{name=@{character_name}}} {{Art (intuitive)=@{pcArtName} @{intuitiveRoll} : [[[[1d10!]]+[[@{pcArtImproAptitude}]]+[[?{@{bonusPenaltyRoll}|0}]]]]}} {{Dice=@{rollRoll}: $[[0]]}} {{Base=@{baseRoll}: $[[1]]}} {{BonPen=@{bonusPenaltyRoll}: $[[2]]}}" name="roll_pc-art-intuitive" title="Jet d'Art Magique" data-i18n-title="magical-arts-roll-title"></button>
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
</div>
|
|
<div>
|
|
<div class="pc-spells-menu title">
|
|
<button class="pc-sub-menu" data-tab="pc-spells"></button>
|
|
<span data-i18n="SPELLS-OPUS-MISCELLANEOUS-MAGICS-header">SORTS, ŒUVRES & MAGIES DIVERSES</span>
|
|
</div>
|
|
<div class="pc-spells grid" data-tab="pc-spells">
|
|
<span class="title bold" data-i18n="name-header">Nom</span>
|
|
<span class="title bold" data-i18n="type-header">Type</span>
|
|
<span class="title bold" data-i18n="threshold-header">Seuil</span>
|
|
<span class="title bold" data-i18n="range-header">Portée</span>
|
|
<span class="title bold" data-i18n="casting-time-header">Temps</span>
|
|
<span class="title bold" data-i18n="duration-header">Durée</span>
|
|
<span class="title bold" data-i18n="dancer-header">Danseur</span>
|
|
<fieldset class="repeating_pc-spells">
|
|
<div class="pc-spells-rows grid">
|
|
<input type="text" name="attr_pcSpellName" class="text max" title="Nom de la magie" data-i18n-title="magic-name-title">
|
|
<input type="text" name="attr_pcSpellBranch" class="text max" title="Type de la magie" data-i18n-title="magic-type-title">
|
|
<input type="number" name="attr_pcSpellThreshold" class="number" title="Seuil de la magie" data-i18n-title="magic-threshold-title">
|
|
<input type="text" name="attr_pcSpellRange" class="text max" title="Portée/Zone d'effet de la magie" data-i18n-title="magic-range-title">
|
|
<input type="text" name="attr_pcSpellExec" class="text max" title="Temps d'exécution de la magie" data-i18n-title="magic-casting-time-title">
|
|
<input type="text" name="attr_pcSpellDuration" class="text max" title="Durée de la magie" data-i18n-title="magic-duration-title">
|
|
<!-- <input type="text" name="attr_pcSpellDancer" class="text max" title="Danseur pour la magie" data-i18n-title="used-dancer-title"> -->
|
|
<select name="attr_pcSpellDancer" class="text max pcSpellDancer" title="Danseur pour la magie" data-i18n-title="used-dancer-title"></select>
|
|
<textarea name="attr_pcSpellDescription" id="textarea" class="textarea expandable" placeholder="Description de la magie" data-i18n-placeholder="magic-description-title"></textarea>
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
</div>
|
|
<div>
|
|
<div class="pc-invoking-menu title">
|
|
<button class="pc-sub-menu" data-tab="pc-invoking"></button>
|
|
<span data-i18n="CONNIVANCES-header">CONNIVENCES,</span>
|
|
<span data-i18n="ADVOCATUS-DIABOLI-INKS-header">ADVOCATUS DIABOLI & ENCRES</span>
|
|
</div>
|
|
<div class="pc-invoking grid" data-tab="pc-invoking">
|
|
<span class="pc-invoking-apt-lbl title bold" data-i18n="invoking-aptitude-header">Pot. de conjuration</span>
|
|
<input type="number" name="attr_pcInvokingAptitute" class="number item-right" title="Potentiel de conjuration (Noirceur+Démonologie+Bonus d'Âme)" data-i18n-title="invoking-aptitude-title">
|
|
<button class="dice item-left" type="roll" value="&{template:agone-invoking} {{name=@{character_name}}}{{Invoking=@{invokingRoll} : [[[[1d10!]]+[[@{pcInvokingAptitute}]]+[[?{@{bonusPenaltyRoll}|0}]]]]}} {{Dice=@{rollRoll}: $[[0]]}} {{Base=@{baseRoll}: $[[1]]}} {{BonPen=@{bonusPenaltyRoll}: $[[2]]}}" title="Jet de Conjuration" data-i18n-title="invoking-roll-title" name="roll_pc-invoking"></button>
|
|
<span class="title bold">I</span>
|
|
<input type="number" name="attr_pcInkI" class="number" title="Encres de Cercle I" data-title-i18n="circle-I-inks-title">
|
|
<span class="title bold">II</span>
|
|
<input type="number" name="attr_pcInkII" class="number" title="Encres de Cercle II" data-title-i18n="circle-II-inks-title">
|
|
<span class="title bold">III</span>
|
|
<input type="number" name="attr_pcInkIII" class="number" title="Encres de Cercle III" data-title-i18n="circle-III-inks-title">
|
|
<span class="title bold">IV</span>
|
|
<input type="number" name="attr_pcInkIV" class="number" title="Encres de Cercle IV" data-title-i18n="circle-IV-inks-title">
|
|
<span class="title bold">V</span>
|
|
<input type="number" name="attr_pcInkV" class="number" title="Encres de Cercle V" data-title-i18n="circle-V-inks-title">
|
|
<fieldset class="repeating_pc-invoking">
|
|
<textarea name="attr_pcConnivance" id="textarea" class="textarea expandable" placeholder="Termes de la Connivence" data-i18n-placeholder="connivance-title"></textarea>
|
|
</fieldset>
|
|
<fieldset class="repeating_pc-advocatus-diaboli">
|
|
<textarea name="attr_pcAdvocatusDiaboli" id="textarea" class="textarea expandable" placeholder="Advocatus Diaboli en charge de la Connivence" data-i18n-placeholder="advocatus-diaboli-title"></textarea>
|
|
</fieldset>
|
|
</div>
|
|
</div>
|
|
<div>
|
|
<div class="pc-notes-menu title">
|
|
<button class="pc-sub-menu" data-tab="pc-notes"></button>
|
|
<span>NOTES</span>
|
|
</div>
|
|
<div class="pc-notes auto-expand" data-tab="pc-notes">
|
|
<span name="attr_pcNotes"></span>
|
|
<textarea name="attr_pcNotes" id="textarea" class="textarea" spellcheck="false" placeholder="Notes"></textarea>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="companion-sheet section tab-container" data-tab="companion">
|
|
<div class="companion-infos grid">
|
|
<span data-i18n="name-header">Nom</span>
|
|
<input type="text" name="attr_character_name" class="text max" title="Nom" data-i18n-title="name-title">
|
|
<span data-i18n="age-header">Âge</span>
|
|
<input type="text" name="attr_companionAge" class="text max" title="Âge" data-i18n-title="age-title">
|
|
<span data-i18n="experience-header">Expérience</span>
|
|
<input type="number" name="attr_companionExp" class="number" title="Expérience non dépensée" data-i18n-title="unused-experience-title">
|
|
<span data-i18n="size-header">Taille</span>
|
|
<input type="text" name="attr_companionSize" class="text max" title="Taille" data-i18n-title="size-title">
|
|
<span data-i18n="weight-header">Masse</span>
|
|
<input type="text" name="attr_companionWeight" class="text max" title="Masse en kg" data-i18n-title="weight-title">
|
|
</div>
|
|
<textarea name="attr_companionDescription" id="textarea" class="companion-description textarea expandable" placeholder="Description" data-i18n-placeholder="description-placeholder"></textarea>
|
|
<div class="wood1 title">
|
|
<span data-i18n="ATTRIBUTES-header">CARACTÉRISTIQUES PRIMAIRES</span>
|
|
<button class="dice menu-dice" type="roll" value="?{@{attributeRoll}|@{agilityRoll}, &{template:agone-chars&#125; {{name=@{character_name}&#125;&#125; {{Attribute=@{agilityRoll} : [[[[1d10!]]+[[2*@{companionAgility}]]+[[?{@{bonusPenaltyRoll}&#124;@{companionArmorAGIPenalty}&#125;]]]]&#125;&#125; {{Dice=@{rollRoll}: $[[0]]&#125;&#125; {{Attr=@{agilityRoll} x2 : $[[1]]&#125;&#125; {{AspBonus=@{aspectBonusRoll} : N/A&#125;&#125; {{BonPen=@{bonusPenaltyRoll}: $[[2]] &#125;&#125;|@{charismaRoll}, &{template:agone-chars&#125; {{name=@{character_name}&#125;&#125; {{Attribute=@{charismaRoll} : [[[[1d10!]]+[[2*@{companionCharisma}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]]]&#125;&#125; {{Dice=@{rollRoll}: $[[0]]&#125;&#125; {{Attr=@{charismaRoll} x2 : $[[1]]&#125;&#125; {{AspBonus=@{aspectBonusRoll} : N/A&#125;&#125; {{BonPen=@{bonusPenaltyRoll}: $[[2]] &#125;&#125;|@{creativityRoll}, &{template:agone-chars&#125; {{name=@{character_name}&#125;&#125; {{Attribute=@{creativityRoll} : [[[[1d10!]]+[[2*@{companionCreativity}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]]]&#125;&#125; {{Dice=@{rollRoll}: $[[0]]&#125;&#125; {{Attr=@{creativityRoll} x2 : $[[1]]&#125;&#125; {{AspBonus=@{aspectBonusRoll} : N/A&#125;&#125; {{BonPen=@{bonusPenaltyRoll}: $[[2]] &#125;&#125;|@{strengthRoll}, &{template:agone-chars&#125; {{name=@{character_name}&#125;&#125; {{Attribute=@{strengthRoll} : [[[[1d10!]]+[[2*@{companionStrength}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]]]&#125;&#125; {{Dice=@{rollRoll}: $[[0]]&#125;&#125; {{Attr=@{strengthRoll} x2 : $[[1]]&#125;&#125; {{AspBonus=@{aspectBonusRoll} : N/A&#125;&#125; {{BonPen=@{bonusPenaltyRoll}: $[[2]] &#125;&#125;|@{intelligenceRoll}, &{template:agone-chars&#125; {{name=@{character_name}&#125;&#125; {{Attribute=@{intelligenceRoll} : [[[[1d10!]]+[[2*@{companionIntelligence}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]]]&#125;&#125; {{Dice=@{rollRoll}: $[[0]]&#125;&#125; {{Attr=@{intelligenceRoll} x2 : $[[1]]&#125;&#125; {{AspBonus=@{aspectBonusRoll} : N/A&#125;&#125; {{BonPen=@{bonusPenaltyRoll}: $[[2]] &#125;&#125;|@{perceptionRoll}, &{template:agone-chars&#125; {{name=@{character_name}&#125;&#125; {{Attribute=@{perceptionRoll} : [[[[1d10!]]+[[2*@{companionPerception}]]+[[?{@{bonusPenaltyRoll}&#124;@{companionArmorPERPenalty}&#125;]]]]&#125;&#125; {{Dice=@{rollRoll}: $[[0]]&#125;&#125; {{Attr=@{perceptionRoll} x2 : $[[1]]&#125;&#125; {{AspBonus=@{aspectBonusRoll} : N/A&#125;&#125; {{BonPen=@{bonusPenaltyRoll}: $[[2]] &#125;&#125;|@{staminaRoll}, &{template:agone-chars&#125; {{name=@{character_name}&#125;&#125; {{Attribute=@{staminaRoll} : [[[[1d10!]]+[[2*@{companionStamina}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]]]&#125;&#125; {{Dice=@{rollRoll}: $[[0]]&#125;&#125; {{Attr=@{staminaRoll} x2 : $[[1]]&#125;&#125; {{AspBonus=@{aspectBonusRoll} : N/A&#125;&#125; {{BonPen=@{bonusPenaltyRoll}: $[[2]] &#125;&#125;|@{willRoll}, &{template:agone-chars&#125; {{name=@{character_name}&#125;&#125; {{Attribute=@{willRoll} : [[[[1d10!]]+[[2*@{companionWill}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]]]&#125;&#125; {{Dice=@{rollRoll}: $[[0]]&#125;&#125; {{Attr=@{willRoll} x2 : $[[1]]&#125;&#125; {{AspBonus=@{aspectBonusRoll} : N/A&#125;&#125; {{BonPen=@{bonusPenaltyRoll}: $[[2]] &#125;&#125;}" name="roll_companion-attributes" title="Jet de Caractéristique" data-i18n-title="attribute-roll-title"></button>
|
|
<span data-i18n="fumble-header">Fumble</span>
|
|
<button class="dice menu-dice" type="roll" value="@{fumbleRollButton}" name="roll_companion-fumble" title="Fumble" data-i18n-title="fumble-title"></button>
|
|
</div>
|
|
<div class="companion-attributes grid">
|
|
<span data-i18n="AGI-header">AGI</span>
|
|
<input type="number" name="attr_companionAgility" class="number half-number item-right" title="Score d'AGIlité" data-i18n-title="AGIlity-title">
|
|
<input type="number" name="attr_companionAgilityExp" class="number half-number item-left" title="Expérience dépensée en AGIlité" data-i18n-title="AGIlity-experience-title">
|
|
<span data-i18n="STR-header">FOR</span>
|
|
<input type="number" name="attr_companionStrength" class="number half-number item-right" title="Score de FORce" data-i18n-title="STRength-title">
|
|
<input type="number" name="attr_companionStrengthExp" class="number half-number item-left" title="Expérience dépensée en FORce" data-i18n-title="STRength-experience-title">
|
|
<span data-i18n="PER-header">PER</span>
|
|
<input type="number" name="attr_companionPerception" class="number half-number item-right" title="Score de PERception" data-i18n-title="PERception-title">
|
|
<input type="number" name="attr_companionPerceptionExp" class="number half-number item-left" title="Expérience dépensée en Perception" data-i18n-title="PERception-experience-title">
|
|
<span data-i18n="STA-header">RÉS</span>
|
|
<input type="number" name="attr_companionStamina" class="number half-number item-right" title="Score de RÉSistance" data-i18n-title="STAmina-title">
|
|
<input type="number" name="attr_companionStaminaExp" class="number half-number item-left" title="Expérience dépensée en RÉSistance" data-i18n-title="STAmina-experience-title">
|
|
<span data-i18n="MEL-header">MÊL</span>
|
|
<input type="number" name="attr_companionMelee" class="number" title="(FOR+AGIx2)/3" data-i18n-title="melee-title" readonly>
|
|
<span data-i18n="AIM-header">TIR</span>
|
|
<input type="number" name="attr_companionAim" class="number" title="(PER+AGI)/2" data-i18n-title="aim-title" readonly>
|
|
<span data-i18n="INT-header">INT</span>
|
|
<input type="number" name="attr_companionIntelligence" class="number half-number item-right" title="Score d'INTelligence" data-i18n-title="INTelligence-title">
|
|
<input type="number" name="attr_companionIntelligenceExp" class="number half-number item-left" title="Expérience dépensée en INTelligence" data-i18n-title="INTelligence-experience-title">
|
|
<span data-i18n="WIL-header">VOL</span>
|
|
<input type="number" name="attr_companionWill" class="number half-number item-right" title="Score de VOLonté" data-i18n-title="WILl-title">
|
|
<input type="number" name="attr_companionWillExp" class="number half-number item-left" title="Expérience dépensée en VOLonté" data-i18n-title="WILl-experience-title">
|
|
<span data-i18n="CHA-header">CHA</span>
|
|
<input type="number" name="attr_companionCharisma" class="number half-number item-right" title="Score de CHArisme" data-i18n-title="CHArisma-title">
|
|
<input type="number" name="attr_companionCharismaExp" class="number half-number item-left" title="Expérience dépensée en CHArisme" data-i18n-title="CHArisma-experience-title">
|
|
<span data-i18n="CRE-header">CRÉ</span>
|
|
<input type="number" name="attr_companionCreativity" class="number half-number item-right" title="Score de CRÉativité" data-i18n-title="CREativity-title">
|
|
<input type="number" name="attr_companionCreativityExp" class="number half-number item-left" title="Expérience dépensée en CRÉativité" data-i18n-title="CREativity-experience-title">
|
|
<span data-i18n="ASC-header">EMP</span>
|
|
<input type="number" name="attr_companionAscendancy" class="companion-attributes-3 number" title="INT, (INT+VOL)/2 ou VOL" data-i18n-title="asc-title">
|
|
<span data-i18n="ART-header">ART</span>
|
|
<input type="number" name="attr_companionArt" class="companion-attributes-4 number" title="(CHA+CRE)/2" data-i18n-title="art-title" readonly>
|
|
<span data-i18n="SIZ-header">TAI</span>
|
|
<input type="number" name="attr_companionSIZ" class="number" title="Score de TAI" data-i18n-title="SIZ-title">
|
|
<span data-i18n="MV-header">MV</span>
|
|
<input type="number" name="attr_companionMove" class="number" title="Score de MV" data-i18n-title="MV-title">
|
|
<span data-i18n="DB-header">BD</span>
|
|
<input type="number" name="attr_companionDamageBonus" class="companion-attributes-7 number" title="Voir Livre des Règles" data-i18n-title="core-book-title">
|
|
<span data-i18n="HP-header">PdV</span>
|
|
<input type="number" name="attr_companionHP_max" class="companion-attributes-8 number" title="Voir Livre des Règles" data-i18n-title="core-book-title">
|
|
<span data-i18n="SWT-header">SBG</span>
|
|
<input type="number" name="attr_companionSeriousWoundThreshold" class="companion-attributes-1 number" title="PdV/3" data-i18n-title="serious-wound-threshold-title" readonly>
|
|
<span data-i18n="CWT-header">SBC</span>
|
|
<input type="number" name="attr_companionCriticalWoundThreshold" class="companion-attributes-2 number" title="PdV/2" data-i18n-title="critical-wound-threshold-title" readonly>
|
|
<span data-i18n="ML-header">CM</span>
|
|
<input type="number" name="attr_companionMaxLoad" class="companion-attributes-3 number" title="Voir Livre des Règles" data-i18n-title="core-book-title">
|
|
<span data-i18n="HL-header">DC</span>
|
|
<input type="number" name="attr_companionHalfLoad" class="companion-attributes-4 number" title="CM/2" data-i18n-title="half-load-title" readonly>
|
|
<span data-i18n="DL-header">CQ</span>
|
|
<input type="number" name="attr_companionDailyLoad" class="number" title="CM/4" data-i18n-title="daily-load-title" readonly>
|
|
<span data-i18n="currents-header">Actuels</span>
|
|
<input type="number" name="attr_companionHP" class="number" title="Point(s) de Vie actuel(s)" data-i18n-title="current-hp-title">
|
|
<span data-i18n="SW-header">BG</span>
|
|
<input type="number" name="attr_companionSeriousWound" class="companion-attributes-7 number" title="Blessure(s) Grave(s) encaissée(s)" data-i18n-title="serious-wound(s)-received-title" value="0">
|
|
<span data-i18n="penalty-header">Malus</span>
|
|
<input type="number" name="attr_companionSeriousWoundPenalty" class="companion-attributes-8 number" title="Malus dû à la ou les Blessure(s) Grave(s)" data-i18n-title="serious-wound(s)-penalty-title" readonly>
|
|
</div>
|
|
<div class="wood2 title">
|
|
<span data-i18n="SKILLS-header">COMPÉTENCES</span>
|
|
<button class="dice menu-dice" type="roll" value="@{companionSkillsSelection}" name="roll_companion-skills" title="Jet de Compétence" name="roll_pc-skills" data-i18n-title="skill-roll-title"></button>
|
|
</div>
|
|
<fieldset class="repeating_companion-skills">
|
|
<select name="attr_companionSkillName" class="select">
|
|
<option data-i18n="acrobatics-option">Acrobatie (Maraude)</option>
|
|
<option data-i18n="alchemy-option">Alchemie (Occulte)</option>
|
|
<option data-i18n="alphabets-option">Alphabets (Savoir)</option>
|
|
<option data-i18n="weapons-option">Armes (Épreuve)</option>
|
|
<option data-i18n="magical-arts-option">Arts Magiques (Occulte)</option>
|
|
<option data-i18n="astronomy-option">Astronomie (Savoir)</option>
|
|
<option data-i18n="athletics-option">Athlétisme (Épreuve)</option>
|
|
<option data-i18n="fast-talk-option">Baratin (Société)</option>
|
|
<option data-i18n="conceal-option">Camouflage (Maraude)</option>
|
|
<option data-i18n="hunt-option">Chasse (Maraude)</option>
|
|
<option data-i18n="surgery-option">Chirurgie (Savoir)</option>
|
|
<option data-i18n="dancer-lore-option">Conn. des Danseurs (Occulte)</option>
|
|
<option data-i18n="cipher-sorcery-option">Cryptogramme (Occulte)</option>
|
|
<option data-i18n="cults-option">Cultes (Savoir)</option>
|
|
<option data-i18n="disguise-option">Déguisement (Maraude)</option>
|
|
<option data-i18n="demonology-option">Démonologie (Occulte)</option>
|
|
<option data-i18n="diplomacy-option">Diplomatie (Société)</option>
|
|
<option data-i18n="stealth-option">Discrétion (Maraude)</option>
|
|
<option data-i18n="elementalism-option">Élémentalisme (Occulte)</option>
|
|
<option data-i18n="eloquence-option">Éloquence (Société)</option>
|
|
<option data-i18n="ride-option">Équitation (Épreuve)</option>
|
|
<option data-i18n="climb-option">Escalade (Épreuve)</option>
|
|
<option data-i18n="dodge-option">Esquive (Épreuve)</option>
|
|
<option data-i18n="etiquette-option">Étiquette (Société)</option>
|
|
<option data-i18n="search-option">Fouille (Maraude)</option>
|
|
<option data-i18n="geography-option">Géographie (Savoir)</option>
|
|
<option data-i18n="concord-option">Harmonie (Occulte)</option>
|
|
<option data-i18n="plant-lore-option">Herboristerie (Savoir)</option>
|
|
<option data-i18n="history-legends-option">Histoire & légendes (Savoir)</option>
|
|
<option data-i18n="stewardship-option">Intendance (Société)</option>
|
|
<option data-i18n="intrigue-option">Intrigue (Maraude)</option>
|
|
<option data-i18n="gambling-option">Jeu (Maraude)</option>
|
|
<option data-i18n="languages-option">Langues (Savoir)</option>
|
|
<option data-i18n="law-option">Lois (Savoir)</option>
|
|
<option data-i18n="medicine-option">Médecine (Savoir)</option>
|
|
<option data-i18n="music-option">Musique (Société)</option>
|
|
<option data-i18n="swim-option">Natation (Épreuve)</option>
|
|
<option data-i18n="navigation-option">Navigation (Savoir)</option>
|
|
<option data-i18n="trade-option">Négoce (Société)</option>
|
|
<option data-i18n="legerdemain-option">Passe-passe (Maraude)</option>
|
|
<option data-i18n="painting-option">Peinture (Société)</option>
|
|
<option data-i18n="poetry-option">Poésie (Société)</option>
|
|
<option data-i18n="poisons-option">Poisons (Maraude)</option>
|
|
<option data-i18n="first-aid-option">Premiers soins (Épreuve)</option>
|
|
<option data-i18n="resonance-option">Résonance (Occulte)</option>
|
|
<option data-i18n="seasons-option">Saisons (Savoir)</option>
|
|
<option data-i18n="craft-option">Savoir-faire (Société)</option>
|
|
<option data-i18n="sculpture-option">Sculpture (Société)</option>
|
|
<option data-i18n="locksmith-option">Serrurerie (Maraude)</option>
|
|
<option data-i18n="strategy-option">Stratégie (Savoir)</option>
|
|
<option data-i18n="survival-option">Survie (Épreuve)</option>
|
|
<option data-i18n="alertness-option">Vigilance (Épreuve)</option>
|
|
<option data-i18n="traditions-option">Us et coutumes (Société)</option>
|
|
<option data-i18n="beast-lore-option">Zoologie (Savoir)</option>
|
|
</select>
|
|
<input type="text" name="attr_companionSkillBranch" class="text" title="Domaine de la compétence (si applicable)" data-i18n-title="branch-title" placeholder="domaine" data-i18n-placeholder="branch-placeholder">
|
|
<input type="text" name="attr_companionSkillSpecialty" class="text" title="Spécialité de la compétence" data-i18n-title="specialty-title" placeholder="spécialité" data-i18n-placeholder="specialty-placeholder">
|
|
<input type="number" name="attr_companionSkillScore" class="number" title="Score de la compétence" data-i18n-title="skill-title">
|
|
<input type="number" name="attr_companionSkillExp" class="number" title="Expérience dépensée dans la compétence" data-i18n-title="skill-experience-title">
|
|
<input type="hidden" name="attr_companionSkill">
|
|
<button class="dice" type="roll" value="&{template:agone-skills} {{name=@{character_name}}} {{Skill=@{companionSkill} : [[[[1d10!]]+[[@{companionSkillScore}]]+?{@{attributeRoll}|@{agilityRoll}, [[@{companionAgility}]]+[[?{@{bonusPenaltyRoll}&#124;@{companionArmorAGIPenalty}&#125;]]|@{strengthRoll}, [[@{companionStrength}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]|@{perceptionRoll}, [[@{companionPerception}]]+[[?{@{bonusPenaltyRoll}&#124;@{companionArmorPERPenalty}&#125;]]|@{staminaRoll}, [[@{companionStamina}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]|@{intelligenceRoll}, [[@{companionIntelligence}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]|@{willRoll}, [[@{companionWill}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]|@{charismaRoll}, [[@{companionCharisma}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]|@{creativityRoll}, [[@{companionCreativity}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]|@{meleeRoll}, [[@{companionMelee}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]|@{aimRoll}, [[@{companionAim}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]}}]]}} {{Dice=@{rollRoll}: $[[0]]}} {{Sk=@{skillRoll}: $[[1]]}} {{Attr=@{attributeRoll}: $[[2]]}} {{AspBonus=@{aspectBonusRoll} : N/A}} {{BonPen=@{bonusPenaltyRoll}: $[[3]]}}" name="roll_companion-skill" title="Jet de Compétence" name="roll_pc-skills" data-i18n-title="skill-roll-title"></button>
|
|
</fieldset>
|
|
<div class="wood3 title">
|
|
<span data-i18n="WEAPONS-header">ARMES</span>
|
|
<span data-i18n="initiative-header">Initiative</span>
|
|
<input type="number" name="attr_companionInit" class="number border-white" title="AGI+PER(+Bonus de Corps)" data-i18n-title="initiative-title" readonly>
|
|
<button class="dice menu-dice" type="roll" value="&{template:agone-initiative} {{name=@{selected|character_name}}} {{Initiative=@{initiativeRoll}[[[[1d10]]+[[@{companionInit}]]+[[?{@{bonusPenaltyRoll}|0}]] &{tracker}]]}} {{Dice=@{rollRoll}: $[[0]]}} {{Base=@{baseRoll}: $[[1]]}} {{BonPen=@{bonusPenaltyRoll}: $[[2]]}}" name="roll_companion-init" title="Jet d'Initiative" data-i18n-title="initiative-roll-title"></button>
|
|
<span data-i18n="dodge-header">Esquive</span>
|
|
<input type="number" name="attr_companionDodgeTotal" class="number border-white" title="AGI+Esquive(+Bonus de Corps)" data-i18n-title="dodge-title" readonly>
|
|
<button class="dice menu-dice" type="roll" value="&{template:agone-dodge} {{name=@{character_name}}} {{Dodge=@{dodgeRoll} : [[[[1d10!]]+[[@{companionDodgeTotal}]]+[[?{@{bonusPenaltyRoll}|@{companionArmorAGIPenalty}}]]]]}} {{Dice=@{rollRoll}: $[[0]]}} {{Base=@{baseRoll}: $[[1]]}} {{BonPen=@{bonusPenaltyRoll}: $[[2]]}}" name="roll_companion-dodge" title="Jet d'Esquive" data-i18n-title="dodge-roll-title"></button>
|
|
<span data-i18n="natural-defense-header">Défense Naturelle</span>
|
|
<input type="number" name="attr_companionNaturalDefense" class="number half-number border-white" title="AGI(+Bonus de Corps)" data-i18n-title="natural-defense-title" readonly>
|
|
<button class="dice menu-dice" type="roll" value="&{template:agone-natural-defense} {{name=@{character_name}}} {{NaturalDefense=@{naturalDefenseRoll}: [[[[1d10!]]+[[@{companionNaturalDefense}]]+[[?{@{bonusPenaltyRoll}|@{companionArmorAGIPenalty}}]]]]}} {{Dice=@{rollRoll}: $[[0]]}} {{Base=@{baseRoll}: $[[1]]}} {{BonPen=@{bonusPenaltyRoll}: $[[2]]}}" name="roll_companion-natural-defense" title="Jet de Défense Naturelle" data-i18n-title="natural-defense-roll-title"></button>
|
|
<span data-i18n="distance-dodge-header">Distance</span>
|
|
<input type="number" name="attr_companionDistanceDodge" class="number half-number border-white" title="(AGI+Esquive)/2" data-i18n-title="distance-dodge-title" readonly>
|
|
<span data-i18n="armor-header">Armure</span>
|
|
<input type="number" name="attr_companionArmor" class="number half-number border-white" value="0" title="Armure" data-i18n-title="armor-title">
|
|
<input type="number" name="attr_companionArmorAGIPenalty" class="number half-number border-white" value="0" title="Malus de l'armure" data-i18n-title="armor-penalty-title">
|
|
<input type="number" name="attr_companionArmorPERPenalty" class="number half-number border-white" value="0" title="Malus de perception de l'armure" data-i18n-title="armor-perception-penalty-title">
|
|
</div>
|
|
<div class="companion-weapons grid">
|
|
<span class="title bold" data-i18n="name-header">Nom</span>
|
|
<span class="title bold" data-i18n="skills-header">Compétence</span>
|
|
<span class="title bold" data-i18n="initiative-header">Initiative</span>
|
|
<span class="title bold" data-i18n="attack-header">Attaque</span>
|
|
<span class="title bold" data-i18n="defense-header">Défense</span>
|
|
<span class="title bold" data-i18n="damage-db-header">Dom.+BD</span>
|
|
<span class="title bold" data-i18n="type-header">Type</span>
|
|
<span class="title bold" data-i18n="style-header">Style</span>
|
|
<span class="title bold" data-i18n="SIZ-header">TAI</span>
|
|
</div>
|
|
<fieldset class="repeating_companion-weapons">
|
|
<div class="companion-weapons-rows grid">
|
|
<input type="text" name="attr_companionWeaponName" class="text max" title="Nom de l'arme" data-i18n-title="weapon-name-title">
|
|
<select name="attr_companionWeaponSkill" class="select max companionWeaponSkill" title="Compétence d'arme associée" data-i18n-title="weapon-skill-title">
|
|
<option value="@{companionWeaponSkill-1}" data-i18n="weapons1-option">Armes 1</option>
|
|
<option value="@{companionWeaponSkill-2}" data-i18n="weapons2-option">Armes 2</option>
|
|
<option value="@{companionWeaponSkill-3}" data-i18n="weapons3-option">Armes 3</option>
|
|
<option value="@{companionWeaponSkill-4}" data-i18n="weapons4-option">Armes 4</option>
|
|
<option value="@{companionWeaponSkill-5}" data-i18n="weapons5-option">Armes 5</option>
|
|
<option value="@{companionWeaponSkill-6}" data-i18n="weapons6-option">Armes 6</option>
|
|
<option value="@{companionWeaponSkill-7}" data-i18n="weapons7-option">Armes 7</option>
|
|
<option value="@{companionWeaponSkill-8}" data-i18n="weapons8-option">Armes 8</option>
|
|
<option value="@{companionWeaponSkill-9}" data-i18n="weapons9-option">Armes 9</option>
|
|
<option value="@{companionWeaponSkill-10}" data-i18n="weapons10-option">Armes 10</option>
|
|
</select>
|
|
<button class="dice" type="roll" value="?{@{rollRoll}|Initiative, &{template:agone-initiative&#125; {{name=@{selected|character_name}&#125;&#125 {{weapon=(@{companionWeaponName})&#125;&#125; {{Initiative=@{initiativeRoll}[[[[1d10]]+[[@{companionWeaponInitTotal}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]] &{tracker&#125;]]&#125;&#125; {{Dice=@{rollRoll}: $[[0]]&#125;&#125; {{Base=@{baseRoll}: $[[1]]&#125;&#125; {{BonPen=@{bonusPenaltyRoll}: $[[2]]&#125;&#125;|@{attackRoll}, &{template:agone-attack&#125; {{name=@{character_name}&#125;&#125; {{weapon=(@{companionWeaponName})&#125;&#125; {{Attack=@{attackRoll} : [[[[1d10!]]+[[@{companionWeaponAttackTotal}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]]]&#125;&#125; {{Type=@{companionWeaponType}&#125;&#125; {{Dice=@{rollRoll}: $[[0]]&#125;&#125; {{Base=@{baseRoll}: $[[1]]&#125;&#125; {{BonPen=@{bonusPenaltyRoll}: $[[2]]&#125;&#125;|@{defenseRoll}, &{template:agone-defense&#125; {{name=@{character_name}&#125;&#125; {{weapon=(@{companionWeaponName})&#125;&#125; {{Defense=@{defenseRoll} : [[[[1d10!]]+[[@{companionWeaponDefenseTotal}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]]]&#125;&#125; {{Dice=@{rollRoll}: $[[0]]&#125;&#125; {{Base=@{baseRoll}: $[[1]]&#125;&#125; {{BonPen=@{bonusPenaltyRoll}: $[[2]]&#125;&#125;|@{dodgeRoll}, &{template:agone-dodge&#125; {{name=@{character_name}&#125;&#125; {{Dodge=@{dodgeRoll} : [[[[1d10!]]+[[@{companionDodgeTotal}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]]]&#125;&#125; {{Dice=@{rollRoll}: $[[0]]&#125;&#125; {{Base=@{baseRoll}: $[[1]]&#125;&#125; {{BonPen=@{bonusPenaltyRoll}: $[[2]]&#125;&#125;|@{naturalDefenseRoll}, &{template:agone-natural-defense&#125; {{name=@{character_name}&#125;&#125; {{NaturalDefense=@{naturalDefenseRoll}: [[[[1d10!]]+[[@{companionNaturalDefense}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]]]&#125;&#125; {{Dice=@{rollRoll}: $[[0]]&#125;&#125; {{Base=@{baseRoll}: $[[1]]&#125;&#125; {{BonPen=@{bonusPenaltyRoll}: $[[2]]&#125;&#125;}" name="roll_companion-fight" title="Jet de combat" data-i18n-title="fight-roll-title"></button>
|
|
<input type="number" name="attr_companionWeaponInit" class="number half-number item-right" title="Initiative de l'arme" data-i18n-title="weapon-initiative-title">
|
|
<input type="number" name="attr_companionWeaponInitTotal" class="number half-number" title="Initiative totale (PER+AGI+Bonus de l'arme[+Bonus de Corps])" data-i18n-title="total-initiative-title" readonly>
|
|
<button class="dice item-left" type="roll" value="&{template:agone-initiative} {{name=@{selected|character_name}}} {{weapon=(@{companionWeaponName})}} {{Initiative=@{initiativeRoll}[[[[1d10]]+[[@{companionWeaponInitTotal}]]+[[?{@{bonusPenaltyRoll}|0}]] &{tracker}]]}} {{Dice=@{rollRoll}: $[[0]]}} {{Base=@{baseRoll}: $[[1]]}} {{BonPen=@{bonusPenaltyRoll}: $[[2]]}}" name="roll_companion-init" title="Jet d'Initiative" data-i18n-title="initiative-roll-title"></button>
|
|
<input type="number" name="attr_companionWeaponAttack" class="number half-number item-right" title="Attaque de l'arme" data-i18n-title="weapon-attack-title">
|
|
<input type="number" name="attr_companionWeaponAttackTotal" class="number half-number" title="Attaque totale ([MEL ou TIR]+Compétence+Bonus de l'arme[+Bonus de Corps])" data-i18n-title="total-attack-title" readonly>
|
|
<button class="dice item-left" type="roll" value="&{template:agone-attack} {{name=@{character_name}}} {{weapon=(@{companionWeaponName})}} {{Attack=@{attackRoll} : [[[[1d10!]]+[[@{companionWeaponAttackTotal}]]+[[?{@{bonusPenaltyRoll}|0}]]]]}} {{Type=@{companionWeaponType}}} {{Dice=@{rollRoll}: $[[0]]}} {{Base=@{baseRoll}: $[[1]]}} {{BonPen=@{bonusPenaltyRoll}: $[[2]]}}" name="roll_companion-attack" title="Jet d'attaque" data-i18n-title="attack-roll-title"></button>
|
|
<input type="number" name="attr_companionWeaponDefense" class="number half-number item-right" title="Parade de l'arme" data-i18n-title="wepaon-defense-title">
|
|
<input type="number" name="attr_companionWeaponDefenseTotal" class="number half-number" title="Parade totale (MEL+Compétence+Bonus de l'arme[+Bonus de Corps])" data-i18n-title="total-defense-title" readonly>
|
|
<button class="dice item-left" type="roll" value="&{template:agone-defense} {{name=@{character_name}}} {{weapon=(@{companionWeaponName})}} {{Defense=@{defenseRoll} : [[[[1d10!]]+[[@{companionWeaponDefenseTotal}]]+[[?{@{bonusPenaltyRoll}|0}]]]]}} {{Dice=@{rollRoll}: $[[0]]}} {{Base=@{baseRoll}: $[[1]]}} {{BonPen=@{bonusPenaltyRoll}: $[[2]]}}" name="roll_companion-defense" title="Jet de parade" data-i18n-title="defense-roll-title"></button>
|
|
<input type="number" name="attr_companionWeaponDamage" class="number half-number item-right" title="Dommages de l'arme" data-i18n-title="weapon-damages-title">
|
|
<input type="number" name="attr_companionWeaponDDB" class="number half-number item-left" title="Dommages de l'arme + BD" data-i18n-title="total-damages-title" readonly>
|
|
<select name="attr_companionWeaponType" class="select max" title="Type de dégâts de l'arme" data-i18n-title="weapon-damage-type-title">
|
|
<option value="@{impalingOption}" data-i18n="I-option">P</option>
|
|
<option value="@{slashingOption}" data-i18n="S-option">T</option>
|
|
<option value="@{impalingSlashingOption}" data-i18n="IS-option">PT</option>
|
|
<option value="@{contusiveOption}" data-i18n="C-option">C</option>
|
|
</select>
|
|
<select name="attr_companionWeaponStyle" class="select max" title="Style de combat, mêlée, jet ou trait" data-i18n-title="weapon-style-title">
|
|
<option value="melee" data-i18n="melee-option">Mêlée</option>
|
|
<option value="thrown" data-i18n="thrown-option">Jet</option>
|
|
<option value="missile" data-i18n="missile-option">Trait</option>
|
|
</select>
|
|
<input type="number" class="number half-number" name="attr_companionWeaponSIZ" title="Score de TAI de l'arme" data-i18n-title="weapon-SIZ-title">
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
<div class="demon-sheet section tab-container" data-tab="demon">
|
|
<div class="demon-infos grid">
|
|
<span data-i18n="name-header">Nom</span>
|
|
<input type="text" name="attr_character_name" class="text max" title="Nom" data-i18n-title="name-title">
|
|
<span data-i18n="origin-header">Origine</span>
|
|
<select name="attr_demonRace" class="select max" title="Origine du Démon" data-i18n-title="demon-origin-title">
|
|
<option value="Opalin" data-i18n="opalin-option">Opalin</option>
|
|
<option value="Azuren" data-i18n="azuren-option">Azurin</option>
|
|
<option value="Saphiren" data-i18n="saphiren-option">Saphirin</option>
|
|
<option value="Amber" data-i18n="amber-option">Ambré</option>
|
|
<option value="Saffron" data-i18n="saffron-option">Safran</option>
|
|
<option value="Crimson" data-i18n="crimson-option">Carmin</option>
|
|
<option value="Scarlet" data-i18n="scarlet-option">Vermillon</option>
|
|
<option value="Obsidian" data-i18n="obsidian-option">Obsidien</option>
|
|
</select>
|
|
<span data-i18n="sex-header">Sexe</span>
|
|
<input type="text" name="attr_demonSex" class="text max" title="Genre" data-i18n-title="gender-title">
|
|
<span data-i18n="size-header">Taille</span>
|
|
<input type="text" name="attr_demonSize" class="text max" title="Taille" data-i18n-title="size-title">
|
|
<span data-i18n="weight-header">Masse</span>
|
|
<input type="text" name="attr_demonWeight" class="text max" title="Masse en kg" data-i18n-title="weight-title">
|
|
<span data-i18n="age-header">Âge</span>
|
|
<input type="text" name="attr_demonAge" class="text max" title="Âge" data-i18n-title="age-title">
|
|
</div>
|
|
<div class=" wood1 title">
|
|
<span data-i18n="ATTRIBUTES-header">CARACTÉRISTIQUES PRIMAIRES</span>
|
|
<button class="dice menu-dice" type="roll" value="/w gm ?{@{attributeRoll}|@{agilityRoll}, &{template:agone-chars&#125; {{name=@{character_name}&#125;&#125; {{Attribute=@{agilityRoll} : [[[[1d10!]]+[[2*@{demonAgility}]]+[[?{@{bonusPenaltyRoll}&#124;@{demonArmorAGIPenalty}&#125;]]]]&#125;&#125; {{Dice=@{rollRoll}: $[[0]]&#125;&#125; {{Attr=@{agilityRoll} x2 : $[[1]]&#125;&#125; {{AspBonus=@{aspectBonusRoll} : N/A&#125;&#125; {{BonPen=@{bonusPenaltyRoll}: $[[2]] &#125;&#125;|@{charismaRoll}, &{template:agone-chars&#125; {{name=@{character_name}&#125;&#125; {{Attribute=@{charismaRoll} : [[[[1d10!]]+[[2*@{demonCharisma}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]]]&#125;&#125; {{Dice=@{rollRoll}: $[[0]]&#125;&#125; {{Attr=@{charismaRoll} x2 : $[[1]]&#125;&#125; {{AspBonus=@{aspectBonusRoll} : N/A&#125;&#125; {{BonPen=@{bonusPenaltyRoll}: $[[2]] &#125;&#125;|@{creativityRoll}, &{template:agone-chars&#125; {{name=@{character_name}&#125;&#125; {{Attribute=@{creativityRoll} : [[[[1d10!]]+[[2*@{demonCreativity}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]]]&#125;&#125; {{Dice=@{rollRoll}: $[[0]]&#125;&#125; {{Attr=@{creativityRoll} x2 : $[[1]]&#125;&#125; {{AspBonus=@{aspectBonusRoll} : N/A&#125;&#125; {{BonPen=@{bonusPenaltyRoll}: $[[2]] &#125;&#125;|@{strengthRoll}, &{template:agone-chars&#125; {{name=@{character_name}&#125;&#125; {{Attribute=@{strengthRoll} : [[[[1d10!]]+[[2*@{demonStrength}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]]]&#125;&#125; {{Dice=@{rollRoll}: $[[0]]&#125;&#125; {{Attr=@{strengthRoll} x2 : $[[1]]&#125;&#125; {{AspBonus=@{aspectBonusRoll} : N/A&#125;&#125; {{BonPen=@{bonusPenaltyRoll}: $[[2]] &#125;&#125;|@{intelligenceRoll}, &{template:agone-chars&#125; {{name=@{character_name}&#125;&#125; {{Attribute=@{intelligenceRoll} : [[[[1d10!]]+[[2*@{demonIntelligence}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]]]&#125;&#125; {{Dice=@{rollRoll}: $[[0]]&#125;&#125; {{Attr=@{intelligenceRoll} x2 : $[[1]]&#125;&#125; {{AspBonus=@{aspectBonusRoll} : N/A&#125;&#125; {{BonPen=@{bonusPenaltyRoll}: $[[2]] &#125;&#125;|@{perceptionRoll}, &{template:agone-chars&#125; {{name=@{character_name}&#125;&#125; {{Attribute=@{perceptionRoll} : [[[[1d10!]]+[[2*@{demonPerception}]]+[[?{@{bonusPenaltyRoll}&#124;@{demonArmorPERPenalty}&#125;]]]]&#125;&#125; {{Dice=@{rollRoll}: $[[0]]&#125;&#125; {{Attr=@{perceptionRoll} x2 : $[[1]]&#125;&#125; {{AspBonus=@{aspectBonusRoll} : N/A&#125;&#125; {{BonPen=@{bonusPenaltyRoll}: $[[2]] &#125;&#125;|@{staminaRoll}, &{template:agone-chars&#125; {{name=@{character_name}&#125;&#125; {{Attribute=@{staminaRoll} : [[[[1d10!]]+[[2*@{demonStamina}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]]]&#125;&#125; {{Dice=@{rollRoll}: $[[0]]&#125;&#125; {{Attr=@{staminaRoll} x2 : $[[1]]&#125;&#125; {{AspBonus=@{aspectBonusRoll} : N/A&#125;&#125; {{BonPen=@{bonusPenaltyRoll}: $[[2]] &#125;&#125;|@{willRoll}, &{template:agone-chars&#125; {{name=@{character_name}&#125;&#125; {{Attribute=@{willRoll} : [[[[1d10!]]+[[2*@{demonWill}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]]]&#125;&#125; {{Dice=@{rollRoll}: $[[0]]&#125;&#125; {{Attr=@{willRoll} x2 : $[[1]]&#125;&#125; {{AspBonus=@{aspectBonusRoll} : N/A&#125;&#125; {{BonPen=@{bonusPenaltyRoll}: $[[2]] &#125;&#125;}" name="roll_demon-attributes" title="Jet de Caractéristique" data-i18n-title="attribute-roll-title"></button>
|
|
<span data-i18b="fumble-header">Fumble</span>
|
|
<button class="dice menu-dice" type="roll" value="/w gm @{fumbleRollButton}" name="roll_demon-fumble" title="Fumble" data-i18n-title="fumble-title"></button>
|
|
</div>
|
|
<div class="demon-attributes grid">
|
|
<span data-i18n="SIZ-header">TAI</span>
|
|
<input type="number" name="attr_demonSIZ" class="number" title="Score de TAI" data-i18n-title="SIZ-title">
|
|
<span data-i18n="MV-header">MV</span>
|
|
<input type="number" name="attr_demonGroundMove" class="number half-number item-right" title="MV au sol" data-i18n-title="ground-MV-title">
|
|
<input type="number" name="attr_demonFlightMove" class="number half-number item-left" title="MV en vol" data-i18n-title="flight-MV-title">
|
|
<span data-i18n="DB-header">BD</span>
|
|
<input type="number" name="attr_demonDamageBonus" class="number" title="Voir Livre des Règles" data-i18n-title="core-book-title">
|
|
<span data-i18n="DIF-header">DIF</span>
|
|
<input type="number" name="attr_demonDIF" class="number" title="DIFficulté de conjuration du Démon" data-i18n-title="invoking-DIF-title">
|
|
<span data-i18n="MEL-header">MÊL</span>
|
|
<input type="number" name="attr_demonMelee" class="number" title="(FOR+AGIx2)/3" data-i18n-title="melee-title" readonly>
|
|
<span data-i18n="AIM-header">TIR</span>
|
|
<input type="number" name="attr_demonAim" class="number" title="(PER+AGI)/2" data-i18n-title="aim-title" readonly>
|
|
<span data-i18n="AGI-header">AGI</span>
|
|
<input type="number" name="attr_demonAgility" class="number" title="Score d'AGIlité" data-i18n-title="AGIlity-title">
|
|
<span data-i18n="STR-header">FOR</span>
|
|
<input type="number" name="attr_demonStrength" class="demon-str number" data-i18n-title="body-bonus-title">
|
|
<span data-i18n="PER-header">PER</span>
|
|
<input type="number" name="attr_demonPerception" class="number" title="Score de PERception" data-i18n-title="PERception-title">
|
|
<span data-i18n="STA-header">RÉS</span>
|
|
<input type="number" name="attr_demonStamina" class="number" title="Score de RÉSistance" data-i18n-title="STAmina-title" readonly>
|
|
<span data-i18n="density-header">Densité</span>
|
|
<input type="number" name="attr_demonDensity_max" class="number" title="Densité du Démon" data-i18n-title="demon-density-title">
|
|
<span data-i18n="current-density-header">Actuelle</span>
|
|
<input type="number" name="attr_demonDensity" class="number" title="Densité actuelle du Démon" data-i18n-title="current-demon-density-title">
|
|
<span data-i18n="INT-header">INT</span>
|
|
<input type="number" name="attr_demonIntelligence" class="number" title="Score d'INTelligence" data-i18n-title="INTelligence-title">
|
|
<span data-i18n="WIL-header">VOL</span>
|
|
<input type="number" name="attr_demonWill" class="demon-will number" title="Score de VOLonté" data-i18n-title="WILl-title">
|
|
<span data-i18n="CHA-header">CHA</span>
|
|
<input type="number" name="attr_demonCharisma" class="number" title="Score de CHArisme" data-i18n-title="CHArisma-title">
|
|
<span data-i18n="CRE-header">CRÉ</span>
|
|
<input type="number" name="attr_demonCreativity" class="number" title="Score de CRÉativité" data-i18n-title="CREativity-title">
|
|
<span data-i18n="SWT-header">SBG</span>
|
|
<input type="number" name="attr_demonSeriousWoundThreshold" class="number" title="PdV/3" data-i18n-title="serious-wound-threshold-title" readonly>
|
|
<span data-i18n="CWT-header">SBC</span>
|
|
<input type="number" name="attr_demonCriticalWoundThreshold" class="number" title="PdV/2" data-i18n-title="critical-wound-threshold-title" readonly>
|
|
<span data-i18n="ML-header">CM</span>
|
|
<input type="number" name="attr_demonMaxLoad" class="number" title="Voir Livre des Règles" data-i18n-title="core-book-title">
|
|
<span data-i18n="HL-header">DC</span>
|
|
<input type="number" name="attr_demonHalfLoad" class="demon-dc number" title="CM/2" data-i18n-title="half-load-title" readonly>
|
|
<span data-i18n="DL-header">CQ</span>
|
|
<input type="number" name="attr_demonDailyLoad" class="number" title="CM/4" data-i18n-title="daily-load-title" readonly>
|
|
<span data-i18n="SW-header">BG</span>
|
|
<input type="number" name="attr_demonSeriousWound" class="number" title="Blessure(s) Grave(s) encaissée(s)" data-i18n-title="serious-wound(s)-received-title" value="0">
|
|
<span data-i18n="penalty-header">Malus</span>
|
|
<input type="number" name="attr_demonSeriousWoundPenalty" class="number" title="Malus dû à la ou les Blessure(s) Grave(s)" data-i18n-title="serious-wound(s)-penalty-title" readonly>
|
|
<span data-i18n="opacity-header">Opacité</span>
|
|
<input type="number" name="attr_demonOpacity" class="number" title="Opacité du Démon" data-i18n-title="demon-opacity-title">
|
|
</div>
|
|
<div class="wood2 title">
|
|
<span data-i18n="SKILLS-header">COMPÉTENCES</span>
|
|
<button class="dice menu-dice" type="roll" value="/w gm @{demonSkillsSelection}" name="roll_demon-skills" title="Jet de Compétence" name="roll_pc-skills" data-i18n-title="skill-roll-title"></button>
|
|
</div>
|
|
<fieldset class="repeating_demon-skills">
|
|
<select name="attr_demonSkillName" class="select">
|
|
<option data-i18n="acrobatics-option">Acrobatie (Maraude)</option>
|
|
<option data-i18n="alchemy-option">Alchemie (Occulte)</option>
|
|
<option data-i18n="alphabets-option">Alphabets (Savoir)</option>
|
|
<option data-i18n="weapons-option">Armes (Épreuve)</option>
|
|
<option data-i18n="magical-arts-option">Arts Magiques (Occulte)</option>
|
|
<option data-i18n="astronomy-option">Astronomie (Savoir)</option>
|
|
<option data-i18n="athletics-option">Athlétisme (Épreuve)</option>
|
|
<option data-i18n="fast-talk-option">Baratin (Société)</option>
|
|
<option data-i18n="conceal-option">Camouflage (Maraude)</option>
|
|
<option data-i18n="hunt-option">Chasse (Maraude)</option>
|
|
<option data-i18n="surgery-option">Chirurgie (Savoir)</option>
|
|
<option data-i18n="dancer-lore-option">Conn. des Danseurs (Occulte)</option>
|
|
<option data-i18n="cipher-sorcery-option">Cryptogramme (Occulte)</option>
|
|
<option data-i18n="cults-option">Cultes (Savoir)</option>
|
|
<option data-i18n="disguise-option">Déguisement (Maraude)</option>
|
|
<option data-i18n="demonology-option">Démonologie (Occulte)</option>
|
|
<option data-i18n="diplomacy-option">Diplomatie (Société)</option>
|
|
<option data-i18n="stealth-option">Discrétion (Maraude)</option>
|
|
<option data-i18n="elementalism-option">Élémentalisme (Occulte)</option>
|
|
<option data-i18n="eloquence-option">Éloquence (Société)</option>
|
|
<option data-i18n="ride-option">Équitation (Épreuve)</option>
|
|
<option data-i18n="climb-option">Escalade (Épreuve)</option>
|
|
<option data-i18n="dodge-option">Esquive (Épreuve)</option>
|
|
<option data-i18n="etiquette-option">Étiquette (Société)</option>
|
|
<option data-i18n="search-option">Fouille (Maraude)</option>
|
|
<option data-i18n="geography-option">Géographie (Savoir)</option>
|
|
<option data-i18n="concord-option">Harmonie (Occulte)</option>
|
|
<option data-i18n="plant-lore-option">Herboristerie (Savoir)</option>
|
|
<option data-i18n="history-legends-option">Histoire & légendes (Savoir)</option>
|
|
<option data-i18n="stewardship-option">Intendance (Société)</option>
|
|
<option data-i18n="intrigue-option">Intrigue (Maraude)</option>
|
|
<option data-i18n="gambling-option">Jeu (Maraude)</option>
|
|
<option data-i18n="languages-option">Langues (Savoir)</option>
|
|
<option data-i18n="law-option">Lois (Savoir)</option>
|
|
<option data-i18n="medicine-option">Médecine (Savoir)</option>
|
|
<option data-i18n="music-option">Musique (Société)</option>
|
|
<option data-i18n="swim-option">Natation (Épreuve)</option>
|
|
<option data-i18n="navigation-option">Navigation (Savoir)</option>
|
|
<option data-i18n="trade-option">Négoce (Société)</option>
|
|
<option data-i18n="legerdemain-option">Passe-passe (Maraude)</option>
|
|
<option data-i18n="painting-option">Peinture (Société)</option>
|
|
<option data-i18n="poetry-option">Poésie (Société)</option>
|
|
<option data-i18n="poisons-option">Poisons (Maraude)</option>
|
|
<option data-i18n="first-aid-option">Premiers soins (Épreuve)</option>
|
|
<option data-i18n="resonance-option">Résonance (Occulte)</option>
|
|
<option data-i18n="seasons-option">Saisons (Savoir)</option>
|
|
<option data-i18n="craft-option">Savoir-faire (Société)</option>
|
|
<option data-i18n="sculpture-option">Sculpture (Société)</option>
|
|
<option data-i18n="locksmith-option">Serrurerie (Maraude)</option>
|
|
<option data-i18n="strategy-option">Stratégie (Savoir)</option>
|
|
<option data-i18n="survival-option">Survie (Épreuve)</option>
|
|
<option data-i18n="alertness-option">Vigilance (Épreuve)</option>
|
|
<option data-i18n="traditions-option">Us et coutumes (Société)</option>
|
|
<option data-i18n="beast-lore-option">Zoologie (Savoir)</option>
|
|
</select>
|
|
<input type="text" name="attr_demonSkillBranch" class="text" title="Domaine de la compétence (si applicable)" data-i18n-title="branch-title" placeholder="domaine" data-i18n-placeholder="branch-placeholder">
|
|
<input type="text" name="attr_demonSkillSpecialty" class="text" title="Spécialité de la compétence" data-i18n-title="specialty-title" placeholder="spécialité" data-i18n-placeholder="specialty-placeholder">
|
|
<input type="number" name="attr_demonSkillScore" class="number" title="Score de la compétence" data-i18n-title="skill-title">
|
|
<input type="hidden" name="attr_demonSkill">
|
|
<button class="dice" type="roll" value="/w gm &{template:agone-skills} {{name=@{character_name}}} {{Skill=@{demonSkill} : [[[[1d10!]]+[[@{demonSkillScore}]]+?{@{attributeRoll}|@{agilityRoll}, [[@{demonAgility}]]+[[?{@{bonusPenaltyRoll}&#124;@{demonArmorAGIPenalty}&#125;]]|@{strengthRoll}, [[@{demonStrength}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]|@{perceptionRoll}, [[@{demonPerception}]]+[[?{@{bonusPenaltyRoll}&#124;@{demonArmorPERPenalty}&#125;]]|@{staminaRoll}, [[@{demonStamina}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]|@{intelligenceRoll}, [[@{demonIntelligence}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]|@{willRoll}, [[@{demonWill}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]|@{charismaRoll}, [[@{demonCharisma}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]|@{creativityRoll}, [[@{demonCreativity}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]|@{meleeRoll}, [[@{demonMelee}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]|@{aimRoll}, [[@{demonAim}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]}}]]}} {{Dice=@{rollRoll}: $[[0]]}} {{Sk=@{skillRoll}: $[[1]]}} {{Attr=@{attributeRoll}: $[[2]]}} {{AspBonus=@{aspectBonusRoll} : N/A}} {{BonPen=@{bonusPenaltyRoll}: $[[3]]}}" name="roll_demon-competence" title="Jet de Compétence" name="roll_pc-skills" data-i18n-title="skill-roll-title"></button>
|
|
</fieldset>
|
|
<div class="demon-weapons-header wood3 title">
|
|
<span data-i18n="WEAPONS-header">ARMES</span>
|
|
<span data-i18n="initiative-header">Initiative</span>
|
|
<input type="number" name="attr_demonInit" class="number border-white" title="AGI+PER(+Bonus de Corps)" data-i18n-title="initiative-title" readonly>
|
|
<button class="dice menu-dice" type="roll" value="/w gm &{template:agone-initiative} {{name=@{selected|character_name}}} {{Initiative=@{initiativeRoll}[[[[1d10]]+[[@{demonInit}]]+[[?{@{bonusPenaltyRoll}|0}]] &{tracker}]]}} {{Dice=@{rollRoll}: $[[0]]}} {{Base=@{baseRoll}: $[[1]]}} {{BonPen=@{bonusPenaltyRoll}: $[[2]]}}" name="roll_demon-init" title="Jet d'Initiative" data-i18n-title="initiative-roll-title"></button>
|
|
<span data-i18n="dodge-header">Esquive</span>
|
|
<input type="number" name="attr_demonDodgeTotal" class="number border-white" title="AGI+Esquive(+Bonus de Corps)" data-i18n-title="dodge-title" readonly>
|
|
<button class="dice menu-dice" type="roll" value="/w gm &{template:agone-dodge} {{name=@{character_name}}} {{Dodge=@{dodgeRoll} : [[[[1d10!]]+[[@{demonDodgeTotal}]]+[[?{@{bonusPenaltyRoll}|@{demonArmorAGIPenalty}}]]]]}} {{Dice=@{rollRoll}: $[[0]]}} {{Base=@{baseRoll}: $[[1]]}} {{BonPen=@{bonusPenaltyRoll}: $[[2]]}}" name="roll_demon-dodge" title="Jet d'Esquive" data-i18n-title="dodge-roll-title"></button>
|
|
<span data-i18n="natural-defense-header">Défense Naturelle</span>
|
|
<input type="number" name="attr_demonNaturalDefense" class="number half-number border-white" title="AGI(+Bonus de Corps)" data-i18n-title="natural-defense-title" readonly>
|
|
<button class="dice menu-dice" type="roll" value="/w gm &{template:agone-natural-defense} {{name=@{character_name}}} {{NaturalDefense=@{naturalDefenseRoll}: [[[[1d10!]]+[[@{demonNaturalDefense}]]+[[?{@{bonusPenaltyRoll}|@{demonArmorAGIPenalty}}]]]]}} {{Dice=@{rollRoll}: $[[0]]}} {{Base=@{baseRoll}: $[[1]]}} {{BonPen=@{bonusPenaltyRoll}: $[[2]]}}" name="roll_demon-natural-defense" title="Jet de Défense Naturelle" data-i18n-title="natural-defense-roll-title"></button>
|
|
<span data-i18n="distance-dodge-header">Distance</span>
|
|
<input type="number" name="attr_demonDistanceDodge" class="number half-number border-white" title="(AGI+Esquive)/2" data-i18n-title="distance-dodge-title" readonly>
|
|
<span data-i18n="armor-header">Armure</span>
|
|
<input type="number" name="attr_demonArmor" class="number half-number border-white" title="Armure" data-i18n-title="armor-title">
|
|
<input type="number" name="attr_demonArmorAGIPenalty" class="number half-number border-white" title="Malus de l'armure" data-i18n-title="armor-penalty-title">
|
|
<input type="number" name="attr_demonArmorPERPenalty" class="number half-number border-white" value="0" title="Malus de perception de l'armure" data-i18n-title="armor-perception-penalty-title">
|
|
</div>
|
|
<div class="demon-weapons grid">
|
|
<span class="title bold" data-i18n="name-header">Nom</span>
|
|
<span class="title bold" data-i18n="skills-header">Compétence</span>
|
|
<span class="title bold" data-i18n="initiative-header">Initiative</span>
|
|
<span class="title bold" data-i18n="attack-header">Attaque</span>
|
|
<span class="title bold" data-i18n="defense-header">Défense</span>
|
|
<span class="title bold" data-i18n="damage-db-header">Dom.+BD</span>
|
|
<span class="title bold" data-i18n="type-header">Type</span>
|
|
<span class="title bold" data-i18n="style-header">Style</span>
|
|
<span class="title bold" data-i18n="SIZ-header">TAI</span>
|
|
</div>
|
|
<fieldset class="repeating_demon-weapons">
|
|
<div class="demon-weapons-rows grid">
|
|
<input type="text" name="attr_demonWeaponName" class="text max" title="Nom de l'arme" data-i18n-title="weapon-name-title">
|
|
<select name="attr_demonWeaponSkill" class="select max demonWeaponSkill" title="Compétence d'arme associée" data-i18n-title="weapon-skill-title">
|
|
<option value="@{demonWeaponSkill-1}" data-i18n="weapons1-option">Armes 1</option>
|
|
<option value="@{demonWeaponSkill-2}" data-i18n="weapons2-option">Armes 2</option>
|
|
<option value="@{demonWeaponSkill-3}" data-i18n="weapons3-option">Armes 3</option>
|
|
<option value="@{demonWeaponSkill-4}" data-i18n="weapons4-option">Armes 4</option>
|
|
<option value="@{demonWeaponSkill-5}" data-i18n="weapons5-option">Armes 5</option>
|
|
<option value="@{demonWeaponSkill-6}" data-i18n="weapons6-option">Armes 6</option>
|
|
<option value="@{demonWeaponSkill-7}" data-i18n="weapons7-option">Armes 7</option>
|
|
<option value="@{demonWeaponSkill-8}" data-i18n="weapons8-option">Armes 8</option>
|
|
<option value="@{demonWeaponSkill-9}" data-i18n="weapons9-option">Armes 9</option>
|
|
<option value="@{demonWeaponSkill-10}" data-i18n="weapons10-option">Armes 10</option>
|
|
</select>
|
|
<button class="dice" type="roll" value="/w gm ?{@{rollRoll}|Initiative, &{template:agone-initiative&#125; {{name=@{selected|character_name}&#125;&#125; {{weapon=(@{demonWeaponName})&#125;&#125; {{Initiative=@{initiativeRoll}[[[[1d10]]+[[@{demonWeaponInitTotal}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]] &{tracker&#125;]]&#125;&#125; {{Dice=@{rollRoll}: $[[0]]&#125;&#125; {{Base=@{baseRoll}: $[[1]]&#125;&#125; {{BonPen=@{bonusPenaltyRoll}: $[[2]]&#125;&#125;|@{attackRoll}, &{template:agone-attack&#125; {{name=@{character_name}&#125;&#125; {{weapon=(@{demonWeaponName})&#125;&#125; {{Attack=@{attackRoll} : [[[[1d10!]]+[[@{demonWeaponAttackTotal}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]]]&#125;&#125; {{Type=@{demonWeaponType}&#125;&#125; {{Dice=@{rollRoll}: $[[0]]&#125;&#125; {{Base=@{baseRoll}: $[[1]]&#125;&#125; {{BonPen=@{bonusPenaltyRoll}: $[[2]]&#125;&#125;|@{defenseRoll}, &{template:agone-defense&#125; {{name=@{character_name}&#125;&#125; {{weapon=(@{demonWeaponName})&#125;&#125; {{Defense=@{defenseRoll} : [[[[1d10!]]+[[@{demonWeaponDefenseTotal}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]]]&#125;&#125; {{Dice=@{rollRoll}: $[[0]]&#125;&#125; {{Base=@{baseRoll}: $[[1]]&#125;&#125; {{BonPen=@{bonusPenaltyRoll}: $[[2]]&#125;&#125;|@{dodgeRoll}, &{template:agone-dodge&#125; {{name=@{character_name}&#125;&#125; {{Dodge=@{dodgeRoll} : [[[[1d10!]]+[[@{demonDodgeTotal}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]]]&#125;&#125; {{Dice=@{rollRoll}: $[[0]]&#125;&#125 {{Base=@{baseRoll}: $[[1]]&#125;&#125 {{BonPen=@{bonusPenaltyRoll}: $[[2]]&#125;&#125|@{naturalDefenseRoll}, &{template:agone-natural-defense&#125; {{name=@{character_name}&#125;&#125; {{NaturalDefense=@{naturalDefenseRoll}: [[[[1d10!]]+[[@{demonNaturalDefense}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]]]&#125;&#125; {{Dice=@{rollRoll}: $[[0]]&#125;&#125; {{Base=@{baseRoll}: $[[1]]&#125;&#125; {{BonPen=@{bonusPenaltyRoll}: $[[2]]&#125;&#125;}" name="roll_demon-fight" title="Jet de combat" data-i18n-title="fight-roll-title"></button>
|
|
<input type="number" name="attr_demonWeaponInit" class="number half-number item-right" title="Initiative de l'arme" data-i18n-title="weapon-initiative-title">
|
|
<input type="number" name="attr_demonWeaponInitTotal" class="number half-number" title="Initiative totale (PER+AGI+Bonus de l'arme[+Bonus de Corps])" data-i18n-title="total-initiative-title" readonly>
|
|
<button class="dice item-left" type="roll" value="/w gm &{template:agone-initiative} {{name=@{selected|character_name}}} {{weapon=(@{demonWeaponName})}} {{Initiative=@{initiativeRoll}[[[[1d10]]+[[@{demonWeaponInitTotal}]]+[[?{@{bonusPenaltyRoll}|0}]] &{tracker}]]}} {{Dice=@{rollRoll}: $[[0]]}} {{Base=@{baseRoll}: $[[1]]}} {{BonPen=@{bonusPenaltyRoll}: $[[2]]}}" name="roll_demon-init" title="Jet d'Initiative" data-i18n-title="initiative-roll-title"></button>
|
|
<input type="number" name="attr_demonWeaponAttack" class="number half-number item-right" title="Attaque de l'arme" data-i18n-title="weapon-attack-title">
|
|
<input type="number" name="attr_demonWeaponAttackTotal" class="number half-number" title="Attaque totale ([MEL ou TIR]+Compétence+Bonus de l'arme[+Bonus de Corps])" data-i18n-title="total-attack-title" readonly>
|
|
<button class="dice item-left" type="roll" value="/w gm &{template:agone-attack} {{name=@{character_name}}} {{weapon=(@{demonWeaponName})}} {{Attack=@{attackRoll} : [[[[1d10!]]+[[@{demonWeaponAttackTotal}]]+[[?{@{bonusPenaltyRoll}|0}]]]]}} {{Type=@{demonWeaponType}}} {{Dice=@{rollRoll}: $[[0]]}} {{Base=@{baseRoll}: $[[1]]}} {{BonPen=@{bonusPenaltyRoll}: $[[2]]}}" name="roll_demon-attack" title="Jet d'attaque" data-i18n-title="attack-roll-title"></button>
|
|
<input type="number" name="attr_demonWeaponDefense" class="number half-number item-right" title="Parade de l'arme" data-i18n-title="wepaon-defense-title">
|
|
<input type="number" name="attr_demonWeaponDefenseTotal" class="number half-number" title="Parade totale (MEL+Compétence+Bonus de l'arme[+Bonus de Corps])" data-i18n-title="total-defense-title" readonly>
|
|
<button class="dice item-left" type="roll" value="/w gm &{template:agone-defense} {{name=@{character_name}}} {{weapon=(@{demonWeaponName})}} {{Defense=@{defenseRoll} : [[[[1d10!]]+[[@{demonWeaponDefenseTotal}]]+[[?{@{bonusPenaltyRoll}|0}]]]]}} {{Dice=@{rollRoll}: $[[0]]}} {{Base=@{baseRoll}: $[[1]]}} {{BonPen=@{bonusPenaltyRoll}: $[[2]]}}" name="roll_demon-defense" title="Jet de parade" data-i18n-title="defense-roll-title"></button>
|
|
<input type="number" name="attr_demonWeaponDamage" class="number half-number" title="Dommages de l'arme" data-i18n-title="weapon-damages-title">
|
|
<input type="number" name="attr_demonWeaponDDB" class="number half-number" title="Dommages de l'arme + BD" data-i18n-title="total-damages-title" readonly>
|
|
<select name="attr_demonWeaponType" class="select max" title="Type de dégâts de l'arme" data-i18n-title="weapon-damage-type-title">
|
|
<option value="@{impalingOption}" data-i18n="I-option">P</option>
|
|
<option value="@{slashingOption}" data-i18n="S-option">T</option>
|
|
<option value="@{impalingSlashingOption}" data-i18n="IS-option">PT</option>
|
|
<option value="@{contusiveOption}" data-i18n="C-option">C</option>
|
|
</select>
|
|
<select name="attr_demonWeaponStyle" class="select max" title="Style de combat, mêlée, jet ou trait" data-i18n-title="weapon-style-title">
|
|
<option value="melee" data-i18n="melee-option">Mêlée</option>
|
|
<option value="thrown" data-i18n="thrown-option">Jet</option>
|
|
<option value="missile" data-i18n="missile-option">Trait</option>
|
|
</select>
|
|
<input type="number" name="attr_demonWeaponSIZ" class="number half-number" title="Score de TAI de l'arme" data-i18n-title="weapon-SIZ-title">
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
<div class="npc-sheet section tab-container" data-tab="npc">
|
|
<div class="npc-infos grid">
|
|
<span data-i18n="name-header">Nom</span>
|
|
<input type="text" name="attr_character_name" class="text max" title="Nom" data-i18n-title="name-title">
|
|
<span data-i18n="age-header">Âge</span>
|
|
<input type="text" name="attr_npcAge" class="text max" title="Âge" data-i18n-title="age-title">
|
|
<span data-i18n="size-header">Taille</span>
|
|
<input type="text" name="attr_npcSize" class="text max" title="Taille" data-i18n-title="size-title">
|
|
<span data-i18n="weight-header">Masse</span>
|
|
<input type="text" name="attr_npcWeight" class="text max" title="Masse en kg" data-i18n-title="weight-title">
|
|
<span data-i18n="SIZ-header">TAI</span>
|
|
<input type="number" name="attr_npcSIZ" class="number max" title="Score de TAI" data-i18n-title="SIZ-title">
|
|
<span data-i18n="MV-header">MV</span>
|
|
<input type="number" name="attr_npcMove" class="number max" title="Score de MV" data-i18n-title="MV-title">
|
|
</div>
|
|
<textarea name="attr_npcDescription" id="textarea" class="npc-text textarea expandable" placeholder="Description" data-i18n-placeholder="description-placeholder"></textarea>
|
|
<div class="wood1 title">
|
|
<span data-i18n="ATTRIBUTES-header">CARACTÉRISTIQUES PRIMAIRES</span>
|
|
<button class="dice menu-dice" type="roll" value="/w gm ?{@{attributeRoll}|@{agilityRoll}, &{template:agone-chars&#125; {{name=@{character_name}&#125;&#125; {{Attribute=@{agilityRoll} : [[[[1d10!]]+[[2*@{npcAgility}]]+[[@{npcBodyBonus}]]+[[?{@{bonusPenaltyRoll}&#124;@{npcArmorAGIPenalty}&#125;]]]]&#125;&#125; {{Dice=@{rollRoll}: $[[0]]&#125;&#125; {{Attr=@{agilityRoll} x2 : $[[1]]&#125;&#125; {{AspBonus=@{bodyBonusRoll} : $[[2]]&#125;&#125; {{BonPen=@{bonusPenaltyRoll}: $[[3]] &#125;&#125;|@{charismaRoll}, &{template:agone-chars&#125; {{name=@{character_name}&#125;&#125; {{Attribute=@{charismaRoll} : [[[[1d10!]]+[[2*@{npcCharisma}]]+[[@{npcSoulBonus}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]]]&#125;&#125; {{Dice=@{rollRoll}: $[[0]]&#125;&#125; {{Attr=@{charismaRoll} x2 : $[[1]]&#125;&#125; {{AspBonus=@{soulBonusRoll} : $[[2]]&#125;&#125; {{BonPen=@{bonusPenaltyRoll}: $[[3]] &#125;&#125;|@{creativityRoll}, &{template:agone-chars&#125; {{name=@{character_name}&#125;&#125; {{Attribute=@{creativityRoll} : [[[[1d10!]]+[[2*@{npcCreativity}]]+[[@{npcSoulBonus}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]]]&#125;&#125; {{Dice=@{rollRoll}: $[[0]]&#125;&#125; {{Attr=@{creativityRoll} x2 : $[[1]]&#125;&#125; {{AspBonus=@{soulBonusRoll} : $[[2]]&#125;&#125; {{BonPen=@{bonusPenaltyRoll}: $[[3]] &#125;&#125;|@{strengthRoll}, &{template:agone-chars&#125; {{name=@{character_name}&#125;&#125; {{Attribute=@{strengthRoll} : [[[[1d10!]]+[[2*@{npcStrength}]]+[[@{npcBodyBonus}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]]]&#125;&#125; {{Dice=@{rollRoll}: $[[0]]&#125;&#125; {{Attr=@{strengthRoll} x2 : $[[1]]&#125;&#125; {{AspBonus=@{bodyBonusRoll} : $[[2]]&#125;&#125; {{BonPen=@{bonusPenaltyRoll}: $[[3]] &#125;&#125;|@{intelligenceRoll}, &{template:agone-chars&#125; {{name=@{character_name}&#125;&#125; {{Attribute=@{intelligenceRoll} : [[[[1d10!]]+[[2*@{npcIntelligence}]]+[[@{npcSpiritBonus}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]]]&#125;&#125; {{Dice=@{rollRoll}: $[[0]]&#125;&#125; {{Attr=@{intelligenceRoll} x2 : $[[1]]&#125;&#125; {{AspBonus=@{spiritBonusRoll} : $[[2]]&#125;&#125; {{BonPen=@{bonusPenaltyRoll}: $[[3]] &#125;&#125;|@{perceptionRoll}, &{template:agone-chars&#125; {{name=@{character_name}&#125;&#125; {{Attribute=@{perceptionRoll} : [[[[1d10!]]+[[2*@{npcPerception}]]+[[@{npcBodyBonus}]]+[[?{@{bonusPenaltyRoll}&#124;@{npcArmorPERPenalty}&#125;]]]]&#125;&#125; {{Dice=@{rollRoll}: $[[0]]&#125;&#125; {{Attr=@{perceptionRoll} x2 : $[[1]]&#125;&#125; {{AspBonus=@{bodyBonusRoll} : $[[2]]&#125;&#125; {{BonPen=@{bonusPenaltyRoll}: $[[3]] &#125;&#125;|@{staminaRoll}, &{template:agone-chars&#125; {{name=@{character_name}&#125;&#125; {{Attribute=@{staminaRoll} : [[[[1d10!]]+[[2*@{npcStamina}]]+[[@{npcBodyBonus}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]]]&#125;&#125; {{Dice=@{rollRoll}: $[[0]]&#125;&#125; {{Attr=@{staminaRoll} x2 : $[[1]]&#125;&#125; {{AspBonus=@{bodyBonusRoll} : $[[2]]&#125;&#125; {{BonPen=@{bonusPenaltyRoll}: $[[3]] &#125;&#125;|@{willRoll}, &{template:agone-chars&#125; {{name=@{character_name}&#125;&#125; {{Attribute=@{willRoll} : [[[[1d10!]]+[[2*@{npcWill}]]+[[@{npcSpiritBonus}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]]]&#125;&#125; {{Dice=@{rollRoll}: $[[0]]&#125;&#125; {{Attr=@{willRoll} x2 : $[[1]]&#125;&#125; {{AspBonus=@{spiritBonusRoll} : $[[2]]&#125;&#125; {{BonPen=@{bonusPenaltyRoll}: $[[3]] &#125;&#125;}" name="roll_npc-attributes" name="roll_npc-attributes-global" title="Jet de Caractéristique" data-i18n-title="attribute-roll-title"></button>
|
|
<span data-i18n="flame-header">Flamme</span>
|
|
<input type="number" name="attr_npcFlame" class="number border-white" title="Score de Flamme" data-i18n-title="flame-title" readonly>
|
|
<span data-i18n="dark-flame-header">Flamme Noire</span>
|
|
<input type="number" name="attr_npcDarkFlame" class="number border-white" title="Score de Flamme Noire" data-i18n-title="dark-flame-title" readonly>
|
|
</div>
|
|
<div class="npc-attributes grid">
|
|
<span class="npc-body-title title bold" data-i18n="BODY-header">CORPS</span>
|
|
<span class="npc-spirit-title title bold" data-i18n="SPIRIT-header">ESPRIT</span>
|
|
<span class="npc-soul-title title bold" data-i18n="SOUL-header">ÂME</span>
|
|
<span class="npc-body-lbl title bold" data-i18n="Body-header">Corps</span>
|
|
<input type="number" name="attr_npcBody" class="npc-body number" title="Score de Corps" data-i18n-title="body-title">
|
|
<span class="npc-dark-body-lbl title bold" data-i18n="dark-body-header">Corps Noir</span>
|
|
<input type="number" name="attr_npcDarkBody" class="npc-dark-body number" title="Score de Corps Noir" data-i18n-title="dark-body-title">
|
|
<span class="npc-spirit-lbl title bold" data-i18n="spirit-header">Esprit</span>
|
|
<input type="number" name="attr_npcSpirit" class="npc-spirit number" title="Score d'Esprit" data-i18n-title="spirit-title">
|
|
<span class="npc-dark-spirit-lbl title bold" data-i18n="dark-spirit-header">Esprit Noir</span>
|
|
<input type="number" name="attr_npcDarkSpirit" class="npc-dark-spirit number" title="Score d'Esprit Noir" data-i18n-title="dark-spirit-title">
|
|
<span class="npc-soul-lbl title bold" data-i18n="soul-header">Âme</span>
|
|
<input type="number" name="attr_npcSoul" class="npc-soul number" title="Score d'Âme" data-i18n-title="soul-title">
|
|
<span class="npc-dark-soul-lbl title bold" data-i18n="dark-soul-header">Âme Noire</span>
|
|
<input type="number" name="attr_npcDarkSoul" class="npc-dark-soul number" title="Score d'Âme Noire" data-i18n-title="dark-soul-title">
|
|
<span class="npc-body-bonus-lbl title bold" data-i18n="body-bonus-header">Bonus de Corps</span>
|
|
<input type="number" name="attr_npcBodyBonus" class="npc-body-bonus number" title="Différence entre Corps et Corps Noir" data-i18n-title="body-bonus-title" readonly>
|
|
<span class="npc-spirit-bonus-lbl title bold" data-i18n="spirit-bonus-header">Bonus d'Esprit</span>
|
|
<input type="number" name="attr_npcSpiritBonus" class="npc-spirit-bonus number" title="Différence entre Esprit et Esprit Noir" data-i18n-title="spirit-bonus-title" readonly>
|
|
<span class="npc-soul-bonus-lbl title bold" data-i18n="soul-bonus-header">Bonus d'Âme</span>
|
|
<input type="number" name="attr_npcSoulBonus" class="npc-soul-bonus number" title="Différence entre Âme et Âme Noire" data-i18n-title="soul-bonus-title" readonly>
|
|
<span class="npc-agility-lbl" data-i18n="AGIlity-header">AGIlité</span>
|
|
<input type="number" name="attr_npcAgility" class="npc-agility number" title="Score d'AGIlité" data-i18n-title="AGIlity-title">
|
|
<button class="npc-agility-dice dice" type="roll" value="/w gm &{template:agone-chars} {{name=@{character_name}}} {{Attribute=@{agilityRoll} : [[[[1d10!]]+[[2*@{npcAgility}]]+[[@{npcBodyBonus}]]+[[?{@{bonusPenaltyRoll}|@{npcArmorAGIPenalty}}]]]]}} {{Dice=@{rollRoll}: $[[0]]}} {{Attr=@{agilityRoll} x2 : $[[1]]}} {{AspBonus=@{bodyBonusRoll} : $[[2]]}} {{BonPen=@{bonusPenaltyRoll}: $[[3]]}}" name="roll_npc-agility" title="Jet de Caractéristique" data-i18n-title="attribute-roll-title"></button>
|
|
<span class="npc-strength-lbl" data-i18n="STRength-header">FORce</span>
|
|
<input type="number" name="attr_npcStrength" class="npc-strength number" title="Score de FORce" data-i18n-title="STRength-title">
|
|
<button class="npc-strength-dice dice" type="roll" value="/w gm &{template:agone-chars} {{name=@{character_name}}} {{Attribute=@{strengthRoll} : [[[[1d10!]]+[[2*@{npcStrength}]]+[[@{npcBodyBonus}]]+[[?{@{bonusPenaltyRoll}|0}]]]]}} {{Dice=@{rollRoll}: $[[0]]}} {{Attr=@{strengthRoll} x2 : $[[1]]}} {{AspBonus=@{bodyBonusRoll} : $[[2]]}} {{BonPen=@{bonusPenaltyRoll}: $[[3]]}}" name="roll_npc-strength" title="Jet de Caractéristique" data-i18n-title="attribute-roll-title"></button>
|
|
<span class="npc-intelligence-lbl" data-i18n="INTelligence-header">INTelligence</span>
|
|
<input type="number" name="attr_npcIntelligence" class="npc-intelligence number" title="Score de INTelligence" data-i18n-title="INTelligence-title">
|
|
<button class="npc-intelligence-dice dice item-left" type="roll" value="/w gm &{template:agone-chars} {{name=@{character_name}}} {{Attribute=@{intelligenceRoll} : [[[[1d10!]]+[[2*@{npcIntelligence}]]+[[@{npcSpiritBonus}]]+[[?{@{bonusPenaltyRoll}|0}]]]]}} {{Dice=@{rollRoll}: $[[0]]}} {{Attr=@{intelligenceRoll} x2 : $[[1]]}} {{AspBonus=@{spiritBonusRoll} : $[[2]]}} {{BonPen=@{bonusPenaltyRoll}: $[[3]]}}" name="roll_npc-intelligence" title="Jet de Caractéristique" data-i18n-title="attribute-roll-title"></button>
|
|
<span class="npc-charisma-lbl" data-i18n="CHArisma-header">CHArisme</span>
|
|
<input type="number" name="attr_npcCharisma" class="npc-charisma number" title="Score de CHArisme" data-i18n-title="CHArisma-title">
|
|
<button class="npc-charisma-dice dice item-left" type="roll" value="/w gm &{template:agone-chars} {{name=@{character_name}}} {{Attribute=@{charismaRoll} : [[[[1d10!]]+[[2*@{npcCharisma}]]+[[@{npcSoulBonus}]]+[[?{@{bonusPenaltyRoll}|0}]]]]}} {{Dice=@{rollRoll}: $[[0]]}} {{Attr=@{charismaRoll} x2 : $[[1]]}} {{AspBonus=@{soulBonusRoll} : $[[2]]}} {{BonPen=@{bonusPenaltyRoll}: $[[3]]}}" name="roll_npc-charisma" title="Jet de Caractéristique" data-i18n-title="attribute-roll-title"></button>
|
|
<span class="npc-perception-lbl" data-i18n="PERception-header">PERception</span>
|
|
<input type="number" name="attr_npcPerception" class="npc-perception number" title="Score de PERception" data-i18n-title="PERception-title">
|
|
<button class="npc-perception-dice dice" type="roll" value="/w gm &{template:agone-chars} {{name=@{character_name}}} {{Attribute=@{perceptionRoll} : [[[[1d10!]]+[[2*@{npcPerception}]]+[[@{npcBodyBonus}]]+[[?{@{bonusPenaltyRoll}|@{npcArmorPERPenalty}}]]]]}} {{Dice=@{rollRoll}: $[[0]]}} {{Attr=@{perceptionRoll} x2 : $[[1]]}} {{AspBonus=@{bodyBonusRoll} : $[[2]]}} {{BonPen=@{bonusPenaltyRoll}: $[[3]]}}" name="roll_npc-perception" title="Jet de Caractéristique" data-i18n-title="attribute-roll-title"></button>
|
|
<span class="npc-stamina-lbl" data-i18n="STAmina-header">RÉSistance</span>
|
|
<input type="number" name="attr_npcStamina" class="npc-stamina number" title="Score de RÉSistance" data-i18n-title="STAmina-title">
|
|
<button class="npc-stamina-dice dice" type="roll" value="/w gm &{template:agone-chars} {{name=@{character_name}}} {{Attribute=@{staminaRoll} : [[[[1d10!]]+[[2*@{npcStamina}]]+[[@{npcBodyBonus}]]+[[?{@{bonusPenaltyRoll}|0}]]]]}} {{Dice=@{rollRoll}: $[[0]]}} {{Attr=@{staminaRoll} x2 : $[[1]]}} {{AspBonus=@{bodyBonusRoll} : $[[2]]}} {{BonPen=@{bonusPenaltyRoll}: $[[3]]}}" name="roll_npc-stamina" title="Jet de Caractéristique" data-i18n-title="attribute-roll-title"></button>
|
|
<span class="npc-will-lbl" data-i18n="WILl-header">VOLonté</span>
|
|
<input type="number" name="attr_npcWill" class="npc-will number" title="Score de VOLonté" data-i18n-title="WILl-title">
|
|
<button class="npc-will-dice dice item-left" type="roll" value="/w gm &{template:agone-chars} {{name=@{character_name}}} {{Attribute=@{willRoll} : [[[[1d10!]]+[[2*@{npcWill}]]+[[@{npcSpiritBonus}]]+[[?{@{bonusPenaltyRoll}|0}]]]]}} {{Dice=@{rollRoll}: $[[0]]}} {{Attr=@{willRoll} x2 : $[[1]]}} {{AspBonus=@{spiritBonusRoll} : $[[2]]}} {{BonPen=@{bonusPenaltyRoll}: $[[3]]}}" name="roll_npc-will" title="Jet de Caractéristique" data-i18n-title="attribute-roll-title"></button>
|
|
<span class="npc-creativity-lbl" data-i18n="CREativity-header">CRÉativité</span>
|
|
<input type="number" name="attr_npcCreativity" class="npc-creativity number" title="Score de CRÉativité" data-i18n-title="CREativity-title">
|
|
<button class="npc-creativity-dice dice item-left" type="roll" value="/w gm &{template:agone-chars} {{name=@{character_name}}} {{Attribute=@{creativityRoll} : [[[[1d10!]]+[[2*@{npcCreativity}]]+[[@{npcSoulBonus}]]+[[?{@{bonusPenaltyRoll}|0}]]]]}} {{Dice=@{rollRoll}: $[[0]]}} {{Attr=@{creativityRoll} x2 : $[[1]]}} {{AspBonus=@{soulBonusRoll} : $[[2]]}} {{BonPen=@{bonusPenaltyRoll}: $[[3]]}}" name="roll_npc-creativity" title="Jet de Caractéristique" data-i18n-title="attribute-roll-title"></button>
|
|
</div>
|
|
<div class="wood2 title">
|
|
<span data-i18n="SECONDARY-ATTRIBUTES-header">CARACTÉRISTIQUES SECONDAIRES</span>
|
|
<span data-i18n="fumble-header">Fumble</span>
|
|
<button class="dice menu-dice" type="roll" value="/w gm @{fumbleRollButton}" name="roll_npc-fumble" title="Fumble" data-i18n-title="fumble-title"></button>
|
|
</div>
|
|
<div class="npc-secondary-attributes grid">
|
|
<span data-i18n="HP-header">PdV</span>
|
|
<input type="number" name="attr_npcHP" class="number half-number item-right" title="Point(s) de Vie actuel(s)" data-i18n-title="current-hp-title">
|
|
<input type="number" name="attr_npcHP_max" class="number half-number item-left" title="Voir Livre des Règles" data-i18n-title="core-book-title">
|
|
<span data-i18n="FP-header">PH</span>
|
|
<input type="number" name="attr_npcFP" class="number half-number item-right" title="Point(s) d'Héroïsme actuel(s)" data-i18n-title="current-fp-title">
|
|
<input type="number" name="attr_npcFP_max" class="number half-number item-left" title="Score de Flamme x 2" data-i18n-title="max-fp-title" readonly>
|
|
<span data-i18n="SWT-header">SBG</span>
|
|
<input type="number" name="attr_npcSeriousWoundThreshold" class="number" title="PdV/3" data-i18n-title="serious-wound-threshold-title" readonly>
|
|
<span data-i18n="CWT-header">SBC</span>
|
|
<input type="number" name="attr_npcCriticalWoundThreshold" class="number" title="PdV/2" data-i18n-title="critical-wound-threshold-title" readonly>
|
|
<span data-i18n="DB-header">BD</span>
|
|
<input type="number" name="attr_npcDamageBonus" class="number" title="Voir Livre des Règles" data-i18n-title="core-book-title">
|
|
<span data-i18n="ASCendancy-header">EMPrise</span>
|
|
<input type="number" name="attr_npcAscendancy" class="number" title="INT, (INT+VOL)/2 ou VOL" data-i18n-title="asc-title">
|
|
<span data-i18n="MELee-header">MÊLée</span>
|
|
<input type="number" name="attr_npcMelee" class="pc-mel number" title="(FOR+AGIx2)/3" data-i18n-title="melee-title" readonly>
|
|
<span data-i18n="AIM-header">TIR</span>
|
|
<input type="number" name="attr_npcAim" class="pc-aim number" title="(PER+AGI)/2" data-i18n-title="aim-title" readonly>
|
|
<span data-i18n="ML-header">CM</span>
|
|
<input type="number" name="attr_npcMaxLoad" class="number" title="Voir Livre des Règles" data-i18n-title="core-book-title">
|
|
<span data-i18n="HL-header">DC</span>
|
|
<input type="number" name="attr_npcHalfLoad" class="number" title="CM/2" data-i18n-title="half-load-title" readonly>
|
|
<span data-i18n="DL-header">CQ</span>
|
|
<input type="number" name="attr_npcDailyLoad" class="number" title="CM/2" data-i18n-title="daily-load-title" readonly>
|
|
<span data-i18n="ART-header">ART</span>
|
|
<input type="number" name="attr_npcArt" class="number" title="(CHA+CRE)/2" data-i18n-title="art-title" readonly>
|
|
<span data-i18n="SW-header">BG</span>
|
|
<input type="number" name="attr_npcSeriousWound" class="pc-sw number" title="Blessure(s) Grave(s) encaissée(s)" data-i18n-title="serious-wound(s)-received-title" value="0">
|
|
<span data-i18n="penalty-header">Malus</span>
|
|
<input type="number" name="attr_npcSeriousWoundPenalty" class="pc-swp number" title="Malus dû à la ou les Blessure(s) Grave(s)" data-i18n-title="serious-wound(s)-penalty-title" readonly>
|
|
<span data-i18n="darkness-header">Ténèbre</span>
|
|
<input type="number" name="attr_npcDarkness" class="number" title="Points de Ténèbre" data-i18n-title="darkness-title">
|
|
<span data-i18n="blackness-header">Noirceur</span>
|
|
<input type="number" name="attr_npcBlackness" class="number" title="Points de Ténèbre / 10" data-i18n-title="darkness-title" readonly>
|
|
<span data-i18n="perfidy-header">Perfidie</span>
|
|
<input type="number" name="attr_npcPerfidy" class="number" title="Points de Perfidie" data-i18n-title="perfidy-title">
|
|
</div>
|
|
<div class="npc-skills-header wood3 title">
|
|
<span data-i18n="SKILLS-header">COMPÉTENCES</span>
|
|
<button class="dice menu-dice" type="roll" value="/w gm @{npcSkillsSelection}" name="roll_npc-skills-global" title="Jet de Compétence" name="roll_pc-skills" data-i18n-title="skill-roll-title"></button>
|
|
</div>
|
|
<div class="npc-skills grid">
|
|
<fieldset class="repeating_npc-skills">
|
|
<select name="attr_npcSkillName" class="select">
|
|
<option data-i18n="acrobatics-option">Acrobatie (Maraude)</option>
|
|
<option data-i18n="alchemy-option">Alchemie (Occulte)</option>
|
|
<option data-i18n="alphabets-option">Alphabets (Savoir)</option>
|
|
<option data-i18n="weapons-option">Armes (Épreuve)</option>
|
|
<option data-i18n="magical-arts-option">Arts Magiques (Occulte)</option>
|
|
<option data-i18n="astronomy-option">Astronomie (Savoir)</option>
|
|
<option data-i18n="athletics-option">Athlétisme (Épreuve)</option>
|
|
<option data-i18n="fast-talk-option">Baratin (Société)</option>
|
|
<option data-i18n="conceal-option">Camouflage (Maraude)</option>
|
|
<option data-i18n="hunt-option">Chasse (Maraude)</option>
|
|
<option data-i18n="surgery-option">Chirurgie (Savoir)</option>
|
|
<option data-i18n="dancer-lore-option">Conn. des Danseurs (Occulte)</option>
|
|
<option data-i18n="cipher-sorcery-option">Cryptogramme (Occulte)</option>
|
|
<option data-i18n="cults-option">Cultes (Savoir)</option>
|
|
<option data-i18n="disguise-option">Déguisement (Maraude)</option>
|
|
<option data-i18n="demonology-option">Démonologie (Occulte)</option>
|
|
<option data-i18n="diplomacy-option">Diplomatie (Société)</option>
|
|
<option data-i18n="stealth-option">Discrétion (Maraude)</option>
|
|
<option data-i18n="elementalism-option">Élémentalisme (Occulte)</option>
|
|
<option data-i18n="eloquence-option">Éloquence (Société)</option>
|
|
<option data-i18n="ride-option">Équitation (Épreuve)</option>
|
|
<option data-i18n="climb-option">Escalade (Épreuve)</option>
|
|
<option data-i18n="dodge-option">Esquive (Épreuve)</option>
|
|
<option data-i18n="etiquette-option">Étiquette (Société)</option>
|
|
<option data-i18n="search-option">Fouille (Maraude)</option>
|
|
<option data-i18n="geography-option">Géographie (Savoir)</option>
|
|
<option data-i18n="concord-option">Harmonie (Occulte)</option>
|
|
<option data-i18n="plant-lore-option">Herboristerie (Savoir)</option>
|
|
<option data-i18n="history-legends-option">Histoire & légendes (Savoir)</option>
|
|
<option data-i18n="stewardship-option">Intendance (Société)</option>
|
|
<option data-i18n="intrigue-option">Intrigue (Maraude)</option>
|
|
<option data-i18n="gambling-option">Jeu (Maraude)</option>
|
|
<option data-i18n="languages-option">Langues (Savoir)</option>
|
|
<option data-i18n="law-option">Lois (Savoir)</option>
|
|
<option data-i18n="medicine-option">Médecine (Savoir)</option>
|
|
<option data-i18n="music-option">Musique (Société)</option>
|
|
<option data-i18n="swim-option">Natation (Épreuve)</option>
|
|
<option data-i18n="navigation-option">Navigation (Savoir)</option>
|
|
<option data-i18n="trade-option">Négoce (Société)</option>
|
|
<option data-i18n="legerdemain-option">Passe-passe (Maraude)</option>
|
|
<option data-i18n="painting-option">Peinture (Société)</option>
|
|
<option data-i18n="poetry-option">Poésie (Société)</option>
|
|
<option data-i18n="poisons-option">Poisons (Maraude)</option>
|
|
<option data-i18n="first-aid-option">Premiers soins (Épreuve)</option>
|
|
<option data-i18n="resonance-option">Résonance (Occulte)</option>
|
|
<option data-i18n="seasons-option">Saisons (Savoir)</option>
|
|
<option data-i18n="craft-option">Savoir-faire (Société)</option>
|
|
<option data-i18n="sculpture-option">Sculpture (Société)</option>
|
|
<option data-i18n="locksmith-option">Serrurerie (Maraude)</option>
|
|
<option data-i18n="strategy-option">Stratégie (Savoir)</option>
|
|
<option data-i18n="survival-option">Survie (Épreuve)</option>
|
|
<option data-i18n="alertness-option">Vigilance (Épreuve)</option>
|
|
<option data-i18n="traditions-option">Us et coutumes (Société)</option>
|
|
<option data-i18n="beast-lore-option">Zoologie (Savoir)</option>
|
|
</select>
|
|
<input type="text" name="attr_npcSkillBranch" class="text" title="Domaine de la compétence (si applicable)" data-i18n-title="branch-title" placeholder="domaine" data-i18n-placeholder="branch-placeholder">
|
|
<input type="text" name="attr_npcSkillSpecialty" class="text" title="Spécialité de la compétence" data-i18n-title="specialty-title" placeholder="spécialité" data-i18n-placeholder="specialty-placeholder">
|
|
<input type="number" name="attr_npcSkillScore" class="number" title="Score de la compétence" data-i18n-title="skill-title">
|
|
<input type="hidden" name="attr_npcSkill">
|
|
<button class="dice" type="roll" value="/w gm &{template:agone-skills} {{name=@{character_name}}} {{Skill=@{npcSkill} : [[[[1d10!]]+[[@{npcSkillScore}]]+?{@{attributeRoll}|@{agilityRoll}, [[@{npcAgility}]]+[[@{npcBodyBonus}]]+[[?{@{bonusPenaltyRoll}&#124;@{npcArmorAGIPenalty}&#125;]]|@{strengthRoll}, [[@{npcStrength}]]+[[@{npcBodyBonus}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]|@{perceptionRoll}, [[@{npcPerception}]]+[[@{npcBodyBonus}]]+[[?{@{bonusPenaltyRoll}&#124;@{npcArmorPERPenalty}&#125;]]|@{staminaRoll}, [[@{npcStamina}]]+[[@{npcBodyBonus}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]|@{intelligenceRoll}, [[@{npcIntelligence}]]+[[@{npcSpiritBonus}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]|@{willRoll}, [[@{npcWill}]]+[[@{npcSpiritBonus}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]|@{charismaRoll}, [[@{npcCharisma}]]+[[@{npcSoulBonus}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]|@{creativityRoll}, [[@{npcCreativity}]]+[[@{npcSoulBonus}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]|@{meleeRoll}, [[@{npcMelee}]]+[[@{npcBodyBonus}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]|@{aimRoll}, [[@{npcAim}]]+[[@{npcBodyBonus}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]}}]]}} {{Dice=@{rollRoll}: $[[0]]}} {{Sk=@{skillRoll}: $[[1]]}} {{Attr=@{attributeRoll}: $[[2]]}} {{AspBonus=@{aspectBonusRoll} : $[[3]]}} {{BonPen=@{bonusPenaltyRoll}: $[[4]]}}" name="roll_npc-skill" title="Jet de Compétence" name="roll_pc-skills" data-i18n-title="skill-roll-title"></button>
|
|
</fieldset>
|
|
</div>
|
|
<div class="npc-weapons-header wood1 title">
|
|
<span data-i18n="WEAPONS-header">ARMES</span>
|
|
<span data-i18n="initiative-header">Initiative</span>
|
|
<input type="number" name="attr_npcInit" class="number border-white" title="AGI+PER(+Bonus de Corps)" data-i18n-title="initiative-title" readonly>
|
|
<button class="dice menu-dice" type="roll" value="/w gm &{template:agone-initiative} {{name=@{selected|character_name}}} {{Initiative=@{initiativeRoll}[[[[1d10]]+[[@{npcInit}]]+[[?{@{bonusPenaltyRoll}|0}]] &{tracker}]]}} {{Dice=@{rollRoll}: $[[0]]}} {{Base=@{baseRoll}: $[[1]]}} {{BonPen=@{bonusPenaltyRoll}: $[[2]]}}" name="roll_npc-init" title="Jet d'Initiative" data-i18n-title="initiative-roll-title"></button>
|
|
<span data-i18n="dodge-header">Esquive</span>
|
|
<input type="number" name="attr_npcDodgeTotal" class="number border-white" title="AGI+Esquive(+Bonus de Corps)" data-i18n-title="dodge-title" readonly>
|
|
<button class="dice menu-dice" type="roll" value="/w gm &{template:agone-dodge} {{name=@{character_name}}} {{Dodge=@{dodgeRoll} : [[[[1d10!]]+[[@{npcDodgeTotal}]]+[[?{@{bonusPenaltyRoll}|@{npcArmorAGIPenalty}}]]]]}} {{Dice=@{rollRoll}: $[[0]]}} {{Base=@{baseRoll}: $[[1]]}} {{BonPen=@{bonusPenaltyRoll}: $[[2]]}}" name="roll_npc-dodge" title="Jet d'Esquive" data-i18n-title="dodge-roll-title"></button>
|
|
<span data-i18n="natural-defense-header">Défense Naturelle</span>
|
|
<input type="number" name="attr_npcNaturalDefense" class="number half-number border-white" title="AGI(+Bonus de Corps)" data-i18n-title="natural-defense-title" readonly>
|
|
<button class="dice menu-dice" type="roll" value="/w gm &{template:agone-natural-defense} {{name=@{character_name}}} {{NaturalDefense=@{naturalDefenseRoll}: [[[[1d10!]]+[[@{npcNaturalDefense}]]+[[?{@{bonusPenaltyRoll}|@{npcArmorAGIPenalty}}]]]]}} {{Dice=@{rollRoll}: $[[0]]}} {{Base=@{baseRoll}: $[[1]]}} {{BonPen=@{bonusPenaltyRoll}: $[[2]]}}" name="roll_npc-natural-defense" title="Jet de Défense Naturelle" data-i18n-title="natural-defense-roll-title"></button>
|
|
<span data-i18n="distance-dodge-header">Distance</span>
|
|
<input type="number" name="attr_npcDistanceDodge" class="number half-number border-white" title="(AGI+Esquive)/2" data-i18n-title="distance-dodge-title" readonly>
|
|
<span data-i18n="armor-header">Armure</span>
|
|
<input type="number" name="attr_npcArmor" class="number half-number border-white" value="0" title="Armure" data-i18n-title="armor-title">
|
|
<input type="number" name="attr_npcArmorAGIPenalty" class="number half-number border-white" value="0" title="Malus de l'armure" data-i18n-title="armor-penalty-title">
|
|
<input type="number" name="attr_npcArmorPERPenalty" class="number half-number border-white" value="0" title="Malus de perception de l'armure" data-i18n-title="armor-perception-penalty-title">
|
|
|
|
</div>
|
|
<div class="npc-weapons grid title bold">
|
|
<span data-i18n="name-header">Nom</span>
|
|
<span data-i18n="skills-header">Compétence</span>
|
|
<span data-i18n="initiative-header">Initiative</span>
|
|
<span data-i18n="attack-header">Attaque</span>
|
|
<span data-i18n="defense-header">Défense</span>
|
|
<span data-i18n="damage-db-header">Dom.+BD</span>
|
|
<span data-i18n="type-header">Type</span>
|
|
<span data-i18n="style-header">Style</span>
|
|
<span data-i18n="SIZ-header">TAI</span>
|
|
</div>
|
|
<fieldset class="repeating_npc-weapons">
|
|
<div class="npc-weapons-rows grid">
|
|
<input type="text" name="attr_npcWeaponName" class="text max" title="Nom de l'arme" data-i18n-title="weapon-name-title">
|
|
<select name="attr_npcWeaponSkill" class="select max npcWeaponSkill" title="Compétence d'arme associée" data-i18n-title="weapon-skill-title">
|
|
<option value="@{npcWeaponSkill-1}" data-i18n="weapons1-option">Armes 1</option>
|
|
<option value="@{npcWeaponSkill-2}" data-i18n="weapons2-option">Armes 2</option>
|
|
<option value="@{npcWeaponSkill-3}" data-i18n="weapons3-option">Armes 3</option>
|
|
<option value="@{npcWeaponSkill-4}" data-i18n="weapons4-option">Armes 4</option>
|
|
<option value="@{npcWeaponSkill-5}" data-i18n="weapons5-option">Armes 5</option>
|
|
<option value="@{npcWeaponSkill-6}" data-i18n="weapons6-option">Armes 6</option>
|
|
<option value="@{npcWeaponSkill-7}" data-i18n="weapons7-option">Armes 7</option>
|
|
<option value="@{npcWeaponSkill-8}" data-i18n="weapons8-option">Armes 8</option>
|
|
<option value="@{npcWeaponSkill-9}" data-i18n="weapons9-option">Armes 9</option>
|
|
<option value="@{npcWeaponSkill-10}" data-i18n="weapons10-option">Armes 10</option>
|
|
</select>
|
|
<button class="dice" type="roll" value="/w gm ?{@{rollRoll}|Initiative, &{template:agone-initiative&#125; {{name=@{selected|character_name}&#125;&#125; {{weapon=(@{npcWeaponName})&#125;&#125; {{Initiative=@{initiativeRoll}[[[[1d10]]+[[@{npcWeaponInitTotal}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]] &{tracker&#125;]]&#125;&#125; {{Dice=@{rollRoll}: $[[0]]&#125;&#125; {{Base=@{baseRoll}: $[[1]]&#125;&#125; {{BonPen=@{bonusPenaltyRoll}: $[[2]]&#125;&#125;|@{attackRoll}, &{template:agone-attack&#125; {{name=@{character_name}&#125;&#125; {{weapon=(@{npcWeaponName})&#125;&#125; {{Attack=@{attackRoll} : [[[[1d10!]]+[[@{npcWeaponAttackTotal}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]]]&#125;&#125; {{Type=@{npcWeaponType}&#125;&#125; {{Dice=@{rollRoll}: $[[0]]&#125;&#125; {{Base=@{baseRoll}: $[[1]]&#125;&#125; {{BonPen=@{bonusPenaltyRoll}: $[[2]]&#125;&#125;|@{defenseRoll}, &{template:agone-defense&#125; {{name=@{selected|character_name}&#125;&#125; {{weapon=(@{npcWeaponName})&#125;&#125; {{Defense=@{defenseRoll} : [[[[1d10!]]+[[@{npcWeaponDefenseTotal}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]]]&#125;&#125; {{Dice=@{rollRoll}: $[[0]]&#125;&#125; {{Base=@{baseRoll}: $[[1]]&#125;&#125; {{BonPen=@{bonusPenaltyRoll}: $[[2]]&#125;&#125;|@{dodgeRoll}, &{template:agone-dodge&#125; {{name=@{character_name}&#125;&#125; {{Dodge=@{dodgeRoll}[[[[1d10!]]+[[@{npcDodgeTotal}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]]]&#125;&#125; {{Dice=@{rollRoll}: $[[0]]&#125;&#125; {{Base=@{baseRoll}: $[[1]]&#125;&#125; {{BonPen=@{bonusPenaltyRoll}: $[[2]]&#125;&#125;|@{naturalDefenseRoll}, &{template:agone-natural-defense&#125; {{name=@{character_name}&#125;&#125; {{NaturalDefense=@{naturalDefenseRoll}: [[[[1d10!]]+[[@{npcNaturalDefense}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]]]&#125;&#125; {{Dice=@{rollRoll}: $[[0]]&#125;&#125; {{Base=@{baseRoll}: $[[1]]&#125;&#125; {{BonPen=@{bonusPenaltyRoll}: $[[2]]&#125;&#125;}" name="roll_npc-fight" title="Jet de combat" data-i18n-title="fight-roll-title"></button>
|
|
<input type="number" name="attr_npcWeaponInit" class="number half-number item-right" title="Initiative de l'arme" data-i18n-title="weapon-initiative-title">
|
|
<input type="number" name="attr_npcWeaponInitTotal" class="number half-number" title="Initiative totale (PER+AGI+Bonus de l'arme[+Bonus de Corps])" data-i18n-title="total-initiative-title" readonly>
|
|
<button class="dice item-left" type="roll" value="/w gm &{template:agone-initiative} {{name=@{character_name}}} {{weapon=(@{npcWeaponName})}} {{Initiative=@{initiativeRoll}[[[[1d10]]+[[@{npcWeaponInitTotal}]]+[[?{@{bonusPenaltyRoll}|0}]] &{tracker}]]}} {{Dice=@{rollRoll}: $[[0]]}} {{Base=@{baseRoll}: $[[1]]}} {{BonPen=@{bonusPenaltyRoll}: $[[2]]}}" name="roll_npc-weapon-init" title="Jet d'Initiative" data-i18n-title="initiative-roll-title"></button>
|
|
<input type="number" name="attr_npcWeaponAttack" class="number half-number item-right" title="Attaque de l'arme" data-i18n-title="weapon-attack-title">
|
|
<input type="number" name="attr_npcWeaponAttackTotal" class="number half-number" title="Attaque totale ([MEL ou TIR]+Compétence+Bonus de l'arme[+Bonus de Corps])" data-i18n-title="total-attack-title" readonly>
|
|
<button class="dice item-left" type="roll" value="/w gm &{template:agone-attack} {{name=@{character_name}}} {{weapon=(@{npcWeaponName})}} {{Attack=@{attackRoll} : [[[[1d10!]]+[[@{npcWeaponAttackTotal}]]+[[?{@{bonusPenaltyRoll}|0}]]]]}} {{Type=@{npcWeaponType}}} {{Dice=@{rollRoll}: $[[0]]}} {{Base=@{baseRoll}: $[[1]]}} {{BonPen=@{bonusPenaltyRoll}: $[[2]]}}" name="roll_npc-attack" title="Jet d'attaque" data-i18n-title="attack-roll-title"></button>
|
|
<input type="number" name="attr_npcWeaponDefense" class="number half-number item-right" title="Parade de l'arme" data-i18n-title="wepaon-defense-title">
|
|
<input type="number" name="attr_npcWeaponDefenseTotal" class="number half-number" title="Parade totale (MEL+Compétence+Bonus de l'arme[+Bonus de Corps])" data-i18n-title="total-defense-title" readonly>
|
|
<button class="dice item-left" type="roll" value="/w gm &{template:agone-defense} {{name=@{character_name}}} {{weapon=(@{npcWeaponName})}} {{Defense=@{defenseRoll} : [[[[1d10!]]+[[@{npcWeaponDefenseTotal}]]+[[?{@{bonusPenaltyRoll}|0}]]]]}} {{Dice=@{rollRoll}: $[[0]]}} {{Base=@{baseRoll}: $[[1]]}} {{BonPen=@{bonusPenaltyRoll}: $[[2]]}}" name="roll_npc-defense" title="Jet de parade" data-i18n-title="defense-roll-title"></button>
|
|
<input type="number" name="attr_npcWeaponDamage" class="number half-number" title="Dommages de l'arme" data-i18n-title="weapon-damages-title">
|
|
<input type="number" name="attr_npcWeaponDDB" class="number half-number" title="Dommages de l'arme + BD" data-i18n-title="total-damages-title" readonly>
|
|
<select name="attr_npcWeaponType" class="select max" title="Type de dégâts de l'arme" data-i18n-title="weapon-damage-type-title">
|
|
<option value="@{impalingOption}" data-i18n="I-option">P</option>
|
|
<option value="@{slashingOption}" data-i18n="S-option">T</option>
|
|
<option value="@{impalingSlashingOption}" data-i18n="IS-option">PT</option>
|
|
<option value="@{contusiveOption}" data-i18n="C-option">C</option>
|
|
</select>
|
|
<select name="attr_npcWeaponStyle" class="select max" title="Style de combat, mêlée, jet ou trait" data-i18n-title="weapon-style-title">
|
|
<option value="melee" data-i18n="melee-option">Mêlée</option>
|
|
<option value="thrown" data-i18n="thrown-option">Jet</option>
|
|
<option value="missile" data-i18n="missile-option">Trait</option>
|
|
</select>
|
|
<input type="number" name="attr_npcWeaponSIZ" class="number half-number" title="Score de TAI de l'arme" data-i18n-title="weapon-SIZ-title">
|
|
</div>
|
|
</fieldset>
|
|
<div class="npc-stuff wood2 title">
|
|
<span data-i18n="STUFF-header">ÉQUIPEMENT</span>
|
|
</div>
|
|
<div>
|
|
<textarea name="attr_npcStuff" id="textarea" class="npc-text textarea expandable" placeholder="Équipement" data-i18n-placeholder="npc-stuff-placeholder"></textarea>
|
|
</div>
|
|
<div class="npc-spells wood3 title">
|
|
<span data-i18n="MAGICS-header">MAGIES</span>
|
|
<span>Init.</span>
|
|
<input type="number" name="attr_npcMagicInit" class="number half-number border-white" title="Initiative pour lancer un sort (Init+10)" data-i18n-title="magic-initiative-title" readonly>
|
|
<button class="dice menu-dice" type="roll" value="/w gm &{template:agone-initiative} {{name=@{selected|character_name}}} {{Initiative=@{initiativeRoll}[[[[1d10]]+[[@{npcMagicInit}]]+[[?{@{bonusPenaltyRoll}|0}]] &{tracker}]]}} {{Dice=@{rollRoll}: $[[0]]}} {{Base=@{baseRoll}: $[[1]]}} {{BonPen=@{bonusPenaltyRoll}: $[[2]]}}" name="roll_npc-magic-init" title="Jet d'Initiative" data-i18n-title="initiative-roll-title"></button>
|
|
<span data-i18n="ASCendancy-apt-header">Pot. d'EMPrise</span>
|
|
<input type="number" name="attr_npcAscendancyAptitude" class="number half-number border-white" title="Potentiel d'Emprise avec ce Danseur (EMP+[Résonance ou Connaissances des Danseurs]+Bonus d'Esprit+Bonus d'EMP du Danseur)" data-i18n-title="total-dancer-aptitude-title">
|
|
<button class="dice menu-dice" type="roll" value="/w gm &{template:agone-ascendancy} {{name=@{character_name}}} {{dancer=Danseur inconnu}} {{Ascendancy=@{ascendancyRoll} : [[[[1d10!]]+[[@{npcAscendancyAptitude}]]+[[?{@{bonusPenaltyRoll}|0}]]]]}} {{Dice=@{rollRoll}: $[[0]]}} {{Base=@{baseRoll}: $[[1]]}} {{BonPen=@{bonusPenaltyRoll}: $[[2]]}}" name="roll_npc-ascendancy" title="Jet d'Emprise" data-i18n-title="ascendancy-roll-title"></button>
|
|
<span data-i18n="intuitive-ASC-aptitude-header">Impro EMP</span>
|
|
<input type="number" name="attr_npcASCImproAptitude" class="number half-number border-white" title="Potentiel d'improvisation en Emprise avec ce Danseur (CRÉ+[Résonance ou Empathie du Danseur]+Bonus d'Esprit)" data-i18n-title="total-dancer-intuitive-aptitude-title">
|
|
<button class="dice menu-dice" type="roll" value="/w gm &{template:agone-ascendancy-intuitive} {{name=@{character_name}}} {{dancer=Danseur inconnu}} {{Ascendancy (intuitive)=@{intuitiveAscendancyRoll} : [[[[1d10!]]+[[@{npcASCImproAptitude}]]+[[?{@{bonusPenaltyRoll}|0}]]]]}} {{Dice=@{rollRoll}: $[[0]]}} {{Base=@{baseRoll}: $[[1]]}} {{BonPen=@{bonusPenaltyRoll}: $[[2]]}}" name="roll_npc-ascendancy-intuitive" title="Jet d'Emprise" data-i18n-title="ascendancy-roll-title"></button>
|
|
<span data-i18n="ART-apt-header">Pot. d'ART</span>
|
|
<input type="number" name="attr_npcArtAptitude" class="number half-number border-white" title="Potentiel d'Art magique (ART+[Art Magique ou Art profane]+Bonus d'Âme)" data-i18n-title="magical-art-aptitude-title">
|
|
<button class="dice menu-dice" type="roll" value="/w gm &{template:agone-art} {{name=@{character_name}}} {{Art=Art : [[[[1d10!]]+[[@{npcArtAptitude}]]+[[?{@{bonusPenaltyRoll}|0}]]]]}} {{Dice=@{rollRoll}: $[[0]]}} {{Base=@{baseRoll}: $[[1]]}} {{BonPen=@{bonusPenaltyRoll}: $[[2]]}}" name="roll_npc-art" title="Jet d'Art Magique" data-i18n-title="magical-arts-roll-title"></button>
|
|
<span data-i18n="intuitive-ART-aptitude-header">Impro d'ART</span>
|
|
<input type="number" name="attr_npcArtImproAptitude" class="number half-number border-white" title="Potentiel d'improvisation en Art magique (CRÉ+[Art Magique ou Art profane]+Bonus d'Âme)" data-i18n-title="magical-art-intuitive-aptitude-title">
|
|
<button class="dice menu-dice" type="roll" value="/w gm &{template:agone-art-intuitive} {{name=@{character_name}}} {{Art (intuitive)=@{npcIntuitiveArtRoll} : [[[[1d10!]]+[[@{npcArtImproAptitude}]]+[[?{@{bonusPenaltyRoll}|0}]]]]}} {{Dice=@{rollRoll}: $[[0]]}} {{Base=@{baseRoll}: $[[1]]}} {{BonPen=@{bonusPenaltyRoll}: $[[2]]}}" name="roll_npc-art-intuitive" title="Jet d'Art Magique" data-i18n-title="magical-arts-roll-title"></button>
|
|
</div>
|
|
<div>
|
|
<textarea name="attr_npcSpells" id="textarea" class="npc-text textarea expandable" placeholder="Sorts et autres techniques" data-i18n-placeholder="npc-other-moves"></textarea>
|
|
</div>
|
|
</div>
|
|
|
|
<rolltemplate class="sheet-rolltemplate-agone-generic">
|
|
<div class="sheet-template-container">
|
|
<div class="sheet-template-header">{{name}}</div>
|
|
<div class="sheet-template-row">
|
|
<span>{{Base}}</span><br>
|
|
<span>{{BonPen}}</span><br>
|
|
<span>{{Dice}}</span><br>
|
|
<span>{{#rollWasCrit() Dice}}<img class="sheet-template-explode">{{/rollWasCrit() Dice}}{{#rollWasFumble() Dice}}<span class="sheet-template-implode">[Fumble](~{{name}}|pc-fumble)</span>{{/rollWasFumble() Dice}}</span>
|
|
</div>
|
|
<div class="sheet-template-header">{{Roll}}</div>
|
|
</div>
|
|
</rolltemplate>
|
|
<rolltemplate class="sheet-rolltemplate-agone-chars">
|
|
<div class="sheet-template-container">
|
|
<div class="sheet-template-header">{{name}}</div>
|
|
<div class="sheet-template-row">
|
|
<span>{{Attr}}</span><br>
|
|
<span>{{AspBonus}}</span><br>
|
|
<span>{{BonPen}}</span><br>
|
|
<span>{{Dice}}</span><br>
|
|
<span>{{#rollWasCrit() Dice}}<span class="sheet-template-explode"></span>{{/rollWasCrit() Dice}}{{#rollWasFumble() Dice}}<span class="sheet-template-implode">[Fumble](~{{name}}|pc-fumble)</span>{{/rollWasFumble() Dice}}</span>
|
|
</div>
|
|
<div class="sheet-template-header">{{Attribute}}</div>
|
|
</div>
|
|
</rolltemplate>
|
|
<rolltemplate class="sheet-rolltemplate-agone-fumble">
|
|
<div class="sheet-template-container">
|
|
<div class="sheet-template-header">{{name}}</div>
|
|
<div class="sheet-template-row">
|
|
<span>{{Roll}}</span><br>
|
|
<span>{{Dice}}</span><br>
|
|
<span>{{#rollWasCrit() Dice}}<span class="sheet-template-explode"></span>{{/rollWasCrit() Dice}}{{#rollWasFumble() Dice}}<span class="sheet-template-implode">[Fumble](~{{name}}|pc-fumble)</span>{{/rollWasFumble() Dice}}</span>
|
|
</div>
|
|
<div class="sheet-template-header">{{Fumble}}</div>
|
|
</div>
|
|
</rolltemplate>
|
|
<rolltemplate class="sheet-rolltemplate-agone-skills">
|
|
<div class="sheet-template-container">
|
|
<div class="sheet-template-header">{{name}}</div>
|
|
<div class="sheet-template-row">
|
|
<span>{{Attr}}</span><br>
|
|
<span>{{Sk}}</span><br>
|
|
<span>{{AspBonus}}</span><br>
|
|
<span>{{BonPen}}</span><br>
|
|
<span>{{Dice}}</span><br>
|
|
<span>{{#rollWasCrit() Dice}}<span class="sheet-template-explode"></span>{{/rollWasCrit() Dice}}{{#rollWasFumble() Dice}}<span class="sheet-template-implode">[Fumble](~{{name}}|pc-fumble)</span>{{/rollWasFumble() Dice}}</span>
|
|
</div>
|
|
<div class="sheet-template-header">{{Skill}}</div>
|
|
</div>
|
|
</rolltemplate>
|
|
<rolltemplate class="sheet-rolltemplate-agone-dodge">
|
|
<div class="sheet-template-container">
|
|
<div class="sheet-template-header">{{name}}</div>
|
|
<div class="sheet-template-row">
|
|
<span>{{Base}}</span><br>
|
|
<span>{{BonPen}}</span><br>
|
|
<span>{{Dice}}</span><br>
|
|
<span>{{#rollWasCrit() Dice}}<span class="sheet-template-explode"></span>{{/rollWasCrit() Dice}}{{#rollWasFumble() Dice}}<span class="sheet-template-implode">[Fumble](~{{name}}|pc-fumble)</span>{{/rollWasFumble() Dice}}</span>
|
|
</div>
|
|
<div class="sheet-template-header">{{Dodge}}</div>
|
|
</div>
|
|
</rolltemplate>
|
|
<rolltemplate class="sheet-rolltemplate-agone-natural-defense">
|
|
<div class="sheet-template-container">
|
|
<div class="sheet-template-header">{{name}}</div>
|
|
<div class="sheet-template-row">
|
|
<span>{{Base}}</span><br>
|
|
<span>{{BonPen}}</span><br>
|
|
<span>{{Dice}}</span><br>
|
|
<span>{{#rollWasCrit() Dice}}<span class="sheet-template-explode"></span>{{/rollWasCrit() Dice}}{{#rollWasFumble() Dice}}<span class="sheet-template-implode">[Fumble](~{{name}}|pc-fumble)</span>{{/rollWasFumble() Dice}}</span>
|
|
</div>
|
|
<div class="sheet-template-header">{{NaturalDefense}}</div>
|
|
</div>
|
|
</rolltemplate>
|
|
<rolltemplate class="sheet-rolltemplate-agone-initiative">
|
|
<div class="sheet-template-container">
|
|
<div class="sheet-template-header">{{name}} {{weapon}}</div>
|
|
<div class="sheet-template-row">
|
|
<span>{{Base}}</span><br>
|
|
<span>{{BonPen}}</span><br>
|
|
<span>{{Dice}}</span><br>
|
|
<span>{{#rollWasCrit() Dice}}<span class="sheet-template-explode"></span>{{/rollWasCrit() Dice}}{{#rollWasFumble() Dice}}<span class="sheet-template-implode">[Fumble](~{{name}}|pc-fumble)</span>{{/rollWasFumble() Dice}}</span>
|
|
</div>
|
|
<div class="sheet-template-header">{{Initiative}}</div>
|
|
</div>
|
|
</rolltemplate>
|
|
<rolltemplate class="sheet-rolltemplate-agone-attack">
|
|
<div class="sheet-template-container">
|
|
<div class="sheet-template-header">{{name}} {{weapon}}</div>
|
|
<div class="sheet-template-row">
|
|
<span>Type : {{Type}}</span><br>
|
|
<span>{{Base}}</span><br>
|
|
<span>{{BonPen}}</span><br>
|
|
<span>{{Dice}}</span><br>
|
|
<span>{{#rollWasCrit() Dice}}<span class="sheet-template-explode"></span>{{/rollWasCrit() Dice}}{{#rollWasFumble() Dice}}<span class="sheet-template-implode">[Fumble](~{{name}}|pc-fumble)</span>{{/rollWasFumble() Dice}}</span>
|
|
</div>
|
|
<div class="sheet-template-header">{{Attack}}</div>
|
|
</div>
|
|
</rolltemplate>
|
|
<rolltemplate class="sheet-rolltemplate-agone-defense">
|
|
<div class="sheet-template-container">
|
|
<div class="sheet-template-header">{{name}} {{weapon}}</div>
|
|
<div class="sheet-template-row">
|
|
<span>{{Base}}</span><br>
|
|
<span>{{BonPen}}</span><br>
|
|
<span>{{Dice}}</span><br>
|
|
<span>{{#rollWasCrit() Dice}}<span class="sheet-template-explode"></span>{{/rollWasCrit() Dice}}{{#rollWasFumble() Dice}}<span class="sheet-template-implode">[Fumble](~{{name}}|pc-fumble)</span>{{/rollWasFumble() Dice}}</span>
|
|
</div>
|
|
<div class="sheet-template-header">{{Defense}}</div>
|
|
</div>
|
|
</rolltemplate>
|
|
<rolltemplate class="sheet-rolltemplate-agone-ascendancy">
|
|
<div class="sheet-template-container">
|
|
<div class="sheet-template-header">{{name}} ({{dancer}})</div>
|
|
<div class="sheet-template-row">
|
|
<span>{{Base}}</span><br>
|
|
<span>{{BonPen}}</span><br>
|
|
<span>{{Dice}}</span><br>
|
|
<span>{{#rollWasCrit() Dice}}<span class="sheet-template-explode"></span>{{/rollWasCrit() Dice}}{{#rollWasFumble() Dice}}<span class="sheet-template-implode">[Fumble](~{{name}}|pc-fumble)</span>{{/rollWasFumble() Dice}}</span>
|
|
</div>
|
|
<div class="sheet-template-header">{{Ascendancy}}</div>
|
|
</div>
|
|
</rolltemplate>
|
|
<rolltemplate class="sheet-rolltemplate-agone-ascendancy-intuitive">
|
|
<div class="sheet-template-container">
|
|
<div class="sheet-template-header">{{name}} ({{dancer}})</div>
|
|
<div class="sheet-template-row">
|
|
<span>{{Base}}</span><br>
|
|
<span>{{BonPen}}</span><br>
|
|
<span>{{Dice}}</span><br>
|
|
<span>{{#rollWasCrit() Dice}}<span class="sheet-template-explode"></span>{{/rollWasCrit() Dice}}{{#rollWasFumble() Dice}}<span class="sheet-template-implode">[Fumble](~{{name}}|pc-fumble)</span>{{/rollWasFumble() Dice}}</span>
|
|
</div>
|
|
<div class="sheet-template-header">{{Ascendancy (intuitive)}}</div>
|
|
</div>
|
|
</rolltemplate>
|
|
<rolltemplate class="sheet-rolltemplate-agone-art">
|
|
<div class="sheet-template-container">
|
|
<div class="sheet-template-header">{{name}}</div>
|
|
<div class="sheet-template-row">
|
|
<span>{{Base}}</span><br>
|
|
<span>{{BonPen}}</span><br>
|
|
<span>{{Dice}}</span><br>
|
|
<span>{{#rollWasCrit() Dice}}<span class="sheet-template-explode"></span>{{/rollWasCrit() Dice}}{{#rollWasFumble() Dice}}<span class="sheet-template-implode">[Fumble](~{{name}}|pc-fumble)</span>{{/rollWasFumble() Dice}}</span>
|
|
</div>
|
|
<div class="sheet-template-header">{{Art}}</div>
|
|
</div>
|
|
</rolltemplate>
|
|
<rolltemplate class="sheet-rolltemplate-agone-art-intuitive">
|
|
<div class="sheet-template-container">
|
|
<div class="sheet-template-header">{{name}}</div>
|
|
<div class="sheet-template-row">
|
|
<span>{{Base}}</span><br>
|
|
<span>{{BonPen}}</span><br>
|
|
<span>{{Dice}}</span><br>
|
|
<span>{{#rollWasCrit() Dice}}<span class="sheet-template-explode"></span>{{/rollWasCrit() Dice}}{{#rollWasFumble() Dice}}<span class="sheet-template-implode">[Fumble](~{{name}}|pc-fumble)</span>{{/rollWasFumble() Dice}}</span>
|
|
</div>
|
|
<div class="sheet-template-header">{{Art (intuitive)}}</div>
|
|
</div>
|
|
</rolltemplate>
|
|
<rolltemplate class="sheet-rolltemplate-agone-invoking">
|
|
<div class="sheet-template-container">
|
|
<div class="sheet-template-header">{{name}}</div>
|
|
<div class="sheet-template-row">
|
|
<span>{{Base}}</span><br>
|
|
<span>{{BonPen}}</span><br>
|
|
<span>{{Dice}}</span><br>
|
|
<span>{{#rollWasCrit() Dice}}<span class="sheet-template-explode"></span>{{/rollWasCrit() Dice}}{{#rollWasFumble() Dice}}<span class="sheet-template-implode">[Fumble](~{{name}}|pc-fumble)</span>{{/rollWasFumble() Dice}}</span>
|
|
</div>
|
|
<div class="sheet-template-header">{{Invoking}}</div>
|
|
</div>
|
|
</rolltemplate>
|
|
|
|
<script type="text/worker">
|
|
// Calc
|
|
const parseV = function(value, stat, type='int') {
|
|
if (type === 'float') return parseFloat(value[stat]).toFixed(2) || 0;
|
|
else if (type === 'str') return value[stat];
|
|
else if (type === 'skill') return parseInt(value[stat], 10) || -3;
|
|
else return parseInt(value[stat], 10) || 0;
|
|
}
|
|
const parseSub = function(value) {
|
|
if (value === 'pc-attributes') return 'pcAttributesCheck';
|
|
else if (value === 'pc-secondary-attributes') return 'pcSecondaryAttributesCheck';
|
|
else if (value === 'pc-skills') return 'pcSkillsCheck';
|
|
else if (value === 'pc-assets-faults') return 'pcAssetsFaultsCheck';
|
|
else if (value === 'pc-darkness-perfidy') return 'pcDarknessPerfidyCheck';
|
|
else if (value === 'pc-flame-season-currency') return 'pcFlameSeasonCurrencyCheck';
|
|
else if (value === 'pc-stuff') return 'pcStuffCheck';
|
|
else if (value === 'pc-combat') return 'pcCombatCheck';
|
|
else if (value === 'pc-weapons') return 'pcWeaponsCheck';
|
|
else if (value === 'pc-ascendancy') return 'pcAscendancyCheck';
|
|
else if (value === 'pc-art') return 'pcArtCheck';
|
|
else if (value === 'pc-spells') return 'pcSpellsCheck';
|
|
else if (value === 'pc-invoking') return 'pcInvokingCheck';
|
|
else if (value === 'pc-notes') return 'pcNotesCheck';
|
|
}
|
|
const bodyBonus = function(body, darkBody, damned) {
|
|
if (damned) return darkBody-body;
|
|
else return body-darkBody;
|
|
}
|
|
const spiritBonus = function(spirit, darkSpirit, damned) {
|
|
if (damned) return darkSpirit-spirit;
|
|
else return spirit-darkSpirit;
|
|
}
|
|
const soulBonus = function(soul, darkSoul, damned) {
|
|
if (damned) return darkSoul-soul;
|
|
else return soul-darkSoul;
|
|
}
|
|
const flame = function(body, spirit, soul) {
|
|
if (body <= spirit && body <= soul) return body;
|
|
else if (spirit <= body && spirit <= soul) return spirit;
|
|
else return soul;
|
|
}
|
|
const darkFlame = function(darkBody, darkSpirit, darkSoul) {
|
|
if (darkBody <= darkSpirit && darkBody <= darkSoul) return darkBody;
|
|
else if (darkSpirit <= darkBody && darkSpirit <= darkSoul) return darkSpirit;
|
|
else return darkSoul;
|
|
}
|
|
const damned = function(flame, darkFlame) {
|
|
if (flame < darkFlame) return true;
|
|
else return false;
|
|
}
|
|
const fortunePoints = function(flame, darkFlame, damned) {
|
|
if (damned) return 2*darkFlame;
|
|
else return 2*flame;
|
|
}
|
|
const melee = function(agility, strength) { return Math.floor((2*agility+strength)/3); };
|
|
const aim = function(agility, perception) { return Math.floor((agility+perception)/2); };
|
|
const init = function(agility, perception, bodyBonus) { return agility+perception+bodyBonus; };
|
|
const swt = function(hp) { return Math.floor(hp/3); };
|
|
const cwt = function(hp) { return Math.floor(hp/2); };
|
|
const halfLoad = function(load) { return Math.floor(load/2); };
|
|
const dailyLoad = function(load) { return Math.floor(load/4); };
|
|
const art = function(charisma, creativity) { return Math.floor((charisma+creativity)/2); };
|
|
const blackness = function(darkness) { return Math.floor(darkness/10); };
|
|
const naturalDefense = function(agility, bodyBonus) { return agility+bodyBonus; };
|
|
const weaponInit = function(weapon, agility, perception, bodyBonus) { return weapon+agility+perception+bodyBonus; };
|
|
const weaponScore = function(skill, style, aimOrNot, melee, aim, weapon, bodyBonus) {
|
|
let fs = 0;
|
|
if (aimOrNot < 0 || style === 'thrown') fs = aim;
|
|
else fs = melee;
|
|
return skill+fs+weapon+bodyBonus;
|
|
}
|
|
const weaponDDB = function(weapon, aimOrNot, damage) { return weapon+aimOrNot+damage; };
|
|
const swp = function(wounds) {
|
|
if (wounds <= 0) return 0;
|
|
else if (wounds === 1) return -2;
|
|
else if (wounds === 2) return -6;
|
|
else return -12;
|
|
}
|
|
const aimOrNot = function(style, damage) {
|
|
if (style === 'missile') return -damage;
|
|
else return 0;
|
|
}
|
|
const style = function(style, melee, aim) {
|
|
if (style === 'melee') return melee;
|
|
else return aim;
|
|
}
|
|
const itemLoad = function(quantity, weight) { return (quantity*weight).toFixed(2); };
|
|
const loadPenalty = function(load, maxLoad) {
|
|
let h = Math.floor(maxLoad/2);
|
|
let d = Math.floor(maxLoad/4);
|
|
if (load < d) return 0;
|
|
else if (load >= d && load < h) return -2;
|
|
else if (load >= h && load < maxLoad) return -4;
|
|
else return -8;
|
|
}
|
|
const stamina = function(density) { return Math.floor(density/5); };
|
|
const dodge = function(agility, dodge, bodyBonus) { return agility+dodge+bodyBonus; };
|
|
const distance = function(agility, dodge) { return Math.floor((agility+dodge)/2); };
|
|
|
|
// Translation
|
|
on('sheet:opened', function() {
|
|
setAttrs({'genericRoll': getTranslationByKey("generic-roll")});
|
|
setAttrs({'baseRoll': getTranslationByKey("base-roll")});
|
|
setAttrs({'bonusPenaltyRoll': getTranslationByKey("bonus-penalty-roll")});
|
|
setAttrs({'attributeRoll': getTranslationByKey("attribute-roll")});
|
|
setAttrs({'agilityRoll': getTranslationByKey("agility-roll")});
|
|
setAttrs({'charismaRoll': getTranslationByKey("charisma-roll")});
|
|
setAttrs({'creativityRoll': getTranslationByKey("creativity-roll")});
|
|
setAttrs({'strengthRoll': getTranslationByKey("strength-roll")});
|
|
setAttrs({'intelligenceRoll': getTranslationByKey("intelligence-roll")});
|
|
setAttrs({'perceptionRoll': getTranslationByKey("perception-roll")});
|
|
setAttrs({'staminaRoll': getTranslationByKey("stamina-roll")});
|
|
setAttrs({'willRoll': getTranslationByKey("will-roll")});
|
|
setAttrs({'meleeRoll': getTranslationByKey("melee-roll")});
|
|
setAttrs({'aimRoll': getTranslationByKey("aim-roll")});
|
|
setAttrs({'lastRoll': getTranslationByKey("last-roll")});
|
|
setAttrs({'fumbleRoll': getTranslationByKey("fumble-roll")});
|
|
setAttrs({'skillRoll': getTranslationByKey("skill-roll")});
|
|
setAttrs({'unknownRoll': getTranslationByKey("unknown-roll")});
|
|
setAttrs({'skillNameRoll': getTranslationByKey("skill-name-roll")});
|
|
setAttrs({'initiativeRoll': getTranslationByKey("initiative-roll")});
|
|
setAttrs({'dodgeRoll': getTranslationByKey("dodge-roll")});
|
|
setAttrs({'naturalDefenseRoll': getTranslationByKey("natural-defense-roll")});
|
|
setAttrs({'attackRoll': getTranslationByKey("attack-roll")});
|
|
setAttrs({'defenseRoll': getTranslationByKey("defense-roll")});
|
|
setAttrs({'rollRoll': getTranslationByKey("roll-roll")});
|
|
setAttrs({'dancerRoll': getTranslationByKey("dancer-roll")});
|
|
setAttrs({'ascendancyRoll': getTranslationByKey("ascendancy-roll")});
|
|
setAttrs({'intuitiveAscendancyRoll': getTranslationByKey("intuitive-ascendancy-roll")});
|
|
setAttrs({'intuitiveRoll': getTranslationByKey("intuitive-roll")});
|
|
setAttrs({'npcIntuitiveArtRoll': getTranslationByKey("npc-intuitive-art-roll")});
|
|
setAttrs({'invokingRoll': getTranslationByKey("invoking-roll")});
|
|
setAttrs({'impalingOption': getTranslationByKey("impaling-option")});
|
|
setAttrs({'slashingOption': getTranslationByKey("slashing-option")});
|
|
setAttrs({'impalingSlashingOption': getTranslationByKey("impaling-slashing-option")});
|
|
setAttrs({'contusiveOption': getTranslationByKey("contusive-option")});
|
|
setAttrs({'bodyBonusRoll': getTranslationByKey("body-bonus-roll")});
|
|
setAttrs({'soulBonusRoll': getTranslationByKey("soul-bonus-roll")});
|
|
setAttrs({'spiritBonusRoll': getTranslationByKey("spirit-bonus-roll")});
|
|
setAttrs({'aspectBonusRoll': getTranslationByKey("aspect-bonus-roll")});
|
|
});
|
|
|
|
// Menu
|
|
$20('.menu .tab-menu').on('click', (e) => {
|
|
let tab = e.htmlAttributes['data-tab'];
|
|
$20('div[data-tab]').removeClass('active');
|
|
$20(`div[data-tab=${tab}]`).addClass('active');
|
|
setAttrs({'Menu': tab});
|
|
if (tab === 'pc') {
|
|
getAttrs(['pcAttributesCheck', 'pcSecondaryAttributesCheck', 'pcSkillsCheck', 'pcAssetsFaultsCheck', 'pcDarknessPerfidyCheck', 'pcFlameSeasonCurrencyCheck', 'pcStuffCheck', 'pcCombatCheck', 'pcWeaponsCheck', 'pcAscendancyCheck', 'pcArtCheck', 'pcSpellsCheck', 'pcInvokingCheck', 'pcNotesCheck'], function(v) {
|
|
if (parseV(v, 'pcAttributesCheck') === 1) {
|
|
$20('button[data-tab=pc-attributes]').addClass('active');
|
|
$20('div[data-tab=pc-attributes]').addClass('active');
|
|
}
|
|
if (parseV(v, 'pcSecondaryAttributesCheck') === 1) {
|
|
$20('button[data-tab=pc-secondary-attributes]').addClass('active');
|
|
$20('div[data-tab=pc-secondary-attributes]').addClass('active');
|
|
}
|
|
if (parseV(v, 'pcSkillsCheck') === 1) {
|
|
$20('button[data-tab=pc-skills]').addClass('active');
|
|
$20('div[data-tab=pc-skills]').addClass('active');
|
|
}
|
|
if (parseV(v, 'pcAssetsFaultsCheck') === 1) {
|
|
$20('button[data-tab=pc-assets-faults]').addClass('active');
|
|
$20('div[data-tab=pc-assets-faults]').addClass('active');
|
|
}
|
|
if (parseV(v, 'pcDarknessPerfidyCheck') === 1) {
|
|
$20('button[data-tab=pc-darkness-perfidy]').addClass('active');
|
|
$20('div[data-tab=pc-darkness-perfidy]').addClass('active');
|
|
}
|
|
if (parseV(v, 'pcFlameSeasonCurrencyCheck') === 1) {
|
|
$20('button[data-tab=pc-flame-season-currency]').addClass('active');
|
|
$20('div[data-tab=pc-flame-season-currency]').addClass('active');
|
|
}
|
|
if (parseV(v, 'pcStuffCheck') === 1) {
|
|
$20('button[data-tab=pc-stuff]').addClass('active');
|
|
$20('div[data-tab=pc-stuff]').addClass('active');
|
|
}
|
|
if (parseV(v, 'pcCombatCheck') === 1) {
|
|
$20('button[data-tab=pc-combat]').addClass('active');
|
|
$20('div[data-tab=pc-combat]').addClass('active');
|
|
}
|
|
if (parseV(v, 'pcWeaponsCheck') === 1) {
|
|
$20('button[data-tab=pc-weapons]').addClass('active');
|
|
$20('div[data-tab=pc-weapons]').addClass('active');
|
|
}
|
|
if (parseV(v, 'pcAscendancyCheck') === 1) {
|
|
$20('button[data-tab=pc-ascendancy]').addClass('active');
|
|
$20('div[data-tab=pc-ascendancy]').addClass('active');
|
|
}
|
|
if (parseV(v, 'pcArtCheck') === 1) {
|
|
$20('button[data-tab=pc-art]').addClass('active');
|
|
$20('div[data-tab=pc-art]').addClass('active');
|
|
}
|
|
if (parseV(v, 'pcSpellsCheck') === 1) {
|
|
$20('button[data-tab=pc-spells]').addClass('active');
|
|
$20('div[data-tab=pc-spells]').addClass('active');
|
|
}
|
|
if (parseV(v, 'pcInvokingCheck') === 1) {
|
|
$20('button[data-tab=pc-invoking]').addClass('active');
|
|
$20('div[data-tab=pc-invoking]').addClass('active');
|
|
}
|
|
if (parseV(v, 'pcNotesCheck') === 1) {
|
|
$20('button[data-tab=pc-notes]').addClass('active');
|
|
$20('div[data-tab=pc-notes]').addClass('active');
|
|
}
|
|
});
|
|
}
|
|
if (tab === 'summary') {
|
|
getAttrs(['pcWeapon1', 'pcWeapon2', 'pcWeapon3', 'pcWeapon4', 'pcWeapon5', 'pcWeapon6', 'pcWeapon7', 'pcWeapon8', 'pcWeapon9', 'pcWeapon10'], function(v) {
|
|
let regex = new RegExp('^'+getTranslationByKey('weapons-option').split(' ')[0]+'.*$', '');
|
|
for (var i = 1; i < 11; i++) {
|
|
if (!regex.test(parseV(v, 'pcWeapon'+i, 'str'))) {
|
|
$20(`span[data-summary=pcWeapon${i}]`).addClass('active');
|
|
$20(`button[data-summary=pcWeapon${i}]`).addClass('active');
|
|
} else {
|
|
$20(`span[data-summary=pcWeapon${i}]`).removeClass('active');
|
|
$20(`button[data-summary=pcWeapon${i}]`).removeClass('active');
|
|
}
|
|
}
|
|
});
|
|
}
|
|
});
|
|
$20('.pc-sub-menu').on('click', (e) => {
|
|
let tab = e.htmlAttributes['data-tab'];
|
|
$20(`button[data-tab=${tab}]`).toggleClass('active');
|
|
$20(`div[data-tab=${tab}]`).toggleClass('active');
|
|
let a = parseSub(tab);
|
|
getAttrs([a], function(v) {
|
|
if (parseV(v, a) === 0) var s = 1;
|
|
else var s = 0;
|
|
setAttrs({[`${a}`]: s});
|
|
});
|
|
});
|
|
|
|
// Global
|
|
on('sheet:opened', function() {
|
|
// PC
|
|
let pcWeaponsOptions = [];
|
|
let z = 1;
|
|
let regex = new RegExp('^'+getTranslationByKey('weapons-option').split(' ')[0]+'.*$', '');
|
|
getSectionIDs('repeating_pc-skills', function(r) {
|
|
if (r.length > 0) {
|
|
_.each(r, function(id, i) {
|
|
getAttrs(['repeating_pc-skills_'+id+'_pcSkillName', 'repeating_pc-skills_'+id+'_pcSkillBranch'], function(v) {
|
|
if (regex.test(v['repeating_pc-skills_'+id+'_pcSkillName'])) {
|
|
pcWeaponsOptions.push({label: v['repeating_pc-skills_'+id+'_pcSkillBranch'] || getTranslationByKey('weapons'+z+'-option'), value: '@{pcWeaponSkill-'+z+'}'});
|
|
z += 1;
|
|
}
|
|
if (i == r.length - 1) {
|
|
pcWeaponsOptions.push({label: getTranslationByKey('unknown-roll'), value: '@{pcWeaponSkill-'+z+'}'});
|
|
populateListOptions({
|
|
elemSelector: '.pcWeaponSkill',
|
|
optionsArray: pcWeaponsOptions
|
|
});
|
|
}
|
|
});
|
|
});
|
|
} else {
|
|
setAttrs({'pcWeaponSkill-1': -3});
|
|
pcWeaponsOptions.push({label: getTranslationByKey('unknown-roll'), value: '@{pcWeaponSkill-1}'});
|
|
populateListOptions({
|
|
elemSelector: '.pcWeaponSkill',
|
|
optionsArray: pcWeaponsOptions
|
|
});
|
|
}
|
|
});
|
|
dancersOptions = [{label: 'N/A', value: 'Dancer-0'}];
|
|
getSectionIDs('repeating_pc-ascendancies', function(r) {
|
|
if (r.length > 0) {
|
|
_.each(r, function(id, i) {
|
|
getAttrs(['repeating_pc-ascendancies_'+id+'_pcDancer'], function(v) {
|
|
dancersOptions.push({label: v['repeating_pc-ascendancies_'+id+'_pcDancer'], value: 'Dancer-'+parseInt(i+1)});
|
|
if (i == r.length -1) {
|
|
populateListOptions({
|
|
elemSelector: '.pcSpellDancer',
|
|
optionsArray: dancersOptions
|
|
});
|
|
}
|
|
});
|
|
});
|
|
}
|
|
});
|
|
|
|
// Companion
|
|
companionWeaponsOptions = [];
|
|
z = 1;
|
|
getSectionIDs('repeating_companion-skills', function(r) {
|
|
if (r.length > 0) {
|
|
_.each(r, function(id, i) {
|
|
getAttrs(['repeating_companion-skills_'+id+'_companionSkillName', 'repeating_companion-skills_'+id+'_companionSkillBranch'], function(v) {
|
|
if (regex.test(v['repeating_companion-skills_'+id+'_companionSkillName'])) {
|
|
companionWeaponsOptions.push({label: v['repeating_companion-skills_'+id+'_companionSkillBranch'] || getTranslationByKey('weapons'+z+'-option'), value: '@{companionWeaponSkill-'+z+'}'});
|
|
z += 1;
|
|
}
|
|
if (i == r.length - 1) {
|
|
companionWeaponsOptions.push({label: getTranslationByKey('unknown-roll'), value: '@{companionWeaponSkill-'+z+'}'});
|
|
populateListOptions({
|
|
elemSelector: '.companionWeaponSkill',
|
|
optionsArray: companionWeaponsOptions
|
|
});
|
|
}
|
|
});
|
|
});
|
|
} else {
|
|
setAttrs({'companionWeaponSkill-1': -3});
|
|
companionWeaponsOptions.push({label: getTranslationByKey('unknown-roll'), value: '@{companionWeaponSkill-1}'});
|
|
populateListOptions({
|
|
elemSelector: '.companionWeaponSkill',
|
|
optionsArray: companionWeaponsOptions
|
|
});
|
|
}
|
|
});
|
|
|
|
// Demon
|
|
demonWeaponsOptions = [];
|
|
z = 1;
|
|
getSectionIDs('repeating_demon-skills', function(r) {
|
|
if (r.length > 0) {
|
|
_.each(r, function(id, i) {
|
|
getAttrs(['repeating_demon-skills_'+id+'_demonSkillName', 'repeating_demon-skills_'+id+'_demonSkillBranch'], function(v) {
|
|
if (regex.test(v['repeating_demon-skills_'+id+'_demonSkillName'])) {
|
|
demonWeaponsOptions.push({label: v['repeating_demon-skills_'+id+'_demonSkillBranch'] || getTranslationByKey('weapons'+z+'-option'), value: '@{demonWeaponSkill-'+z+'}'});
|
|
z += 1;
|
|
}
|
|
if (i == r.length - 1) {
|
|
demonWeaponsOptions.push({label: getTranslationByKey('unknown-roll'), value: '@{demonWeaponSkill-'+z+'}'});
|
|
populateListOptions({
|
|
elemSelector: '.demonWeaponSkill',
|
|
optionsArray: demonWeaponsOptions
|
|
});
|
|
}
|
|
});
|
|
});
|
|
} else {
|
|
setAttrs({'demonWeaponSkill-1': -3});
|
|
demonWeaponsOptions.push({label: getTranslationByKey('unknown-roll'), value: '@{demonWeaponSkill-1}'});
|
|
populateListOptions({
|
|
elemSelector: '.demonWeaponSkill',
|
|
optionsArray: demonWeaponsOptions
|
|
});
|
|
}
|
|
});
|
|
|
|
// NPC
|
|
npcWeaponsOptions = [];
|
|
z = 1;
|
|
getSectionIDs('repeating_npc-skills', function(r) {
|
|
if (r.length > 0) {
|
|
_.each(r, function(id, i) {
|
|
getAttrs(['repeating_npc-skills_'+id+'_npcSkillName', 'repeating_npc-skills_'+id+'_npcSkillBranch'], function(v) {
|
|
if (regex.test(v['repeating_npc-skills_'+id+'_npcSkillName'])) {
|
|
npcWeaponsOptions.push({label: v['repeating_npc-skills_'+id+'_npcSkillBranch'] || getTranslationByKey('weapons'+z+'-option'), value: '@{npcWeaponSkill-'+z+'}'});
|
|
z += 1;
|
|
}
|
|
if (i == r.length - 1) {
|
|
npcWeaponsOptions.push({label: getTranslationByKey('unknown-roll'), value: '@{npcWeaponSkill-'+z+'}'});
|
|
populateListOptions({
|
|
elemSelector: '.npcWeaponSkill',
|
|
optionsArray: npcWeaponsOptions
|
|
});
|
|
}
|
|
});
|
|
});
|
|
} else {
|
|
setAttrs({'npcWeaponSkill-1': -3});
|
|
npcWeaponsOptions.push({label: getTranslationByKey('unknown-roll'), value: '@{npcWeaponSkill-1}'});
|
|
populateListOptions({
|
|
elemSelector: '.npcWeaponSkill',
|
|
optionsArray: npcWeaponsOptions
|
|
});
|
|
}
|
|
});
|
|
|
|
setAttrs({'pcAttributeRoll': '?{@{attributeRoll}|'+
|
|
'@{agilityRoll}, &{template:agone-chars} {{name=@{character_name}}} {{Attribute=@{agilityRoll} : [[[[1d10!]]+[[2*@{pcAgility}]]+[[@{pcBodyBonus}]]+[[?{@{bonusPenaltyRoll}|@{pcArmorAGIPenalty}+@{pcLoadPenalty}}]]]]}} {{Dice=@{rollRoll}: $[[0]]}} {{Attr=@{agilityRoll} x2 : $[[1]]}} {{AspBonus=@{bodyBonusRoll} : $[[2]]}} {{BonPen=@{bonusPenaltyRoll}: $[[3]] }}|'+
|
|
'@{charismaRoll}, &{template:agone-chars} {{name=@{character_name}}} {{Attribute=@{charismaRoll} : [[[[1d10!]]+[[2*@{pcCharisma}]]+[[@{pcSoulBonus}]]+[[?{@{bonusPenaltyRoll}|0}]]]]}} {{Dice=@{rollRoll}: $[[0]]}} {{Attr=@{charismaRoll} x2 : $[[1]]}} {{AspBonus=@{soulBonusRoll} : $[[2]]}} {{BonPen=@{bonusPenaltyRoll}: $[[3]] }}|'+
|
|
'@{creativityRoll}, &{template:agone-chars} {{name=@{character_name}}} {{Attribute=@{creativityRoll} : [[[[1d10!]]+[[2*@{pcCreativity}]]+[[@{pcSoulBonus}]]+[[?{@{bonusPenaltyRoll}|0}]]]]}} {{Dice=@{rollRoll}: $[[0]]}} {{Attr=@{creativityRoll} x2 : $[[1]]}} {{AspBonus=@{soulBonusRoll} : $[[2]]}} {{BonPen=@{bonusPenaltyRoll}: $[[3]] }}|'+
|
|
'@{strengthRoll}, &{template:agone-chars} {{name=@{character_name}}} {{Attribute=@{strengthRoll} : [[[[1d10!]]+[[2*@{pcStrength}]]+[[@{pcBodyBonus}]]+[[?{@{bonusPenaltyRoll}|@{pcLoadPenalty}}]]]]}} {{Dice=@{rollRoll}: $[[0]]}} {{Attr=@{strengthRoll} x2 : $[[1]]}} {{AspBonus=@{bodyBonusRoll} : $[[2]]}} {{BonPen=@{bonusPenaltyRoll}: $[[3]] }}|'+
|
|
'@{intelligenceRoll}, &{template:agone-chars} {{name=@{character_name}}} {{Attribute=@{intelligenceRoll} : [[[[1d10!]]+[[2*@{pcIntelligence}]]+[[@{pcSpiritBonus}]]+[[?{@{bonusPenaltyRoll}|0}]]]]}} {{Dice=@{rollRoll}: $[[0]]}} {{Attr=@{intelligenceRoll} x2 : $[[1]]}} {{AspBonus=@{spiritBonusRoll} : $[[2]]}} {{BonPen=@{bonusPenaltyRoll}: $[[3]] }}|'+
|
|
'@{perceptionRoll}, &{template:agone-chars} {{name=@{character_name}}} {{Attribute=@{perceptionRoll} : [[[[1d10!]]+[[2*@{pcPerception}]]+[[@{pcBodyBonus}]]+[[?{@{bonusPenaltyRoll}|@{pcArmorPERPenalty}}]]]]}} {{Dice=@{rollRoll}: $[[0]]}} {{Attr=@{perceptionRoll} x2 : $[[1]]}} {{AspBonus=@{bodyBonusRoll} : $[[2]]}} {{BonPen=@{bonusPenaltyRoll}: $[[3]] }}|'+
|
|
'@{staminaRoll}, &{template:agone-chars} {{name=@{character_name}}} {{Attribute=@{staminaRoll} : [[[[1d10!]]+[[2*@{pcStamina}]]+[[@{pcBodyBonus}]]+[[?{@{bonusPenaltyRoll}|@{pcLoadPenalty}}]]]]}} {{Dice=@{rollRoll}: $[[0]]}} {{Attr=@{staminaRoll} x2 : $[[1]]}} {{AspBonus=@{bodyBonusRoll} : $[[2]]}} {{BonPen=@{bonusPenaltyRoll}: $[[3]] }}|'+
|
|
'@{willRoll}, &{template:agone-chars} {{name=@{character_name}}} {{Attribute=@{willRoll} : [[[[1d10!]]+[[2*@{pcWill}]]+[[@{pcSpiritBonus}]]+[[?{@{bonusPenaltyRoll}|0}]]]]}} {{Dice=@{rollRoll}: $[[0]]}} {{Attr=@{willRoll} x2 : $[[1]]}} {{AspBonus=@{spiritBonusRoll} : $[[2]]}} {{BonPen=@{bonusPenaltyRoll}: $[[3]] }}}'});
|
|
|
|
setAttrs({'fumbleRollButton': '&{template:agone-fumble} {{name=@{character_name}}} {{Fumble=@{fumbleRoll}[[[[?{@{lastRoll}}]]-[[1d10!]]]]}} {{Dice=@{rollRoll}: $[[1]]}} {{Roll=@{lastRoll}: $[[0]]}}'});
|
|
|
|
getAttrs(['Menu'], function(v) {
|
|
let tab = parseV(v, 'Menu', 'str');
|
|
$20('div[data-tab]').removeClass('active');
|
|
$20(`div[data-tab=${tab}]`).addClass('active');
|
|
if (tab === 'summary') {
|
|
getAttrs(['pcWeapon1', 'pcWeapon2', 'pcWeapon3', 'pcWeapon4', 'pcWeapon5', 'pcWeapon6', 'pcWeapon7', 'pcWeapon8', 'pcWeapon9', 'pcWeapon10'], function(v) {
|
|
let regex = new RegExp('^'+getTranslationByKey('weapons-option').split(' ')[0]+'.*$', '');
|
|
for (var i = 1; i < 11; i++) {
|
|
if (!regex.test(parseV(v, 'pcWeapon'+i, 'str'))) {
|
|
$20(`span[data-summary=pcWeapon${i}]`).addClass('active');
|
|
$20(`button[data-summary=pcWeapon${i}]`).addClass('active');
|
|
} else {
|
|
$20(`span[data-summary=pcWeapon${i}]`).removeClass('active');
|
|
$20(`button[data-summary=pcWeapon${i}]`).removeClass('active');
|
|
}
|
|
}
|
|
});
|
|
}
|
|
});
|
|
|
|
getAttrs(['pcAttributesCheck', 'pcSecondaryAttributesCheck', 'pcSkillsCheck', 'pcAssetsFaultsCheck', 'pcDarknessPerfidyCheck', 'pcFlameSeasonCurrencyCheck', 'pcStuffCheck', 'pcCombatCheck', 'pcWeaponsCheck', 'pcAscendancyCheck', 'pcArtCheck', 'pcSpellsCheck', 'pcInvokingCheck', 'pcNotesCheck'], function(v) {
|
|
if (parseV(v, 'pcAttributesCheck') === 1) {
|
|
$20('button[data-tab=pc-attributes]').addClass('active');
|
|
$20('div[data-tab=pc-attributes]').addClass('active');
|
|
}
|
|
if (parseV(v, 'pcSecondaryAttributesCheck') === 1) {
|
|
$20('button[data-tab=pc-secondary-attributes]').addClass('active');
|
|
$20('div[data-tab=pc-secondary-attributes]').addClass('active');
|
|
}
|
|
if (parseV(v, 'pcSkillsCheck') === 1) {
|
|
$20('button[data-tab=pc-skills]').addClass('active');
|
|
$20('div[data-tab=pc-skills]').addClass('active');
|
|
}
|
|
if (parseV(v, 'pcAssetsFaultsCheck') === 1) {
|
|
$20('button[data-tab=pc-assets-faults]').addClass('active');
|
|
$20('div[data-tab=pc-assets-faults]').addClass('active');
|
|
}
|
|
if (parseV(v, 'pcDarknessPerfidyCheck') === 1) {
|
|
$20('button[data-tab=pc-darkness-perfidy]').addClass('active');
|
|
$20('div[data-tab=pc-darkness-perfidy]').addClass('active');
|
|
}
|
|
if (parseV(v, 'pcFlameSeasonCurrencyCheck') === 1) {
|
|
$20('button[data-tab=pc-flame-season-currency]').addClass('active');
|
|
$20('div[data-tab=pc-flame-season-currency]').addClass('active');
|
|
}
|
|
if (parseV(v, 'pcStuffCheck') === 1) {
|
|
$20('button[data-tab=pc-stuff]').addClass('active');
|
|
$20('div[data-tab=pc-stuff]').addClass('active');
|
|
}
|
|
if (parseV(v, 'pcCombatCheck') === 1) {
|
|
$20('button[data-tab=pc-combat]').addClass('active');
|
|
$20('div[data-tab=pc-combat]').addClass('active');
|
|
}
|
|
if (parseV(v, 'pcWeaponsCheck') === 1) {
|
|
$20('button[data-tab=pc-weapons]').addClass('active');
|
|
$20('div[data-tab=pc-weapons]').addClass('active');
|
|
}
|
|
if (parseV(v, 'pcAscendancyCheck') === 1) {
|
|
$20('button[data-tab=pc-ascendancy]').addClass('active');
|
|
$20('div[data-tab=pc-ascendancy]').addClass('active');
|
|
}
|
|
if (parseV(v, 'pcArtCheck') === 1) {
|
|
$20('button[data-tab=pc-art]').addClass('active');
|
|
$20('div[data-tab=pc-art]').addClass('active');
|
|
}
|
|
if (parseV(v, 'pcSpellsCheck') === 1) {
|
|
$20('button[data-tab=pc-spells]').addClass('active');
|
|
$20('div[data-tab=pc-spells]').addClass('active');
|
|
}
|
|
if (parseV(v, 'pcInvokingCheck') === 1) {
|
|
$20('button[data-tab=pc-invoking]').addClass('active');
|
|
$20('div[data-tab=pc-invoking]').addClass('active');
|
|
}
|
|
if (parseV(v, 'pcNotesCheck') === 1) {
|
|
$20('button[data-tab=pc-notes]').addClass('active');
|
|
$20('div[data-tab=pc-notes]').addClass('active');
|
|
}
|
|
});
|
|
});
|
|
|
|
// PC
|
|
on('change:pcBody change:pcDarkBody', function() {
|
|
getAttrs(['pcBody', 'pcDarkBody', 'pcSpirit', 'pcDarkSpirit', 'pcSoul', 'pcDarkSoul', 'pcFlame', 'pcDarkFlame'], function(v) {
|
|
setAttrs({'pcBodyBonus': bodyBonus(parseV(v, 'pcBody'), parseV(v, 'pcDarkBody'), damned(parseV(v, 'pcFlame'), parseV(v, 'pcDarkFlame')))});
|
|
setAttrs({'pcFlame': flame(parseV(v, 'pcBody'), parseV(v, 'pcSpirit'), parseV(v, 'pcSoul'))});
|
|
setAttrs({'pcDarkFlame': flame(parseV(v, 'pcDarkBody'), parseV(v, 'pcDarkSpirit'), parseV(v, 'pcDarkSoul'))});
|
|
});
|
|
});
|
|
on('change:pcSpirit change:pcDarkSpirit', function() {
|
|
getAttrs(['pcBody', 'pcDarkBody', 'pcSpirit', 'pcDarkSpirit', 'pcSoul', 'pcDarkSoul', 'pcFlame', 'pcDarkFlame'], function(v) {
|
|
setAttrs({'pcSpiritBonus': spiritBonus(parseV(v, 'pcSpirit'), parseV(v, 'pcDarkSpirit'), damned(parseV(v, 'pcFlame'), parseV(v, 'pcDarkFlame')))});
|
|
setAttrs({'pcFlame': flame(parseV(v, 'pcBody'), parseV(v, 'pcSpirit'), parseV(v, 'pcSoul'))});
|
|
setAttrs({'pcDarkFlame': flame(parseV(v, 'pcDarkBody'), parseV(v, 'pcDarkSpirit'), parseV(v, 'pcDarkSoul'))});
|
|
});
|
|
});
|
|
on('change:pcSoul change:pcDarkSoul', function() {
|
|
getAttrs(['pcBody', 'pcDarkBody', 'pcSpirit', 'pcDarkSpirit', 'pcSoul', 'pcDarkSoul', 'pcFlame', 'pcDarkFlame'], function(v) {
|
|
setAttrs({'pcSoulBonus': soulBonus(parseV(v, 'pcSoul'), parseV(v, 'pcDarkSoul'), damned(parseV(v, 'pcFlame'), parseV(v, 'pcDarkFlame')))});
|
|
setAttrs({'pcFlame': flame(parseV(v, 'pcBody'), parseV(v, 'pcSpirit'), parseV(v, 'pcSoul'))});
|
|
setAttrs({'pcDarkFlame': flame(parseV(v, 'pcDarkBody'), parseV(v, 'pcDarkSpirit'), parseV(v, 'pcDarkSoul'))});
|
|
});
|
|
});
|
|
on('change:pcFlame change:pcDarkFlame', function() {
|
|
getAttrs(['pcBody', 'pcDarkBody', 'pcSpirit', 'pcDarkSpirit', 'pcSoul', 'pcDarkSoul', 'pcFlame', 'pcDarkFlame', 'pcFP'], function(v) {
|
|
setAttrs({'pcFP_max': fortunePoints(parseV(v, 'pcFlame'), parseV(v, 'pcDarkFlame'), damned(parseV(v, 'pcFlame'), parseV(v, 'pcDarkFlame')))});
|
|
setAttrs({'pcBodyBonus': bodyBonus(parseV(v, 'pcBody'), parseV(v, 'pcDarkBody'), damned(parseV(v, 'pcFlame'), parseV(v, 'pcDarkFlame')))});
|
|
setAttrs({'pcSpiritBonus': spiritBonus(parseV(v, 'pcSpirit'), parseV(v, 'pcDarkSpirit'), damned(parseV(v, 'pcFlame'), parseV(v, 'pcDarkFlame')))});
|
|
setAttrs({'pcSoulBonus': soulBonus(parseV(v, 'pcSoul'), parseV(v, 'pcDarkSoul'), damned(parseV(v, 'pcFlame'), parseV(v, 'pcDarkFlame')))});
|
|
});
|
|
});
|
|
on('change:pcFP_max', function() {
|
|
getAttrs(['pcFP', 'pcFP_max'], function(v) {
|
|
if (parseV(v, 'pcFP') === 0) setAttrs({'pcFP': parseV(v, 'pcFP_max')});
|
|
});
|
|
})
|
|
on('change:pcHP_max', function() {
|
|
getAttrs(['pcHP', 'pcHP_max', 'pcSeriousWoundPenalty'], function(v) {
|
|
if (parseV(v, 'pcSeriousWoundPenalty') === 0) setAttrs({'pcSeriousWoundPenalty': 0});
|
|
setAttrs({'pcSeriousWoundThreshold': swt(parseV(v, 'pcHP_max'))});
|
|
setAttrs({'pcCriticalWoundThreshold': cwt(parseV(v, 'pcHP_max'))});
|
|
getAttrs(['pcHP_max'], function(w) {
|
|
if (parseV(v, 'pcHP') === 0) setAttrs({'pcHP': parseV(w, 'pcHP_max')});
|
|
});
|
|
});
|
|
});
|
|
on('change:pcMaxLoad', function() {
|
|
getAttrs(['pcMaxLoad', 'pcLoad'], function(v) {
|
|
if (parseV(v, 'pcLoad') === 0) {
|
|
setAttrs({'pcLoad': 0});
|
|
setAttrs({'pcLoadPenalty': 0});
|
|
}
|
|
setAttrs({'pcHalfLoad': halfLoad(parseV(v, 'pcMaxLoad'))});
|
|
setAttrs({'pcDailyLoad': dailyLoad(parseV(v, 'pcMaxLoad'))});
|
|
});
|
|
});
|
|
on('change:pcCharisma change:pcCreativity', function() {
|
|
getAttrs(['pcCharisma', 'pcCreativity'], function(v) {
|
|
setAttrs({'pcArt': art(parseV(v, 'pcCharisma'), parseV(v, 'pcCreativity'))});
|
|
});
|
|
})
|
|
on('change:pcDarkness', function() {
|
|
getAttrs(['pcDarkness'], function(v) {
|
|
setAttrs({'pcBlackness': blackness(parseV(v, 'pcDarkness'))});
|
|
});
|
|
});
|
|
on('change:pcAgility', function() {
|
|
getAttrs(['pcAgility', 'pcStrength', 'pcPerception', 'pcBodyBonus', 'pcDodge'], function(v) {
|
|
setAttrs({'pcMelee': melee(parseV(v, 'pcAgility'), parseV(v, 'pcStrength'))});
|
|
setAttrs({'pcAim': aim(parseV(v, 'pcAgility'), parseV(v, 'pcPerception'))});
|
|
let i = init(parseV(v, 'pcAgility'), parseV(v, 'pcPerception'), parseV(v, 'pcBodyBonus'));
|
|
setAttrs({'pcInit': i});
|
|
setAttrs({'pcMagicInit': i+10});
|
|
setAttrs({'pcDodgeTotal': dodge(parseV(v, 'pcAgility'), parseV(v, 'pcDodge', 'skill'), parseV(v, 'pcBodyBonus'))});
|
|
setAttrs({'pcDistanceDodge': distance(parseV(v, 'pcAgility'), parseV(v, 'pcDodge', 'skill'))});
|
|
setAttrs({'pcNaturalDefense': naturalDefense(parseV(v, 'pcAgility'), parseV(v, 'pcBodyBonus'))});
|
|
});
|
|
getSectionIDs('repeating_pc-weapons', function(r) {
|
|
if (r.length > 0) {
|
|
_.each(r, function(id) {
|
|
getAttrs(['repeating_pc-weapons_'+id+'_pcWeaponInit', 'pcAgility', 'pcPerception', 'pcBodyBonus'], function(v) {
|
|
setAttrs({['repeating_pc-weapons_'+id+'_pcWeaponInitTotal']: weaponInit(parseV(v, 'repeating_pc-weapons_'+id+'_pcWeaponInit'), parseV(v, 'pcAgility'), parseV(v, 'pcPerception'), parseV(v, 'pcBodyBonus'))});
|
|
});
|
|
});
|
|
}
|
|
});
|
|
});
|
|
on('change:pcPerception', function() {
|
|
getAttrs(['pcAgility', 'pcPerception', 'pcBodyBonus'], function(v) {
|
|
setAttrs({'pcAim': aim(parseV(v, 'pcAgility'), parseV(v, 'pcPerception'))});
|
|
let i = init(parseV(v, 'pcAgility'), parseV(v, 'pcPerception'), parseV(v, 'pcBodyBonus'));
|
|
setAttrs({'pcInit': i});
|
|
setAttrs({'pcMagicInit': i+10});
|
|
getSectionIDs('repeating_pc-weapons', function(r) {
|
|
if (r.length > 0) {
|
|
_.each(r, function(id) {
|
|
getAttrs(['repeating_pc-weapons_'+id+'_pcWeaponInit', 'pcAgility', 'pcPerception', 'pcBodyBonus'], function(v) {
|
|
setAttrs({['repeating_pc-weapons_'+id+'_pcWeaponInitTotal']: weaponInit(parseV(v, 'repeating_pc-weapons_'+id+'_pcWeaponInit'), parseV(v, 'pcAgility'), parseV(v, 'pcPerception'), parseV(v, 'pcBodyBonus'))});
|
|
});
|
|
});
|
|
}
|
|
});
|
|
});
|
|
});
|
|
on('change:pcStrength', function() {
|
|
getAttrs(['pcAgility', 'pcStrength'], function(v) {
|
|
setAttrs({'pcMelee': melee(parseV(v, 'pcAgility'), parseV(v, 'pcStrength'))});
|
|
});
|
|
});
|
|
on('change:pcBodyBonus', function() {
|
|
getAttrs(['pcAgility', 'pcPerception', 'pcBodyBonus', 'pcDodge'], function(v) {
|
|
let i = init(parseV(v, 'pcAgility'), parseV(v, 'pcPerception'), parseV(v, 'pcBodyBonus'));
|
|
setAttrs({'pcInit': i});
|
|
setAttrs({'pcMagicInit': i+10});
|
|
setAttrs({'pcDodgeTotal': dodge(parseV(v, 'pcAgility'), parseV(v, 'pcDodge', 'skill'), parseV(v, 'pcBodyBonus'))});
|
|
setAttrs({'pcDistanceDodge': distance(parseV(v, 'pcAgility'), parseV(v, 'pcDodge', 'skill'))});
|
|
});
|
|
getSectionIDs('repeating_pc-weapons', function(r) {
|
|
if (r.length > 0) {
|
|
_.each(r, function(id) {
|
|
getAttrs(['repeating_pc-weapons_'+id+'_pcWeaponInit', 'repeating_pc-weapons_'+id+'_pcAimOrNot', 'repeating_pc-weapons_'+id+'_pcWeaponSkill', 'repeating_pc-weapons_'+id+'_pcWeaponAttack', 'repeating_pc-weapons_'+id+'_pcWeaponDefense', 'repeating_pc-weapons_'+id+'_pcWeaponStyle', 'pcAgility', 'pcPerception', 'pcBodyBonus', 'pcMelee', 'pcAim', 'pcWeaponSkill-1', 'pcWeaponSkill-2', 'pcWeaponSkill-3', 'pcWeaponSkill-4', 'pcWeaponSkill-5', 'pcWeaponSkill-6', 'pcWeaponSkill-7', 'pcWeaponSkill-8', 'pcWeaponSkill-9', 'pcWeaponSkill-10'], function(v) {
|
|
let s = parseV(v, 'repeating_pc-weapons_'+id+'_pcWeaponSkill', 'str').replace(/^@{(.*)}$/, "$1").split('-')[1];
|
|
let ws = parseV(v, 'pcWeaponSkill-'+s);
|
|
setAttrs({['repeating_pc-weapons_'+id+'_pcWeaponInitTotal']: weaponInit(parseV(v, 'repeating_pc-weapons_'+id+'_pcWeaponInit'), parseV(v, 'pcAgility'), parseV(v, 'pcPerception'), parseV(v, 'pcBodyBonus'))});
|
|
setAttrs({['repeating_pc-weapons_'+id+'_pcWeaponAttackTotal']: weaponScore(ws, parseV(v, 'repeating_pc-weapons_'+id+'_pcWeaponStyle', 'str'), parseV(v, 'repeating_pc-weapons_'+id+'_pcAimOrNot'), parseV(v, 'pcMelee'), parseV(v, 'pcAim'), parseV(v, 'repeating_pc-weapons_'+id+'_pcWeaponAttack'), parseV(v, 'pcBodyBonus'))});
|
|
setAttrs({['repeating_pc-weapons_'+id+'_pcWeaponDefenseTotal']: weaponScore(ws, '', 0, parseV(v, 'pcMelee'), 0, parseV(v, 'repeating_pc-weapons_'+id+'_pcWeaponDefense'), parseV(v, 'pcBodyBonus'))});
|
|
});
|
|
});
|
|
}
|
|
});
|
|
});
|
|
on('change:pcMelee', function() {
|
|
getSectionIDs('repeating_pc-weapons', function(r) {
|
|
if (r.length > 0) {
|
|
_.each(r, function(id) {
|
|
getAttrs(['repeating_pc-weapons_'+id+'_pcWeaponSkill', 'repeating_pc-weapons_'+id+'_pcAimOrNot', 'repeating_pc-weapons_'+id+'_pcWeaponAttack', 'repeating_pc-weapons_'+id+'_pcWeaponDefense', 'repeating_pc-weapons_'+id+'_pcWeaponStyle', 'pcBodyBonus', 'pcMelee', 'pcWeaponSkill-1', 'pcWeaponSkill-2', 'pcWeaponSkill-3', 'pcWeaponSkill-4', 'pcWeaponSkill-5', 'pcWeaponSkill-6', 'pcWeaponSkill-7', 'pcWeaponSkill-8', 'pcWeaponSkill-9', 'pcWeaponSkill-10'], function(v) {
|
|
let s = parseV(v, 'repeating_pc-weapons_'+id+'_pcWeaponSkill', 'str').replace(/^@{(.*)}$/, "$1").split('-')[1];
|
|
let ws = parseV(v, 'pcWeaponSkill-'+s);
|
|
if (parseV(v, 'repeating_pc-weapons_'+id+'_pcAimOrNot') >= 0) {
|
|
setAttrs({['repeating_pc-weapons_'+id+'_pcWeaponAttackTotal']: weaponScore(ws, parseV(v, 'repeating_pc-weapons_'+id+'_pcWeaponStyle', 'str'), 0, parseV(v, 'pcMelee'), 0, parseV(v, 'repeating_pc-weapons_'+id+'_pcWeaponAttack'), parseV(v, 'pcBodyBonus'))});
|
|
setAttrs({['repeating_pc-weapons_'+id+'_pcWeaponDefenseTotal']: weaponScore(ws, '', 0, parseV(v, 'pcMelee'), 0, parseV(v, 'repeating_pc-weapons_'+id+'_pcWeaponDefense'), parseV(v, 'pcBodyBonus'))});
|
|
}
|
|
});
|
|
});
|
|
}
|
|
});
|
|
});
|
|
on('change:pcAim', function() {
|
|
getSectionIDs('repeating_pc-weapons', function(r) {
|
|
if (r.length > 0) {
|
|
_.each(r, function(id) {
|
|
getAttrs(['repeating_pc-weapons_'+id+'_pcWeaponSkill', 'repeating_pc-weapons_'+id+'_pcAimOrNot', 'repeating_pc-weapons_'+id+'_pcWeaponAttack', 'pcBodyBonus', 'pcAim', 'pcWeaponSkill-1', 'pcWeaponSkill-2', 'pcWeaponSkill-3', 'pcWeaponSkill-4', 'pcWeaponSkill-5', 'pcWeaponSkill-6', 'pcWeaponSkill-7', 'pcWeaponSkill-8', 'pcWeaponSkill-9', 'pcWeaponSkill-10'], function(v) {
|
|
let s = parseV(v, 'repeating_pc-weapons_'+id+'_pcWeaponSkill', 'str').replace(/^@{(.*)}$/, "$1").split('-')[1];
|
|
let ws = parseV(v, 'pcWeaponSkill-'+s);
|
|
if (parseV(v, 'repeating_pc-weapons_'+id+'_pcAimOrNot') < 0) setAttrs({['repeating_pc-weapons_'+id+'_pcWeaponAttackTotal']: weaponScore(ws, 'missile', -1, 0, parseV(v, 'pcAim'), parseV(v, 'repeating_pc-weapons_'+id+'_pcWeaponAttack'), parseV(v, 'pcBodyBonus'))});
|
|
});
|
|
});
|
|
}
|
|
});
|
|
});
|
|
on('change:pcDamageBonus', function() {
|
|
getSectionIDs('repeating_pc-weapons', function(r) {
|
|
if (r.length > 0) {
|
|
_.each(r, function(id) {
|
|
getAttrs(['repeating_pc-weapons_'+id+'_pcWeaponDamage', 'repeating_pc-weapons_'+id+'_pcAimOrNot', 'pcDamageBonus'], function(v) {
|
|
setAttrs({['repeating_pc-weapons_'+id+'_pcWeaponDDB']: weaponDDB(parseV(v, 'repeating_pc-weapons_'+id+'_pcWeaponDamage'), parseV(v, 'repeating_pc-weapons_'+id+'_pcAimOrNot'), parseV(v, 'pcDamageBonus'))});
|
|
});
|
|
});
|
|
}
|
|
});
|
|
});
|
|
on('change:repeating_pc-weapons:pcWeaponInit', function () {
|
|
getAttrs(['repeating_pc-weapons_pcWeaponInit', 'pcAgility', 'pcPerception', 'pcBodyBonus'], function(v) {
|
|
setAttrs({'repeating_pc-weapons_pcWeaponInitTotal': parseV(v, 'repeating_pc-weapons_pcWeaponInit')+init(parseV(v, 'pcAgility'), parseV(v, 'pcPerception'), parseV(v, 'pcBodyBonus'))});
|
|
});
|
|
});
|
|
on('change:pcWeaponSkill-1 change:pcWeaponSkill-2 change:pcWeaponSkill-3 change:pcWeaponSkill-4 change:pcWeaponSkill-5 change:pcWeaponSkill-6 change:pcWeaponSkill-7 change:pcWeaponSkill-8 change:pcWeaponSkill-9 change:pcWeaponSkill-10', function() {
|
|
getSectionIDs('repeating_pc-weapons', function(r) {
|
|
if (r.length > 0) {
|
|
_.each(r, function(id) {
|
|
getAttrs(['repeating_pc-weapons_'+id+'_pcWeaponSkill', 'repeating_pc-weapons_'+id+'_pcAimOrNot', 'repeating_pc-weapons_'+id+'_pcWeaponAttack', 'repeating_pc-weapons_'+id+'_pcWeaponDefense', 'repeating_pc-weapons_'+id+'_pcWeaponStyle', 'pcMelee', 'pcAim', 'pcBodyBonus', 'pcWeaponSkill-1', 'pcWeaponSkill-2', 'pcWeaponSkill-3', 'pcWeaponSkill-4', 'pcWeaponSkill-5', 'pcWeaponSkill-6', 'pcWeaponSkill-7', 'pcWeaponSkill-8', 'pcWeaponSkill-9', 'pcWeaponSkill-10'], function(v) {
|
|
let s = parseV(v, 'repeating_pc-weapons_'+id+'_pcWeaponSkill', 'str').replace(/^@{(.*)}$/, "$1").split('-')[1];
|
|
let ws = parseV(v, 'pcWeaponSkill-'+s);
|
|
setAttrs({['repeating_pc-weapons_'+id+'_pcWeaponAttackTotal']: weaponScore(ws, parseV(v, 'repeating_pc-weapons_'+id+'_pcWeaponStyle', 'str'), parseV(v, 'repeating_pc-weapons_'+id+'_pcAimOrNot'), parseV(v, 'pcMelee'), parseV(v, 'pcAim'), parseV(v, 'repeating_pc-weapons_'+id+'_pcWeaponAttack'), parseV(v, 'pcBodyBonus'))});
|
|
setAttrs({['repeating_pc-weapons_'+id+'_pcWeaponDefenseTotal']: weaponScore(ws, parseV(v, 'repeating_pc-weapons_'+id+'_pcWeaponStyle', 'str'), 0, parseV(v, 'pcMelee'), 0, parseV(v, 'repeating_pc-weapons_'+id+'_pcWeaponDefense'), parseV(v, 'pcBodyBonus'))});
|
|
});
|
|
});
|
|
}
|
|
});
|
|
});
|
|
on('change:repeating_pc-weapons:pcWeaponAttack change:repeating_pc-weapons:pcWeaponSkill change:repeating_pc-weapons:pcAimOrNot', function() {
|
|
getAttrs(['repeating_pc-weapons_pcWeaponSkill', 'repeating_pc-weapons_pcAimOrNot', 'repeating_pc-weapons_pcWeaponAttack', 'repeating_pc-weapons_pcWeaponStyle', 'pcMelee', 'pcAim', 'pcBodyBonus', 'pcWeaponSkill-1', 'pcWeaponSkill-2', 'pcWeaponSkill-3', 'pcWeaponSkill-4', 'pcWeaponSkill-5', 'pcWeaponSkill-6', 'pcWeaponSkill-7', 'pcWeaponSkill-8', 'pcWeaponSkill-9', 'pcWeaponSkill-10'], function(v) {
|
|
let s = parseV(v, 'repeating_pc-weapons_pcWeaponSkill', 'str').replace(/^@{(.*)}$/, "$1").split('-')[1];
|
|
let ws = parseV(v, 'pcWeaponSkill-'+s);
|
|
setAttrs({'repeating_pc-weapons_pcWeaponAttackTotal': weaponScore(ws, parseV(v, 'repeating_pc-weapons_pcWeaponStyle', 'str'), parseV(v, 'repeating_pc-weapons_pcAimOrNot'), parseV(v, 'pcMelee'), parseV(v, 'pcAim'), parseV(v, 'repeating_pc-weapons_pcWeaponAttack'), parseV(v, 'pcBodyBonus'))});
|
|
});
|
|
});
|
|
on('change:repeating_pc-weapons:pcWeaponDefense change:repeating_pc-weapons:pcWeaponSkill', function() {
|
|
getAttrs(['repeating_pc-weapons_pcWeaponDefense', 'repeating_pc-weapons_pcWeaponSkill', 'repeating_pc-weapons_pcWeaponStyle', 'pcMelee', 'pcBodyBonus', 'pcWeaponSkill-1', 'pcWeaponSkill-2', 'pcWeaponSkill-3', 'pcWeaponSkill-4', 'pcWeaponSkill-5', 'pcWeaponSkill-6', 'pcWeaponSkill-7', 'pcWeaponSkill-8', 'pcWeaponSkill-9', 'pcWeaponSkill-10'], function(v) {
|
|
let s = parseV(v, 'repeating_pc-weapons_pcWeaponSkill', 'str').replace(/^@{(.*)}$/, "$1").split('-')[1];
|
|
let ws = parseV(v, 'pcWeaponSkill-'+s);
|
|
setAttrs({'repeating_pc-weapons_pcWeaponDefenseTotal': weaponScore(ws, parseV(v, 'repeating_pc-weapons_pcWeaponStyle', 'str'), 0, parseV(v, 'pcMelee'), 0, parseV(v, 'repeating_pc-weapons_pcWeaponDefense'), parseV(v, 'pcBodyBonus'))});
|
|
});
|
|
});
|
|
on('change:repeating_pc-weapons:pcWeaponDamage change:repeating_pc-weapons:pcAimOrNot', function() {
|
|
getAttrs(['repeating_pc-weapons_pcWeaponDamage', 'pcDamageBonus', 'repeating_pc-weapons_pcAimOrNot'], function(v) {
|
|
setAttrs({'repeating_pc-weapons_pcWeaponDDB': weaponDDB(parseV(v, 'repeating_pc-weapons_pcWeaponDamage'), parseV(v, 'repeating_pc-weapons_pcAimOrNot'), parseV(v, 'pcDamageBonus'))});
|
|
});
|
|
});
|
|
on('change:repeating_pc-weapons:pcWeaponName remove:repeating_pc-weapons', function() {
|
|
getSectionIDs('repeating_pc-weapons', function(r) {
|
|
let j = 1;
|
|
if (r.length > 0) {
|
|
_.each(r, function(id, i) {
|
|
getAttrs(['repeating_pc-weapons_'+id+'_pcWeaponName'], function(v) {
|
|
let n = parseV(v, 'repeating_pc-weapons_'+id+'_pcWeaponName', 'str');
|
|
setAttrs({['pcWeapon'+j]: n});
|
|
setAttrs({['pcWeapon'+j+'Roll']: '?{@{rollRoll}|'+
|
|
'Initiative, &{template:agone-initiative} {{name=@{selected|character_name}}} {{weapon=(@{repeating_pc-weapons_$'+i+'_pcWeaponName})}} {{Initiative=@{initiativeRoll}[[[[1d10]]+[[@{repeating_pc-weapons_$'+i+'_pcWeaponInitTotal}]]+[[?{@{bonusPenaltyRoll}|@{pcLoadPenalty}}]] &{tracker}]]}} {{Dice=@{rollRoll}: $[[0]]}} {{Base=@{baseRoll}: $[[1]]}} {{BonPen=@{bonusPenaltyRoll}: $[[2]]}}|'+
|
|
'@{attackRoll}, &{template:agone-attack} {{name=@{character_name}}} {{weapon=(@{repeating_pc-weapons_$'+i+'_pcWeaponName})}} {{Attack=@{attackRoll} : [[[[1d10!]]+[[@{repeating_pc-weapons_$'+i+'_pcWeaponAttackTotal}]]+[[?{@{bonusPenaltyRoll}|@{pcLoadPenalty}}]]]]}} {{Type=@{repeating_pc-weapons_$'+i+'_pcWeaponType}}} {{Dice=@{rollRoll}: $[[0]]}} {{Base=@{baseRoll}: $[[1]]}} {{BonPen=@{bonusPenaltyRoll}: $[[2]]}}|'+
|
|
'@{defenseRoll}, &{template:agone-defense} {{name=@{character_name}}} {{weapon=(@{repeating_pc-weapons_$'+i+'_pcWeaponName})}} {{Defense=@{defenseRoll} : [[[[1d10!]]+[[@{repeating_pc-weapons_$'+i+'_pcWeaponDefenseTotal}]]+[[?{@{bonusPenaltyRoll}|@{pcLoadPenalty}}]]]]}} {{Dice=@{rollRoll}: $[[0]]}} {{Base=@{baseRoll}: $[[1]]}} {{BonPen=@{bonusPenaltyRoll}: $[[2]]}}|'+
|
|
'@{dodgeRoll}, &{template:agone-dodge} {{name=@{character_name}}} {{Dodge=@{dodgeRoll} : [[[[1d10!]]+[[@{pcDodgeTotal}]]+[[?{@{bonusPenaltyRoll}|@{pcArmorAGIPenalty}+@{pcLoadPenalty}}]]]]}} {{Dice=@{rollRoll}: $[[0]]}} {{Base=@{baseRoll}: $[[1]]}} {{BonPen=@{bonusPenaltyRoll}: $[[2]]}}|'+
|
|
'@{naturalDefenseRoll}, &{template:agone-natural-defense} {{name=@{character_name}}} {{NaturalDefense=@{naturalDefenseRoll}: [[[[1d10!]]+[[@{pcNaturalDefense}]]+[[?{@{bonusPenaltyRoll}|@{pcArmorAGIPenalty}+{pcLoadPenalty}}]]]]}} {{Dice=@{rollRoll}: $[[0]]}} {{Base=@{baseRoll}: $[[1]]}} {{BonPen=@{bonusPenaltyRoll}: $[[2]]}}}'});
|
|
j += 1;
|
|
if (i == r.length - 1) {
|
|
for (j ; j < 11 ; j++) {
|
|
setAttrs({['pcWeapon'+j]: getTranslationByKey('weapons'+j+'-option')});
|
|
setAttrs({['pcWeapon'+j+'Roll']: ''});
|
|
}
|
|
}
|
|
});
|
|
});
|
|
} else {
|
|
for (j ; j < 11 ; j++) {
|
|
setAttrs({['pcWeapon'+j]: getTranslationByKey('weapons'+j+'-option')});
|
|
setAttrs({['pcWeapon'+j+'Roll']: ''});
|
|
}
|
|
}
|
|
});
|
|
});
|
|
on('change:pcSeriousWound', function() {
|
|
getAttrs(['pcSeriousWound'], function(v) {
|
|
setAttrs({'pcSeriousWoundPenalty': swp(parseV(v, 'pcSeriousWound'))});
|
|
});
|
|
});
|
|
on('change:repeating_pc-weapons:pcWeaponStyle', function() {
|
|
getAttrs(['repeating_pc-weapons_pcWeaponStyle', 'pcDamageBonus'], function(v) {
|
|
setAttrs({'repeating_pc-weapons_pcAimOrNot': aimOrNot(parseV(v, 'repeating_pc-weapons_pcWeaponStyle', 'str'), parseV(v, 'pcDamageBonus'))});
|
|
})
|
|
});
|
|
on('change:repeating_pc-arts remove:repeating_pc-arts', function() {
|
|
getSectionIDs('repeating_pc-arts', function(r) {
|
|
let s = '?{Art|';
|
|
if (r.length > 0) {
|
|
_.each(r, function(id, i) {
|
|
getAttrs(['repeating_pc-arts_'+id+'_pcArtName', 'repeating_pc-arts_'+id+'_pcArtAptitude', 'repeating_pc-arts_'+id+'_pcArtImproAptitude'], function(v) {
|
|
let art = v['repeating_pc-arts_'+id+'_pcArtName'];
|
|
let apt = v['repeating_pc-arts_'+id+'_pcArtAptitude'];
|
|
let imp = v['repeating_pc-arts_'+id+'_pcArtImproAptitude'];
|
|
s += art+', '+'&{template:agone-art} {{name=@{character_name}}} {{Art='+art+' : [[[[1d10!]]+[['+apt+']]+[[?{@{bonusPenaltyRoll}|0}]]]]}} {{Dice=@{rollRoll}: $[[0]]}} {{Base=@{baseRoll}: $[[1]]}} {{BonPen=@{bonusPenaltyRoll}: $[[2]]}}|';
|
|
s += art+' @{intuitiveRoll}, '+'&{template:agone-art-intuitive} {{name=@{character_name}}} {{Art (intuitive)='+art+' @{intuitiveRoll} : [[[[1d10!]]+[['+imp+']]+[[?{@{bonusPenaltyRoll}|0}]]]]}} {{Dice=@{rollRoll}: $[[0]]}} {{Base=@{baseRoll}: $[[1]]}} {{BonPen=@{bonusPenaltyRoll}: $[[2]]}}|';
|
|
if (i == r.length - 1) {
|
|
s = s.slice(0, -1);
|
|
s += '}';
|
|
setAttrs({'pcArtSelection': s});
|
|
}
|
|
});
|
|
});
|
|
}
|
|
});
|
|
});
|
|
on('change:repeating_pc-skills remove:repeating_pc-skills', function() {
|
|
getSectionIDs('repeating_pc-skills', function(r) {
|
|
let s = '?{@{skillRoll}|';
|
|
let z = 1;
|
|
let dodgeRegExp = new RegExp('^'+getTranslationByKey('dodge-option').split(' ')[0]+'.*$');
|
|
let weaponsRegExp = new RegExp('^'+getTranslationByKey('weapons-option').split(' ')[0]+'.*$');
|
|
let weaponsOptions = [];
|
|
if (r.length > 0) {
|
|
_.each(r, function(id, i) {
|
|
getAttrs(['repeating_pc-skills_'+id+'_pcSkillName', 'repeating_pc-skills_'+id+'_pcSkillBranch', 'repeating_pc-skills_'+id+'_pcSkillScore'], function(v) {
|
|
let name = parseV(v, 'repeating_pc-skills_'+id+'_pcSkillName', 'str');
|
|
let branch = parseV(v, 'repeating_pc-skills_'+id+'_pcSkillBranch', 'str');
|
|
let skill = parseV(v, 'repeating_pc-skills_'+id+'_pcSkillScore');
|
|
if (branch === '' || branch === undefined) {
|
|
let b = 'repeating_pc-skills_'+id+'_pcSkill';
|
|
let k = {};
|
|
k[b] = name;
|
|
setAttrs(k);
|
|
s += name+', '+'&{template:agone-skills} {{name=@{character_name}}} {{Skill='+name+' : [[[[1d10!]]+[['+skill+']]+?{@{attributeRoll}|'+
|
|
'@{agilityRoll},[[@{pcAgility}]]+[[@{pcBodyBonus}]]+[[?{@{bonusPenaltyRoll}&#124;@{pcArmorAGIPenalty}+@{pcLoadPenalty}&#125;]]|'+
|
|
'@{strengthRoll},[[@{pcStrength}]]+[[@{pcBodyBonus}]]+[[?{@{bonusPenaltyRoll}&#124;@{pcLoadPenalty}&#125;]]|'+
|
|
'@{perceptionRoll},[[@{pcPerception}]]+[[@{pcBodyBonus}]]+[[?{@{bonusPenaltyRoll}&#124;@{pcArmorPERPenalty}&#125;]]|'+
|
|
'@{staminaRoll},[[@{pcStamina}]]+[[@{pcBodyBonus}]]+[[?{@{bonusPenaltyRoll}&#124;@{pcLoadPenalty}&#125;]]|'+
|
|
'@{intelligenceRoll},[[@{pcIntelligence}]]+[[@{pcSpiritBonus}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]|'+
|
|
'@{willRoll},[[@{pcWill}]]+[[@{pcSpiritBonus}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]|'+
|
|
'@{charismaRoll},[[@{pcCharisma}]]+[[@{pcSoulBonus}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]|'+
|
|
'@{creativityRoll},[[@{pcCreativity}]]+[[@{pcSoulBonus}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]|'+
|
|
'@{meleeRoll},[[@{pcMelee}]]+[[@{pcBodyBonus}]]+[[?{@{bonusPenaltyRoll}&#124;@{pcLoadPenalty}&#125;]]|'+
|
|
'@{aimRoll},[[@{pcAim}]]+[[@{pcBodyBonus}]]+[[?{@{bonusPenaltyRoll}&#124;@{pcLoadPenalty}&#125;]]}]]}} '+
|
|
'{{Dice=@{rollRoll}: $[[0]]}} {{Sk=@{skillRoll}: $[[1]]}} {{Attr=@{attributeRoll} : $[[2]]}} {{AspBonus=@{aspectBonusRoll}: $[[3]]}} {{BonPen=@{bonusPenaltyRoll}: $[[4]]}}|';
|
|
if (dodgeRegExp.test(name)) setAttrs({'pcDodge': skill});
|
|
} else {
|
|
let b = 'repeating_pc-skills_'+id+'_pcSkill';
|
|
let k = {};
|
|
k[b] = branch;
|
|
setAttrs(k);
|
|
s += name+' ['+branch+']'+', '+'&{template:agone-skills} {{name=@{character_name}}} {{Skill='+branch+' : [[[[1d10!]]+[['+skill+']]+?{@{attributeRoll}|'+
|
|
'@{agilityRoll},[[@{pcAgility}]]+[[@{pcBodyBonus}]]+[[?{@{bonusPenaltyRoll}&#124;@{pcArmorAGIPenalty}+@{pcLoadPenalty}&#125;]]|'+
|
|
'@{strengthRoll},[[@{pcStrength}]]+[[@{pcBodyBonus}]]+[[?{@{bonusPenaltyRoll}&#124;@{pcLoadPenalty}&#125;]]|'+
|
|
'@{perceptionRoll},[[@{pcPerception}]]+[[@{pcBodyBonus}]]+[[?{@{bonusPenaltyRoll}&#124;@{pcArmorPERPenalty}&#125;]]|'+
|
|
'@{staminaRoll},[[@{pcStamina}]]+[[@{pcBodyBonus}]]+[[?{@{bonusPenaltyRoll}&#124;@{pcLoadPenalty}&#125;]]|'+
|
|
'@{intelligenceRoll},[[@{pcIntelligence}]]+[[@{pcSpiritBonus}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]|'+
|
|
'@{willRoll},[[@{pcWill}]]+[[@{pcSpiritBonus}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]|'+
|
|
'@{charismaRoll},[[@{pcCharisma}]]+[[@{pcSoulBonus}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]|'+
|
|
'@{creativityRoll},[[@{pcCreativity}]]+[[@{pcSoulBonus}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]|'+
|
|
'@{meleeRoll},[[@{pcMelee}]]+[[@{pcBodyBonus}]]+[[?{@{bonusPenaltyRoll}&#124;@{pcLoadPenalty}&#125;]]|'+
|
|
'@{aimRoll},[[@{pcAim}]]+[[@{pcBodyBonus}]]+[[?{@{bonusPenaltyRoll}&#124;@{pcLoadPenalty}&#125;]]}]]}} '+
|
|
'{{Dice=@{rollRoll}: $[[0]]}} {{Sk=@{skillRoll}: $[[1]]}} {{Attr=@{attributeRoll} : $[[2]]}} {{AspBonus=@{aspectBonusRoll}: $[[3]]}} {{BonPen=@{bonusPenaltyRoll}: $[[4]]}}|';
|
|
if (weaponsRegExp.test(name)) {
|
|
weaponsOptions.push({label: branch || getTranslationByKey('weapons'+z+'-option'), value: '@{pcWeaponSkill-'+z+'}'});
|
|
let a = 'pcWeaponSkill-'+z;
|
|
let j = {};
|
|
j[a] = skill;
|
|
setAttrs(j);
|
|
z += 1;
|
|
}
|
|
}
|
|
if (i == r.length - 1) {
|
|
s += '@{unknownRoll}, &{template:agone-skills} {{name=@{character_name}}} {{Skill=?{@{skillNameRoll}} : [[[[1d10!]]+[[-3]]+?{@{attributeRoll}|'+
|
|
'@{agilityRoll},[[@{pcAgility}]]+[[@{pcBodyBonus}]]+[[?{@{bonusPenaltyRoll}&#124;@{pcArmorAGIPenalty}+@{pcLoadPenalty}&#125;]]|'+
|
|
'@{strengthRoll},[[@{pcStrength}]]+[[@{pcBodyBonus}]]+[[?{@{bonusPenaltyRoll}&#124;@{pcLoadPenalty}&#125;]]|'+
|
|
'@{perceptionRoll},[[@{pcPerception}]]+[[@{pcBodyBonus}]]+[[?{@{bonusPenaltyRoll}&#124;@{pcArmorPERPenalty}&#125;]]|'+
|
|
'@{staminaRoll},[[@{pcStamina}]]+[[@{pcBodyBonus}]]+[[?{@{bonusPenaltyRoll}&#124;@{pcLoadPenalty}&#125;]]|'+
|
|
'@{intelligenceRoll},[[@{pcIntelligence}]]+[[@{pcSpiritBonus}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]|'+
|
|
'@{willRoll},[[@{pcWill}]]+[[@{pcSpiritBonus}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]|'+
|
|
'@{charismaRoll},[[@{pcCharisma}]]+[[@{pcSoulBonus}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]|'+
|
|
'@{creativityRoll},[[@{pcCreativity}]]+[[@{pcSoulBonus}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]|'+
|
|
'@{meleeRoll},[[@{pcMelee}]]+[[@{pcBodyBonus}]]+[[?{@{bonusPenaltyRoll}&#124;@{pcLoadPenalty}&#125;]]|'+
|
|
'@{aimRoll},[[@{pcAim}]]+[[@{pcBodyBonus}]]+[[?{@{bonusPenaltyRoll}&#124;@{pcLoadPenalty}&#125;]]}]]}} '+
|
|
'{Dice=@{rollRoll}: $[[0]]}} {{Sk=@{skillRoll}: $[[1]]}} {{Attr=@{attributeRoll} : $[[2]]}} {{AspBonus=@{aspectBonusRoll}: $[[3]]}} {{BonPen=@{bonusPenaltyRoll}: $[[4]]}}}';
|
|
setAttrs({'pcSkillsSelection': s});
|
|
weaponsOptions.push({label: getTranslationByKey('unknown-roll'), value: '@{pcWeaponSkill-'+z+'}'});
|
|
populateListOptions({
|
|
elemSelector: '.pcWeaponSkill',
|
|
optionsArray: weaponsOptions
|
|
});
|
|
for (z ; z < 11 ; z++) {
|
|
let a = 'pcWeaponSkill-'+z;
|
|
let j = {};
|
|
j[a] = -3;
|
|
setAttrs(j);
|
|
}
|
|
}
|
|
});
|
|
});
|
|
}
|
|
});
|
|
});
|
|
on('change:pcSkillsSelection', function() {
|
|
getAttrs(['pcSkillsSelection', 'pcAgility', 'pcBodyBonus', 'pcDodge'], function(v) {
|
|
if (v['pcSkillsSelection'].indexOf('Esquive') > -1) {
|
|
let d = v['pcSkillsSelection'].match(/.*Esquive \(Épreuve\) : \[\[\[\[1d10\!\]\]\+\[\[(\d)\]\]\+.*/);
|
|
d = parseInt(d[1]);
|
|
setAttrs({'pcDodge': d});
|
|
setAttrs({'pcDodgeTotal': dodge(parseV(v, 'pcAgility'), d, parseV(v, 'pcBodyBonus'))});
|
|
setAttrs({'pcDistanceDodge': distance(parseV(v, 'pcAgility'), d)});
|
|
}
|
|
else {
|
|
setAttrs({'pcDodge': -3});
|
|
setAttrs({'pcDodgeTotal': dodge(parseV(v, 'pcAgility'), -3, parseV(v, 'pcBodyBonus'))});
|
|
setAttrs({'pcDistanceDodge': distance(parseV(v, 'pcAgility'), -3)});
|
|
}
|
|
});
|
|
});
|
|
on('change:repeating_pc-stuff remove:repeating_pc-stuff', function() {
|
|
getAttrs(['repeating_pc-stuff_pcStuffQuantity', 'repeating_pc-stuff_pcStuffWeight'], function(v) {
|
|
if (v['repeating_pc-stuff_pcStuffQuantity'] !== '' && v['repeating_pc-stuff_pcStuffWeight']) setAttrs({'repeating_pc-stuff_pcStuffTotalWeight': itemLoad(parseV(v, 'repeating_pc-stuff_pcStuffQuantity'), parseV(v, 'repeating_pc-stuff_pcStuffWeight', 'float'))});
|
|
});
|
|
getSectionIDs('repeating_pc-stuff', function(r) {
|
|
if (r.length > 0) {
|
|
let l = 0;
|
|
_.each(r, function(id) {
|
|
getAttrs(['repeating_pc-stuff_'+id+'_pcStuffQuantity', 'repeating_pc-stuff_'+id+'_pcStuffWeight'], function(v) {
|
|
l = l + parseFloat(itemLoad(parseV(v, 'repeating_pc-stuff_'+id+'_pcStuffQuantity'), parseV(v, 'repeating_pc-stuff_'+id+'_pcStuffWeight', 'float')));
|
|
setAttrs({'pcLoad': l.toFixed(2)});
|
|
});
|
|
});
|
|
} else {
|
|
setAttrs({'pcLoad': 0});
|
|
setAttrs({'pcLoadPenalty': 0});
|
|
}
|
|
});
|
|
});
|
|
on('change:pcLoad', function() {
|
|
getAttrs(['pcLoad', 'pcMaxLoad'], function(v) {
|
|
setAttrs({'pcLoadPenalty': loadPenalty(parseV(v, 'pcLoad', 'float'), parseV(v, 'pcMaxLoad'))});
|
|
});
|
|
});
|
|
on('change:pcArmorType', function() {
|
|
getAttrs(['pcArmorType', 'pcArmorWorn'], function(v) {
|
|
let at = parseV(v, 'pcArmorType');
|
|
let m = 0;
|
|
if (at === 1) m = -1;
|
|
else if (at === 2) m = -3;
|
|
setAttrs({'pcArmorPerceptionPenalty': m});
|
|
if (parseV(v, 'pcArmorWorn') === 1) setAttrs({'pcArmorPERPenalty': parseV(v, 'pcArmorPerceptionPenalty')});
|
|
else setAttrs({'pcArmorPERPenalty': 0});
|
|
});
|
|
});
|
|
on('change:repeating_pc-ascendancies remove:repeating_pc-ascendancies', function() {
|
|
getSectionIDs('repeating_pc-ascendancies', function(r) {
|
|
let s = '?{@{dancerRoll}|';
|
|
let dancersOptions = [{label: 'N/A', value: 'Dancer-0'}];
|
|
if (r.length > 0) {
|
|
_.each(r, function(id, i) {
|
|
getAttrs(['repeating_pc-ascendancies_'+id+'_pcDancer', 'repeating_pc-ascendancies_'+id+'_pcAscendancyAptitude', 'repeating_pc-ascendancies_'+id+'_pcASCImproAptitude'], function(v) {
|
|
let dan = parseV(v, 'repeating_pc-ascendancies_'+id+'_pcDancer', 'str');
|
|
let apt = parseV(v, 'repeating_pc-ascendancies_'+id+'_pcAscendancyAptitude');
|
|
let imp = parseV(v, 'repeating_pc-ascendancies_'+id+'_pcASCImproAptitude');
|
|
s += dan+', '+'&{template:agone-ascendancy} {{name=@{character_name}}} {{dancer='+dan+'}} {{Ascendancy=@{ascendancyRoll} : [[[[1d10!]]+[['+apt+']]+[[?{@{bonusPenaltyRoll}|0}]]]]}} {{Dice=@{rollRoll}: $[[0]]}} {{Base=@{baseRoll}: $[[1]]}} {{BonPen=@{bonusPenaltyRoll}: $[[2]]}}|';
|
|
s += dan+' @{intuitiveRoll}, '+'&{template:agone-ascendancy-intuitive} {{name=@{character_name}}} {{dancer='+dan+'}} {{Ascendancy (intuitive)=@{intuitiveAscendancyRoll} : [[[[1d10!]]+[['+imp+']]+[[?{@{bonusPenaltyRoll}|0}]]]]}} {{Dice=@{rollRoll}: $[[0]]}} {{Base=@{baseRoll}: $[[1]]}} {{BonPen=@{bonusPenaltyRoll}: $[[2]]}}|';
|
|
dancersOptions.push({label: v['repeating_pc-ascendancies_'+id+'_pcDancer'], value: 'Dancer-'+parseInt(i+1)});
|
|
if (i == r.length - 1) {
|
|
s = s.slice(0, -1);
|
|
s += '}';
|
|
setAttrs({'pcAscendancySelection': s});
|
|
populateListOptions({
|
|
elemSelector: '.pcSpellDancer',
|
|
optionsArray: dancersOptions
|
|
});
|
|
}
|
|
});
|
|
});
|
|
}
|
|
});
|
|
});
|
|
on('change:pcArmorWorn change:pcArmorAgilityPenalty', function() {
|
|
getAttrs(['pcArmorWorn', 'pcArmorAgilityPenalty', 'pcArmorPerceptionPenalty'], function(v) {
|
|
if (parseV(v, 'pcArmorWorn') === 1) {
|
|
setAttrs({'pcArmorAGIPenalty': parseV(v, 'pcArmorAgilityPenalty')});
|
|
setAttrs({'pcArmorPERPenalty': parseV(v, 'pcArmorPerceptionPenalty')});
|
|
} else {
|
|
setAttrs({'pcArmorAGIPenalty': 0});
|
|
setAttrs({'pcArmorPERPenalty': 0});
|
|
}
|
|
});
|
|
});
|
|
|
|
// Companion
|
|
on('change:companionAgility', function() {
|
|
getAttrs(['companionAgility', 'companionStrength', 'companionPerception', 'companionDodge'], function(v) {
|
|
setAttrs({'companionMelee': melee(parseV(v, 'companionAgility'), parseV(v, 'companionStrength'))});
|
|
setAttrs({'companionAim': aim(parseV(v, 'companionAgility'), parseV(v, 'companionPerception'))});
|
|
setAttrs({'companionInit': init(parseV(v, 'companionAgility'), parseV(v, 'companionPerception'), 0)});
|
|
setAttrs({'companionDodgeTotal': dodge(parseV(v, 'companionAgility'), parseV(v, 'companionDodge', 'skill'), 0)});
|
|
setAttrs({'companionDistanceDodge': distance(parseV(v, 'companionAgility'), parseV(v, 'companionDodge', 'skill'))});
|
|
setAttrs({'companionNaturalDefense': naturalDefense(parseV(v, 'companionAgility'), 0)});
|
|
});
|
|
getSectionIDs('repeating_companion-weapons', function(r) {
|
|
if (r.length > 0) {
|
|
_.each(r, function(id) {
|
|
getAttrs(['repeating_companion-weapons_'+id+'_companionWeaponInit', 'companionAgility', 'companionPerception'], function(v) {
|
|
setAttrs({['repeating_companion-weapons_'+id+'_companionWeaponInitTotal']: weaponInit(parseV(v, 'repeating_companion-weapons_'+id+'_companionWeaponInit'), parseV(v, 'companionAgility'), parseV(v, 'companionPerception'), 0)});
|
|
});
|
|
});
|
|
}
|
|
});
|
|
});
|
|
on('change:companionStrength', function() {
|
|
getAttrs(['companionAgility', 'companionStrength'], function(v) {
|
|
setAttrs({'companionMelee': melee(parseV(v, 'companionAgility'), parseV(v, 'companionStrength'))});
|
|
});
|
|
});
|
|
on('change:companionPerception', function() {
|
|
getAttrs(['companionAgility', 'companionPerception'], function(v) {
|
|
setAttrs({'companionAim': aim(parseV(v, 'companionAgility'), parseV(v, 'companionPerception'))});
|
|
setAttrs({'companionInit': init(parseV(v, 'companionAgility'), parseV(v, 'companionPerception'), 0)});
|
|
});
|
|
getSectionIDs('repeating_companion-weapons', function(r) {
|
|
if (r.length > 0) {
|
|
_.each(r, function(id) {
|
|
getAttrs(['repeating_companion-weapons_'+id+'_companionWeaponInit', 'companionAgility', 'companionPerception'], function(v) {
|
|
setAttrs({['repeating_companion-weapons_'+id+'_companionWeaponInitTotal']: weaponInit(parseV(v, 'repeating_companion-weapons_'+id+'_companionWeaponInit'), parseV(v, 'companionAgility'), parseV(v, 'companionPerception'), 0)});
|
|
});
|
|
});
|
|
}
|
|
});
|
|
});
|
|
on('change:companionHP_max', function() {
|
|
getAttrs(['companionHP_max'], function(v) {
|
|
setAttrs({'companionSeriousWoundThreshold': swt(parseV(v, 'companionHP_max'))});
|
|
setAttrs({'companionCriticalWoundThreshold': cwt(parseV(v, 'companionHP_max'))});
|
|
});
|
|
});
|
|
on('change:companionMaxLoad', function() {
|
|
getAttrs(['companionMaxLoad'], function(v) {
|
|
setAttrs({'companionHalfLoad': halfLoad(parseV(v, 'companionMaxLoad'))});
|
|
setAttrs({'companionDailyLoad': dailyLoad(parseV(v, 'companionMaxLoad'))});
|
|
});
|
|
});
|
|
on('change:companionCharisma change:companionCreativity', function() {
|
|
getAttrs(['companionCharisma', 'companionCreativity'], function(v) {
|
|
setAttrs({'companionArt': art(parseV(v, 'companionCharisma'), parseV(v, 'companionCreativity'))});
|
|
});
|
|
});
|
|
on('change:repeating_companion-weapons:companionWeaponInit', function() {
|
|
getAttrs(['repeating_companion-weapons_companionWeaponInit', 'companionAgility', 'companionPerception'], function(v) {
|
|
setAttrs({'repeating_companion-weapons_companionWeaponInitTotal': weaponInit(parseV(v, 'repeating_companion-weapons_companionWeaponInit'), parseV(v, 'companionAgility'), parseV(v, 'companionPerception'), 0)});
|
|
});
|
|
});
|
|
on('change:companionWeaponSkill-1 change:companionWeaponSkill-2 change:companionWeaponSkill-3 change:companionWeaponSkill-4 change:companionWeaponSkill-5 change:companionWeaponSkill-6 change:companionWeaponSkill-7 change:companionWeaponSkill-8 change:companionWeaponSkill-9 change:companionWeaponSkill-10', function() {
|
|
getSectionIDs('repeating_companion-weapons', function(r) {
|
|
if (r.length > 0) {
|
|
_.each(r, function(id) {
|
|
getAttrs(['repeating_companion-weapons_'+id+'_companionWeaponSkill', 'repeating_companion-weapons_'+id+'_companionAimOrNot', 'repeating_companion-weapons_'+id+'_companionWeaponAttack', 'repeating_companion-weapons_'+id+'_companionWeaponDefense', 'repeating_companion-weapons_'+id+'_companionWeaponStyle', 'companionMelee', 'companionAim', 'companionWeaponSkill-1', 'companionWeaponSkill-2', 'companionWeaponSkill-3', 'companionWeaponSkill-4', 'companionWeaponSkill-5', 'companionWeaponSkill-6', 'companionWeaponSkill-7', 'companionWeaponSkill-8', 'companionWeaponSkill-9', 'companionWeaponSkill-10'], function(v) {
|
|
let s = parseV(v, 'repeating_companion-weapons_'+id+'_companionWeaponSkill', 'str').replace(/^@{(.*)}$/, "$1").split('-')[1];
|
|
let ws = parseV(v, 'companionWeaponSkill-'+s);
|
|
setAttrs({['repeating_companion-weapons_'+id+'_companionWeaponAttackTotal']: weaponScore(ws, parseV(v, 'repeating_companion-weapons_'+id+'_companionWeaponStyle', 'str'), parseV(v, 'repeating_companion-weapons_'+id+'_companionAimOrNot'), parseV(v, 'companionMelee'), parseV(v, 'companionAim'), parseV(v, 'repeating_companion-weapons_'+id+'_companionWeaponAttack'), 0)});
|
|
setAttrs({['repeating_companion-weapons_'+id+'_companionWeaponDefenseTotal']: weaponScore(ws, parseV(v, 'repeating_companion-weapons_'+id+'_companionWeaponStyle', 'str'), 0, parseV(v, 'companionMelee'), 0, parseV(v, 'repeating_companion-weapons_'+id+'_companionWeaponDefense'), 0)});
|
|
});
|
|
});
|
|
}
|
|
});
|
|
});
|
|
on('change:repeating_companion-weapons:companionWeaponAttack change:repeating_companion-weapons:companionWeaponSkill change:repeating_companion-weapons:companionAimOrNot', function() {
|
|
getAttrs(['repeating_companion-weapons_companionWeaponSkill', 'repeating_companion-weapons_companionAimOrNot', 'repeating_companion-weapons_companionWeaponAttack', 'companionWeaponStyle', 'companionMelee', 'companionAim', 'companionWeaponSkill-1', 'companionWeaponSkill-2', 'companionWeaponSkill-3', 'companionWeaponSkill-4', 'companionWeaponSkill-5', 'companionWeaponSkill-6', 'companionWeaponSkill-7', 'companionWeaponSkill-8', 'companionWeaponSkill-9', 'companionWeaponSkill-10'], function(v) {
|
|
let s = parseV(v, 'repeating_companion-weapons_companionWeaponSkill', 'str').replace(/^@{(.*)}$/, "$1").split('-')[1];
|
|
let ws = parseV(v, 'companionWeaponSkill-'+s);
|
|
setAttrs({'repeating_companion-weapons_companionWeaponAttackTotal': weaponScore(ws, parseV(v, 'repeating_companion-weapons_companionWeaponStyle', 'str'), parseV(v, 'repeating_companion-weapons_companionAimOrNot'), parseV(v, 'companionMelee'), parseV(v, 'companionAim'), parseV(v, 'repeating_companion-weapons_companionWeaponAttack'), 0)});
|
|
});
|
|
});
|
|
on('change:repeating_companion-weapons:companionWeaponDefense change:repeating_companion-weapons:companionWeaponSkill', function() {
|
|
getAttrs(['repeating_companion-weapons_companionWeaponDefense', 'repeating_companion-weapons_companionWeaponSkill', 'repeating_companion-weapons_companionWeaponStyle', 'companionMelee', 'companionWeaponSkill-1', 'companionWeaponSkill-2', 'companionWeaponSkill-3', 'companionWeaponSkill-4', 'companionWeaponSkill-5', 'companionWeaponSkill-6', 'companionWeaponSkill-7', 'companionWeaponSkill-8', 'companionWeaponSkill-9', 'companionWeaponSkill-10'], function(v) {
|
|
let s = parseV(v, 'repeating_companion-weapons_companionWeaponSkill', 'str').replace(/^@{(.*)}$/, "$1").split('-')[1];
|
|
let ws = parseV(v, 'companionWeaponSkill-'+s);
|
|
setAttrs({'repeating_companion-weapons_companionWeaponDefenseTotal': weaponScore(ws, parseV(v, 'repeating_companion-weapons_companionWeaponStyle', 'str'), 0, parseV(v, 'companionMelee'), 0, parseV(v, 'repeating_companion-weapons_companionWeaponDefense'), 0)});
|
|
});
|
|
});
|
|
on('change:companionMelee', function() {
|
|
getSectionIDs('repeating_companion-weapons', function(r) {
|
|
if (r.length > 0) {
|
|
_.each(r, function(id) {
|
|
getAttrs(['repeating_companion-weapons_'+id+'_companionWeaponSkill', 'repeating_companion-weapons_'+id+'_companionAimOrNot', 'repeating_companion-weapons_'+id+'_companionWeaponAttack', 'repeating_companion-weapons_'+id+'_companionWeaponDefense', 'repeating_companion-weapons_'+id+'_companionWeaponStyle', 'companionMelee', 'companionWeaponSkill-1', 'companionWeaponSkill-2', 'companionWeaponSkill-3', 'companionWeaponSkill-4', 'companionWeaponSkill-5', 'companionWeaponSkill-6', 'companionWeaponSkill-7', 'companionWeaponSkill-8', 'companionWeaponSkill-9', 'companionWeaponSkill-10'], function(v) {
|
|
let s = parseV(v, 'repeating_companion-weapons_'+id+'_companionWeaponSkill', 'str').replace(/^@{(.*)}$/, "$1").split('-')[1];
|
|
let ws = parseV(v, 'companionWeaponSkill-'+s);
|
|
if (parseV(v, 'repeating_companion-weapons_'+id+'_companionAimOrNot') >= 0) {
|
|
setAttrs({['repeating_companion-weapons_'+id+'_companionWeaponAttackTotal']: weaponScore(ws, parseV(v, 'repeating_companion-weapons_'+id+'_companionWeaponStyle', 'str'), 0, parseV(v, 'companionMelee'), 0, parseV(v, 'repeating_companion-weapons_'+id+'_companionWeaponAttack'), 0)});
|
|
setAttrs({['repeating_companion-weapons_'+id+'_companionWeaponDefenseTotal']: weaponScore(ws, '', 0, parseV(v, 'companionMelee'), 0, parseV(v, 'repeating_companion-weapons_'+id+'_companionWeaponDefense'), 0)});
|
|
}
|
|
});
|
|
});
|
|
}
|
|
});
|
|
});
|
|
on('change:companionAim', function() {
|
|
getSectionIDs('repeating_companion-weapons', function(r) {
|
|
if (r.length > 0) {
|
|
_.each(r, function(id) {
|
|
getAttrs(['repeating_companion-weapons_'+id+'_companionWeaponSkill', 'repeating_companion-weapons_'+id+'_companionAimOrNot', 'repeating_companion-weapons_'+id+'_companionWeaponAttack', 'companionAim', 'companionWeaponSkill-1', 'companionWeaponSkill-2', 'companionWeaponSkill-3', 'companionWeaponSkill-4', 'companionWeaponSkill-5', 'companionWeaponSkill-6', 'companionWeaponSkill-7', 'companionWeaponSkill-8', 'companionWeaponSkill-9', 'companionWeaponSkill-10'], function(v) {
|
|
let s = parseV(v, 'repeating_companion-weapons_'+id+'_companionWeaponSkill', 'str').replace(/^@{(.*)}$/, "$1").split('-')[1];
|
|
let ws = parseV(v, 'companionWeaponSkill-'+s);
|
|
if (parseV(v, 'repeating_companion-weapons_'+id+'_companionAimOrNot') < 0) setAttrs({['repeating_companion-weapons_'+id+'_companionWeaponAttackTotal']: weaponScore(ws, 'missile', -1, 0, parseV(v, 'companionAim'), parseV(v, 'repeating_companion-weapons_'+id+'_companionWeaponAttack'), 0)});
|
|
});
|
|
});
|
|
}
|
|
});
|
|
});
|
|
on('change:repeating_companion-weapons:companionWeaponDamage change:repeating_companion-weapons:companionAimOrNot', function() {
|
|
getAttrs(['repeating_companion-weapons_companionWeaponDamage', 'companionDamageBonus', 'repeating_companion-weapons_companionAimOrNot'], function(v) {
|
|
setAttrs({'repeating_companion-weapons_companionWeaponDDB': weaponDDB(parseV(v, 'repeating_companion-weapons_companionWeaponDamage'), parseV(v, 'repeating_companion-weapons_companionAimOrNot'), parseV(v, 'companionDamageBonus'))});
|
|
});
|
|
});
|
|
on('change:companionDamageBonus', function() {
|
|
getSectionIDs('repeating_companion-weapons', function(r) {
|
|
if (r.length > 0) {
|
|
_.each(r, function(id) {
|
|
getAttrs(['repeating_companion-weapons_'+id+'_companionWeaponDamage', 'repeating_companion-weapons_'+id+'_companionAimOrNot', 'companionDamageBonus'], function(v) {
|
|
setAttrs({['repeating_companion-weapons_'+id+'_companionWeaponDDB']: weaponDDB(parseV(v, 'repeating_companion-weapons_'+id+'_companionWeaponDamage'), parseV(v, 'repeating_companion-weapons_'+id+'_companionAimOrNot'), parseV(v, 'companionDamageBonus'))});
|
|
});
|
|
});
|
|
}
|
|
});
|
|
});
|
|
on('change:companionSeriousWound', function() {
|
|
getAttrs(['companionSeriousWound'], function(v) {
|
|
setAttrs({'companionSeriousWoundPenalty': swp(parseV(v, 'companionSeriousWound'))});
|
|
});
|
|
});
|
|
on('change:repeating_companion-weapons:companionWeaponStyle', function() {
|
|
getAttrs(['repeating_companion-weapons_companionWeaponStyle', 'companionDamageBonus'], function(v) {
|
|
setAttrs({'repeating_companion-weapons_companionAimOrNot': aimOrNot(parseV(v, 'repeating_companion-weapons_companionWeaponStyle', 'str'), parseV(v, 'companionDamageBonus'))});
|
|
})
|
|
});
|
|
on('change:repeating_companion-skills remove:repeating_companion-skills', function() {
|
|
getSectionIDs('repeating_companion-skills', function(r) {
|
|
let s = '?{@{skillRoll}|';
|
|
let z = 1;
|
|
let dodgeRegExp = new RegExp('^'+getTranslationByKey('dodge-option').split(' ')[0]+'.*$');
|
|
let weaponsRegExp = new RegExp('^'+getTranslationByKey('weapons-option').split(' ')[0]+'.*$');
|
|
let weaponsOptions = [];
|
|
if (r.length > 0) {
|
|
_.each(r, function(id, i) {
|
|
getAttrs(['repeating_companion-skills_'+id+'_companionSkillName', 'repeating_companion-skills_'+id+'_companionSkillBranch', 'repeating_companion-skills_'+id+'_companionSkillScore'], function(v) {
|
|
let name = parseV(v, 'repeating_companion-skills_'+id+'_companionSkillName', 'str');
|
|
let branch = parseV(v, 'repeating_companion-skills_'+id+'_companionSkillBranch', 'str');
|
|
let skill = parseV(v, 'repeating_companion-skills_'+id+'_companionSkillScore');
|
|
if (branch === '' || branch === undefined) {
|
|
let b = 'repeating_companion-skills_'+id+'_companionSkill';
|
|
let k = {};
|
|
k[b] = name;
|
|
setAttrs(k);
|
|
s += name+', '+'&{template:agone-skills} {{name=@{character_name}}} {{Skill='+name+' : [[[[1d10!]]+[['+skill+']]+?{@{attributeRoll}|'+
|
|
'@{agilityRoll},[[@{companionAgility}]]+[[?{@{bonusPenaltyRoll}&#124;@{companionArmorAGIPenalty}&#125;]]|@{strengthRoll},[[@{companionStrength}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]|'+
|
|
'@{perceptionRoll},[[@{companionPerception}]]+[[?{@{bonusPenaltyRoll}&#124;@{companionArmorPERPenalty}&#125;]]|'+
|
|
'@{staminaRoll},[[@{companionStamina}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]|'+
|
|
'@{intelligenceRoll},[[@{companionIntelligence}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]|'+
|
|
'@{willRoll},[[@{companionWill}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]|'+
|
|
'@{charismaRoll},[[@{companionCharisma}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]|'+
|
|
'@{creativityRoll},[[@{companionCreativity}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]|'+
|
|
'@{meleeRoll},[[@{companionMelee}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]|'+
|
|
'@{aimRoll},[[@{companionAim}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]}]]}} '+
|
|
'{{Dice=@{rollRoll}: $[[0]]}} {{Sk=@{skillRoll}: $[[1]]}} {{Attr=@{attributeRoll} : $[[2]]}} {{AspBonus=@{aspectBonusRoll}: N/A}} {{BonPen=@{bonusPenaltyRoll}: $[[3]]}}|';
|
|
if (dodgeRegExp.test(name)) setAttrs({'companionDodge': skill});
|
|
} else {
|
|
let b = 'repeating_companion-skills_'+id+'_companionSkill';
|
|
let k = {};
|
|
k[b] = branch;
|
|
setAttrs(k);
|
|
s += name+' ['+branch+']'+', '+'&{template:agone-skills} {{name=@{character_name}}} {{Skill='+branch+' : [[[[1d10!]]+[['+skill+']]+?{@{attributeRoll}|'+
|
|
'@{agilityRoll},[[@{companionAgility}]]+[[?{@{bonusPenaltyRoll}&#124;@{companionArmorAGIPenalty}&#125;]]|'+
|
|
'@{strengthRoll},[[@{companionStrength}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]|'+
|
|
'@{perceptionRoll},[[@{companionPerception}]]+[[?{@{bonusPenaltyRoll}&#124;@{companionArmorPERPenalty}&#125;]]|'+
|
|
'@{staminaRoll},[[@{companionStamina}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]|'+
|
|
'@{intelligenceRoll},[[@{companionIntelligence}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]|'+
|
|
'@{willRoll},[[@{companionWill}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]|'+
|
|
'@{charismaRoll},[[@{companionCharisma}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]|'+
|
|
'@{creativityRoll},[[@{companionCreativity}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]|'+
|
|
'@{meleeRoll},[[@{companionMelee}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]|'+
|
|
'@{aimRoll},[[@{companionAim}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]}]]}} '+
|
|
'{{Dice=@{rollRoll}: $[[0]]}} {{Sk=@{skillRoll}: $[[1]]}} {{Attr=@{attributeRoll} : $[[2]]}} {{AspBonus=@{aspectBonusRoll}: N/A}} {{BonPen=@{bonusPenaltyRoll}: $[[3]]}}|';
|
|
if (weaponsRegExp.test(name)) {
|
|
weaponsOptions.push({label: branch || getTranslationByKey('weapons'+z+'-option'), value: '@{companionWeaponSkill-'+z+'}'});
|
|
let a = 'companionWeaponSkill-'+z;
|
|
let j = {};
|
|
j[a] = skill;
|
|
setAttrs(j);
|
|
z += 1;
|
|
}
|
|
}
|
|
if (i == r.length - 1) {
|
|
s += '@{unknownRoll}, &{template:agone-skills} {{name=@{character_name}}} {{Skill=?{@{skillNameRoll}} : [[[[1d10!]]+[[-3]]+?{@{attributeRoll}|'+
|
|
'@{agilityRoll},[[@{companionAgility}]]+[[?{@{bonusPenaltyRoll}&#124;@{companionArmorAGIPenalty}&#125;]]|'+
|
|
'@{strengthRoll},[[@{companionStrength}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]|'+
|
|
'@{perceptionRoll},[[@{companionPerception}]]+[[?{@{bonusPenaltyRoll}&#124;@{companionArmorPERPenalty}&#125;]]|'+
|
|
'@{staminaRoll},[[@{companionStamina}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]|'+
|
|
'@{intelligenceRoll},[[@{companionIntelligence}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]|'+
|
|
'@{willRoll},[[@{companionWill}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]|'+
|
|
'@{charismaRoll},[[@{companionCharisma}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]|'+
|
|
'@{creativityRoll},[[@{companionCreativity}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]|'+
|
|
'@{meleeRoll},[[@{companionMelee}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]|'+
|
|
'@{aimRoll},[[@{companionAim}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]}]]}} '+
|
|
'{{Dice=@{rollRoll}: $[[0]]}} {{Sk=@{skillRoll}: $[[1]]}} {{Attr=@{attributeRoll} : $[[2]]}} {{AspBonus=@{aspectBonusRoll}: N/A}} {{BonPen=@{bonusPenaltyRoll}: $[[3]]}}}';
|
|
setAttrs({'companionSkillsSelection': s});
|
|
weaponsOptions.push({label: getTranslationByKey('unknown-roll'), value: '@{companionWeaponSkill-'+z+'}'});
|
|
populateListOptions({
|
|
elemSelector: '.companionWeaponSkill',
|
|
optionsArray: weaponsOptions
|
|
});
|
|
for (z ; z < 11 ; z++) {
|
|
let a = 'companionWeaponSkill-'+z;
|
|
let j = {};
|
|
j[a] = -3;
|
|
setAttrs(j);
|
|
}
|
|
}
|
|
});
|
|
});
|
|
}
|
|
});
|
|
});
|
|
on('change:companionSkillsSelection', function() {
|
|
getAttrs(['companionSkillsSelection', 'companionAgility', 'companionDodge'], function(v) {
|
|
if (v['companionSkillsSelection'].indexOf('Esquive') > -1) {
|
|
let d = v['companionSkillsSelection'].match(/.*Esquive \(Épreuve\) : \[\[\[\[1d10\!\]\]\+\[\[(\d)\]\]\+.*/);
|
|
d = parseInt(d[1]);
|
|
setAttrs({'companionDodge': d});
|
|
setAttrs({'companionDodgeTotal': dodge(parseV(v, 'companionAgility'), d, 0)});
|
|
setAttrs({'companionDistanceDodge': distance(parseV(v, 'companionAgility'), d)});
|
|
}
|
|
else {
|
|
setAttrs({'companionDodge': -3});
|
|
setAttrs({'companionDodgeTotal': dodge(parseV(v, 'companionAgility'), -3, 0)});
|
|
setAttrs({'companionDistanceDodge': distance(parseV(v, 'companionAgility'), -3)});
|
|
}
|
|
});
|
|
});
|
|
|
|
// Demon
|
|
on('change:demonAgility', function() {
|
|
getAttrs(['demonAgility', 'demonStrength', 'demonPerception', 'demonDodge'], function(v) {
|
|
setAttrs({'demonMelee': melee(parseV(v, 'demonAgility'), parseV(v, 'demonStrength'))});
|
|
setAttrs({'demonAim': aim(parseV(v, 'demonAgility'), parseV(v, 'demonPerception'))});
|
|
setAttrs({'demonInit': init(parseV(v, 'demonAgility'), parseV(v, 'demonPerception'), 0)});
|
|
setAttrs({'demonNaturalDefense': naturalDefense(parseV(v, 'demonAgility'), 0)});
|
|
setAttrs({'demonDodgeTotal': dodge(parseV(v, 'demonAgility'), parseV(v, 'demonDodge', 'skill'), 0)});
|
|
setAttrs({'demonNaturalDefense': naturalDefense(parseV(v, 'demonAgility'), 0)});
|
|
});
|
|
getSectionIDs('repeating_demon-weapons', function(r) {
|
|
if (r.length > 0) {
|
|
_.each(r, function(id) {
|
|
getAttrs(['repeating_demon-weapons_'+id+'_demonWeaponInit', 'demonAgility', 'demonPerception'], function(v) {
|
|
setAttrs({['repeating_demon-weapons_'+id+'_demonWeaponInitTotal']: weaponInit(parseV(v, 'repeating_demon-weapons_'+id+'_demonWeaponInit'), parseV(v, 'demonAgility'), parseV(v, 'demonPerception'), 0)});
|
|
});
|
|
});
|
|
}
|
|
});
|
|
});
|
|
on('change:demonStrength', function() {
|
|
getAttrs(['demonAgility', 'demonStrength'], function(v) {
|
|
setAttrs({'demonMelee': melee(parseV(v, 'demonAgility'), parseV(v, 'demonStrength'))});
|
|
});
|
|
});
|
|
on('change:demonPerception', function() {
|
|
getAttrs(['demonAgility', 'demonPerception'], function(v) {
|
|
setAttrs({'demonAim': aim(parseV(v, 'demonAgility'), parseV(v, 'demonPerception'))});
|
|
setAttrs({'demonInit': init(parseV(v, 'demonAgility'), parseV(v, 'demonPerception'), 0)});
|
|
});
|
|
getSectionIDs('repeating_demon-weapons', function(r) {
|
|
if (r.length > 0) {
|
|
_.each(r, function(id) {
|
|
getAttrs(['repeating_demon-weapons_'+id+'_demonWeaponInit', 'demonAgility', 'demonPerception'], function(v) {
|
|
setAttrs({['repeating_demon-weapons_'+id+'_demonWeaponInitTotal']: weaponInit(parseV(v, 'repeating_demon-weapons_'+id+'_demonWeaponInit'), parseV(v, 'demonAgility'), parseV(v, 'demonPerception'), 0)});
|
|
});
|
|
});
|
|
}
|
|
});
|
|
});
|
|
on('change:demonDensity_max', function() {
|
|
getAttrs(['demonDensity_max'], function(v) {
|
|
setAttrs({'demonStamina': stamina(parseV(v, 'demonDensity_max'))});
|
|
setAttrs({'demonSeriousWoundThreshold': swt(parseV(v, 'demonDensity_max'))});
|
|
setAttrs({'demonCriticalWoundThreshold': cwt(parseV(v, 'demonDensity_max'))});
|
|
});
|
|
});
|
|
on('change:demonMaxLoad', function() {
|
|
getAttrs(['demonMaxLoad'], function(v) {
|
|
setAttrs({'demonHalfLoad': halfLoad(parseV(v, 'demonMaxLoad'))});
|
|
setAttrs({'demonDailyLoad': dailyLoad(parseV(v, 'demonMaxLoad'))});
|
|
});
|
|
});
|
|
on('change:demonCharisma change:demonCreativity', function() {
|
|
getAttrs(['demonCharisma', 'demonCreativity'], function(v) {
|
|
setAttrs({'demonArt': art(parseV(v, 'demonCharisma'), parseV(v, 'demonCreativity'))});
|
|
});
|
|
});
|
|
on('change:repeating_demon-weapons:demonWeaponInit', function() {
|
|
getAttrs(['repeating_demon-weapons_demonWeaponInit', 'demonAgility', 'demonPerception'], function(v) {
|
|
setAttrs({'repeating_demon-weapons_demonWeaponInitTotal': weaponInit(parseV(v, 'repeating_demon-weapons_demonWeaponInit'), parseV(v, 'demonAgility'), parseV(v, 'demonPerception'), 0)});
|
|
});
|
|
});
|
|
on('change:demonWeaponSkill-1 change:demonWeaponSkill-2 change:demonWeaponSkill-3 change:demonWeaponSkill-4 change:demonWeaponSkill-5 change:demonWeaponSkill-6 change:demonWeaponSkill-7 change:demonWeaponSkill-8 change:demonWeaponSkill-9 change:demonWeaponSkill-10', function() {
|
|
getSectionIDs('repeating_demon-weapons', function(r) {
|
|
if (r.length > 0) {
|
|
_.each(r, function(id) {
|
|
getAttrs(['repeating_demon-weapons_'+id+'_demonWeaponSkill', 'repeating_demon-weapons_'+id+'_demonAimOrNot', 'repeating_demon-weapons_'+id+'_demonWeaponAttack', 'repeating_demon-weapons_'+id+'_demonWeaponDefense', 'repeating_demon-weapons_'+id+'_demonWeaponStyle', 'demonMelee', 'demonAim', 'demonWeaponSkill-1', 'demonWeaponSkill-2', 'demonWeaponSkill-3', 'demonWeaponSkill-4', 'demonWeaponSkill-5', 'demonWeaponSkill-6', 'demonWeaponSkill-7', 'demonWeaponSkill-8', 'demonWeaponSkill-9', 'demonWeaponSkill-10'], function(v) {
|
|
let s = parseV(v, 'repeating_demon-weapons_'+id+'_demonWeaponSkill', 'str').replace(/^@{(.*)}$/, "$1").split('-')[1];
|
|
let ws = parseV(v, 'demonWeaponSkill-'+s);
|
|
setAttrs({['repeating_demon-weapons_'+id+'_demonWeaponAttackTotal']: weaponScore(ws, parseV(v, 'repeating_demon-weapons_'+id+'_demonWeaponStyle', 'str'), parseV(v, 'repeating_demon-weapons_'+id+'_demonAimOrNot'), parseV(v, 'demonMelee'), parseV(v, 'demonAim'), parseV(v, 'repeating_demon-weapons_'+id+'_demonWeaponAttack'), 0)});
|
|
setAttrs({['repeating_demon-weapons_'+id+'_demonWeaponDefenseTotal']: weaponScore(ws, parseV(v, 'repeating_demon-weapons_'+id+'_demonWeaponStyle', 'str'), 0, parseV(v, 'demonMelee'), 0, parseV(v, 'repeating_demon-weapons_'+id+'_demonWeaponDefense'), 0)});
|
|
});
|
|
});
|
|
}
|
|
});
|
|
});
|
|
on('change:repeating_demon-weapons:demonWeaponAttack change:repeating_demon-weapons:demonWeaponSkill change:repeating_demon-weapons:demonAimOrNot', function() {
|
|
getAttrs(['repeating_demon-weapons_demonWeaponSkill', 'repeating_demon-weapons_demonAimOrNot', 'repeating_demon-weapons_demonWeaponAttack', 'demonWeaponStyle', 'demonMelee', 'demonAim', 'demonWeaponSkill-1', 'demonWeaponSkill-2', 'demonWeaponSkill-3', 'demonWeaponSkill-4', 'demonWeaponSkill-5', 'demonWeaponSkill-6', 'demonWeaponSkill-7', 'demonWeaponSkill-8', 'demonWeaponSkill-9', 'demonWeaponSkill-10'], function(v) {
|
|
let s = parseV(v, 'repeating_demon-weapons_demonWeaponSkill', 'str').replace(/^@{(.*)}$/, "$1").split('-')[1];
|
|
let ws = parseV(v, 'demonWeaponSkill-'+s);
|
|
setAttrs({'repeating_demon-weapons_demonWeaponAttackTotal': weaponScore(ws, parseV(v, 'repeating_demon-weapons_demonWeaponStyle', 'str'), parseV(v, 'repeating_demon-weapons_demonAimOrNot'), parseV(v, 'demonMelee'), parseV(v, 'demonAim'), parseV(v, 'repeating_demon-weapons_demonWeaponAttack'), 0)});
|
|
});
|
|
});
|
|
on('change:repeating_demon-weapons:demonWeaponDefense change:repeating_demon-weapons:demonWeaponSkill', function() {
|
|
getAttrs(['repeating_demon-weapons_demonWeaponDefense', 'repeating_demon-weapons_demonWeaponSkill', 'repeating_demon-weapons_demonWeaponStyle', 'demonMelee', 'demonWeaponSkill-1', 'demonWeaponSkill-2', 'demonWeaponSkill-3', 'demonWeaponSkill-4', 'demonWeaponSkill-5', 'demonWeaponSkill-6', 'demonWeaponSkill-7', 'demonWeaponSkill-8', 'demonWeaponSkill-9', 'demonWeaponSkill-10'], function(v) {
|
|
let s = parseV(v, 'repeating_demon-weapons_demonWeaponSkill', 'str').replace(/^@{(.*)}$/, "$1").split('-')[1];
|
|
let ws = parseV(v, 'demonWeaponSkill-'+s);
|
|
setAttrs({'repeating_demon-weapons_demonWeaponDefenseTotal': weaponScore(ws, parseV(v, 'repeating_demon-weapons_demonWeaponStyle', 'str'), 0, parseV(v, 'demonMelee'), 0, parseV(v, 'repeating_demon-weapons_demonWeaponDefense'), 0)});
|
|
});
|
|
});
|
|
on('change:demonMelee', function() {
|
|
getSectionIDs('repeating_demon-weapons', function(r) {
|
|
if (r.length > 0) {
|
|
_.each(r, function(id) {
|
|
getAttrs(['repeating_demon-weapons_'+id+'_demonWeaponSkill', 'repeating_demon-weapons_'+id+'_demonAimOrNot', 'repeating_demon-weapons_'+id+'_demonWeaponAttack', 'repeating_demon-weapons_'+id+'_demonWeaponDefense', 'repeating_demon-weapons_'+id+'_demonWeaponStyle', 'demonMelee', 'demonWeaponSkill-1', 'demonWeaponSkill-2', 'demonWeaponSkill-3', 'demonWeaponSkill-4', 'demonWeaponSkill-5', 'demonWeaponSkill-6', 'demonWeaponSkill-7', 'demonWeaponSkill-8', 'demonWeaponSkill-9', 'demonWeaponSkill-10'], function(v) {
|
|
let s = parseV(v, 'repeating_demon-weapons_'+id+'_demonWeaponSkill', 'str').replace(/^@{(.*)}$/, "$1").split('-')[1];
|
|
let ws = parseV(v, 'demonWeaponSkill-'+s);
|
|
if (parseV(v, 'repeating_demon-weapons_'+id+'_demonAimOrNot') >= 0) {
|
|
setAttrs({['repeating_demon-weapons_'+id+'_demonWeaponAttackTotal']: weaponScore(ws, parseV(v, 'repeating_demon-weapons_'+id+'_demonWeaponStyle', 'str'), 0, parseV(v, 'demonMelee'), 0, parseV(v, 'repeating_demon-weapons_'+id+'_demonWeaponAttack'), 0)});
|
|
setAttrs({['repeating_demon-weapons_'+id+'_demonWeaponDefenseTotal']: weaponScore(ws, '', 0, parseV(v, 'demonMelee'), 0, parseV(v, 'repeating_demon-weapons_'+id+'_demonWeaponDefense'), 0)});
|
|
}
|
|
});
|
|
});
|
|
}
|
|
});
|
|
});
|
|
on('change:demonAim', function() {
|
|
getSectionIDs('repeating_demon-weapons', function(r) {
|
|
if (r.length > 0) {
|
|
_.each(r, function(id) {
|
|
getAttrs(['repeating_demon-weapons_'+id+'_demonWeaponSkill', 'repeating_demon-weapons_'+id+'_demonAimOrNot', 'repeating_demon-weapons_'+id+'_demonWeaponAttack', 'demonAim', 'demonWeaponSkill-1', 'demonWeaponSkill-2', 'demonWeaponSkill-3', 'demonWeaponSkill-4', 'demonWeaponSkill-5', 'demonWeaponSkill-6', 'demonWeaponSkill-7', 'demonWeaponSkill-8', 'demonWeaponSkill-9', 'demonWeaponSkill-10'], function(v) {
|
|
let s = parseV(v, 'repeating_demon-weapons_'+id+'_demonWeaponSkill', 'str').replace(/^@{(.*)}$/, "$1").split('-')[1];
|
|
let ws = parseV(v, 'demonWeaponSkill-'+s);
|
|
if (parseV(v, 'repeating_demon-weapons_'+id+'_demonAimOrNot') < 0) setAttrs({['repeating_demon-weapons_'+id+'_demonWeaponAttackTotal']: weaponScore(ws, 'missile', -1, 0, parseV(v, 'demonAim'), parseV(v, 'repeating_demon-weapons_'+id+'_demonWeaponAttack'), 0)});
|
|
});
|
|
});
|
|
}
|
|
});
|
|
});
|
|
on('change:repeating_demon-weapons:demonWeaponDamage change:repeating_demon-weapons:demonAimOrNot', function() {
|
|
getAttrs(['repeating_demon-weapons_demonWeaponDamage', 'demonDamageBonus', 'repeating_demon-weapons_demonAimOrNot'], function(v) {
|
|
setAttrs({'repeating_demon-weapons_demonWeaponDDB': weaponDDB(parseV(v, 'repeating_demon-weapons_demonWeaponDamage'), parseV(v, 'repeating_demon-weapons_demonAimOrNot'), parseV(v, 'demonDamageBonus'))});
|
|
});
|
|
});
|
|
on('change:demonDamageBonus', function() {
|
|
getSectionIDs('repeating_demon-weapons', function(r) {
|
|
if (r.length > 0) {
|
|
_.each(r, function(id) {
|
|
getAttrs(['repeating_demon-weapons_'+id+'_demonWeaponDamage', 'repeating_demon-weapons_'+id+'_demonAimOrNot', 'demonDamageBonus'], function(v) {
|
|
setAttrs({['repeating_demon-weapons_'+id+'_demonWeaponDDB']: weaponDDB(parseV(v, 'repeating_demon-weapons_'+id+'_demonWeaponDamage'), parseV(v, 'repeating_demon-weapons_'+id+'_demonAimOrNot'), parseV(v, 'demonDamageBonus'))});
|
|
});
|
|
});
|
|
}
|
|
});
|
|
});
|
|
on('change:demonSeriousWound', function() {
|
|
getAttrs(['demonSeriousWound'], function(v) {
|
|
setAttrs({'demonSeriousWoundPenalty': swp(parseV(v, 'demonSeriousWound'))});
|
|
});
|
|
});
|
|
on('change:repeating_demon-weapons:demonWeaponStyle', function() {
|
|
getAttrs(['repeating_demon-weapons_demonWeaponStyle', 'demonDamageBonus'], function(v) {
|
|
setAttrs({'repeating_demon-weapons_demonAimOrNot': aimOrNot(parseV(v, 'repeating_demon-weapons_demonWeaponStyle', 'str'), parseV(v, 'demonDamageBonus'))});
|
|
})
|
|
});
|
|
on('change:repeating_demon-skills remove:repeating_demon-skills', function() {
|
|
getSectionIDs('repeating_demon-skills', function(r) {
|
|
let s = '?{@{skillRoll}|';
|
|
let z = 1;
|
|
let dodgeRegExp = new RegExp('^'+getTranslationByKey('dodge-option').split(' ')[0]+'.*$');
|
|
let weaponsRegExp = new RegExp('^'+getTranslationByKey('weapons-option').split(' ')[0]+'.*$');
|
|
let weaponsOptions = [];
|
|
if (r.length > 0) {
|
|
_.each(r, function(id, i) {
|
|
getAttrs(['repeating_demon-skills_'+id+'_demonSkillName', 'repeating_demon-skills_'+id+'_demonSkillBranch', 'repeating_demon-skills_'+id+'_demonSkillScore'], function(v) {
|
|
let name = parseV(v, 'repeating_demon-skills_'+id+'_demonSkillName', 'str');
|
|
let branch = parseV(v, 'repeating_demon-skills_'+id+'_demonSkillBranch', 'str');
|
|
let skill = parseV(v, 'repeating_demon-skills_'+id+'_demonSkillScore');
|
|
if (branch === '' || branch === undefined) {
|
|
let b = 'repeating_demon-skills_'+id+'_demonSkill';
|
|
let k = {};
|
|
k[b] = name;
|
|
setAttrs(k);
|
|
s += name+', '+'&{template:agone-skills} {{name=@{character_name}}} {{Skill='+name+' : [[[[1d10!]]+[['+skill+']]+?{@{attributeRoll}|'+
|
|
'@{agilityRoll},[[@{demonAgility}]]+[[?{@{bonusPenaltyRoll}&#124;@{demonArmorAGIPenalty}&#125;]]|'+
|
|
'@{strengthRoll},[[@{demonStrength}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]|'+
|
|
'@{perceptionRoll},[[@{demonPerception}]]+[[?{@{bonusPenaltyRoll}&#124;@{demonArmorPERPenalty}&#125;]]|'+
|
|
'@{staminaRoll},[[@{demonStamina}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]|'+
|
|
'@{intelligenceRoll},[[@{demonIntelligence}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]|'+
|
|
'@{willRoll},[[@{demonWill}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]|'+
|
|
'@{charismaRoll},[[@{demonCharisma}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]|'+
|
|
'@{creativityRoll},[[@{demonCreativity}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]|'+
|
|
'@{meleeRoll},[[@{demonMelee}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]|'+
|
|
'@{aimRoll},[[@{demonAim}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]}]]}} '+
|
|
'{{Dice=@{rollRoll}: $[[0]]}} {{Sk=@{skillRoll}: $[[1]]}} {{Attr=@{attributeRoll} : $[[2]]}} {{AspBonus=@{aspectBonusRoll}: N/A}} {{BonPen=@{bonusPenaltyRoll}: $[[3]]}}|';
|
|
if (dodgeRegExp.test(name)) setAttrs({'demonDodge': skill});
|
|
} else {
|
|
let b = 'repeating_demon-skills_'+id+'_demonSkill';
|
|
let k = {};
|
|
k[b] = branch;
|
|
setAttrs(k);
|
|
s += name+' ['+branch+']'+', '+'&{template:agone-skills} {{name=@{character_name}}} {{Skill='+branch+' : [[[[1d10!]]+[['+skill+']]+?{@{attributeRoll}|'+
|
|
'@{agilityRoll},[[@{demonAgility}]]+[[?{@{bonusPenaltyRoll}&#124;@{demonArmorAGIPenalty}&#125;]]|'+
|
|
'@{strengthRoll},[[@{demonStrength}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]|'+
|
|
'@{perceptionRoll},[[@{demonPerception}]]+[[?{@{bonusPenaltyRoll}&#124;@{demonArmorPERPenalty}&#125;]]|'+
|
|
'@{staminaRoll},[[@{demonStamina}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]|'+
|
|
'@{intelligenceRoll},[[@{demonIntelligence}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]|'+
|
|
'@{willRoll},[[@{demonWill}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]|'+
|
|
'@{charismaRoll},[[@{demonCharisma}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]|'+
|
|
'@{creativityRoll},[[@{demonCreativity}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]|'+
|
|
'@{meleeRoll},[[@{demonMelee}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]|'+
|
|
'@{aimRoll},[[@{demonAim}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]}]]}} '+
|
|
'{{Dice=@{rollRoll}: $[[0]]}} {{Sk=@{skillRoll}: $[[1]]}} {{Attr=@{attributeRoll} : $[[2]]}} {{AspBonus=@{aspectBonusRoll}: N/A}} {{BonPen=@{bonusPenaltyRoll}: $[[3]]}}|';
|
|
if (weaponsRegExp.test(name)) {
|
|
weaponsOptions.push({label: branch || getTranslationByKey('weapons'+z+'-option'), value: '@{demonWeaponSkill-'+z+'}'});
|
|
let a = 'demonWeaponSkill-'+z;
|
|
let j = {};
|
|
j[a] = skill;
|
|
setAttrs(j);
|
|
z += 1;
|
|
}
|
|
}
|
|
if (i == r.length - 1) {
|
|
s += '@{unknownRoll}, &{template:agone-skills} {{name=@{character_name}}} {{Skill=?{@{skillNameRoll}} : [[[[1d10!]]+[[-3]]+?{@{attributeRoll}|'+
|
|
'@{agilityRoll},[[@{demonAgility}]]+[[?{@{bonusPenaltyRoll}&#124;@{demonArmorAGIPenalty}&#125;]]|'+
|
|
'@{strengthRoll},[[@{demonStrength}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]|'+
|
|
'@{perceptionRoll},[[@{demonPerception}]]+[[?{@{bonusPenaltyRoll}&#124;@{demonArmorPERPenalty}&#125;]]|'+
|
|
'@{staminaRoll},[[@{demonStamina}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]|'+
|
|
'@{intelligenceRoll},[[@{demonIntelligence}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]|'+
|
|
'@{willRoll},[[@{demonWill}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]|'+
|
|
'@{charismaRoll},[[@{demonCharisma}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]|'+
|
|
'@{creativityRoll},[[@{demonCreativity}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]|'+
|
|
'@{meleeRoll},[[@{demonMelee}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]|'+
|
|
'@{aimRoll},[[@{demonAim}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]}]]}} '+
|
|
'{{Dice=@{rollRoll}: $[[0]]}} {{Sk=@{skillRoll}: $[[1]]}} {{Attr=@{attributeRoll} : $[[2]]}} {{AspBonus=@{aspectBonusRoll}: N/A}} {{BonPen=@{bonusPenaltyRoll}: $[[3]]}}}';
|
|
setAttrs({'demonSkillsSelection': s});
|
|
weaponsOptions.push({label: getTranslationByKey('unknown-roll'), value: '@{demonWeaponSkill-'+z+'}'});
|
|
populateListOptions({
|
|
elemSelector: '.demonWeaponSkill',
|
|
optionsArray: weaponsOptions
|
|
});
|
|
for (z ; z < 11 ; z++) {
|
|
let a = 'demonWeaponSkill-'+z;
|
|
let j = {};
|
|
j[a] = -3;
|
|
setAttrs(j);
|
|
}
|
|
}
|
|
});
|
|
});
|
|
}
|
|
});
|
|
});
|
|
on('change:demonSkillsSelection', function() {
|
|
getAttrs(['demonSkillsSelection', 'demonAgility', 'demonDodge'], function(v) {
|
|
if (v['demonSkillsSelection'].indexOf('Esquive') > -1) {
|
|
let d = v['demonSkillsSelection'].match(/.*Esquive \(Épreuve\) : \[\[\[\[1d10\!\]\]\+\[\[(\d)\]\]\+.*/);
|
|
d = parseInt(d[1]);
|
|
setAttrs({'demonDodge': d});
|
|
setAttrs({'demonDodgeTotal': dodge(parseV(v, 'demonAgility'), d, 0)});
|
|
setAttrs({'demonDistanceDodge': distance(parseV(v, 'demonAgility'), d)});
|
|
}
|
|
else {
|
|
setAttrs({'demonDodge': -3});
|
|
setAttrs({'demonDodgeTotal': dodge(parseV(v, 'demonAgility'), -3, 0)});
|
|
setAttrs({'demonDistanceDodge': distance(parseV(v, 'demonAgility'), -3)});
|
|
}
|
|
});
|
|
});
|
|
|
|
|
|
// NPC
|
|
on('change:npcBody change:npcDarkBody', function() {
|
|
getAttrs(['npcBody', 'npcDarkBody', 'npcSpirit', 'npcDarkSpirit', 'npcSoul', 'npcDarkSoul', 'npcFlame', 'npcDarkFlame'], function(v) {
|
|
setAttrs({'npcBodyBonus': bodyBonus(parseV(v, 'npcBody'), parseV(v, 'npcDarkBody'), damned(parseV(v, 'npcFlame'), parseV(v, 'npcDarkFlame')))});
|
|
setAttrs({'npcFlame': flame(parseV(v, 'npcBody'), parseV(v, 'npcSpirit'), parseV(v, 'npcSoul'))});
|
|
setAttrs({'npcDarkFlame': flame(parseV(v, 'npcDarkBody'), parseV(v, 'npcDarkSpirit'), parseV(v, 'npcDarkSoul'))});
|
|
});
|
|
});
|
|
on('change:npcSpirit change:npcDarkSpirit', function() {
|
|
getAttrs(['npcBody', 'npcDarkBody', 'npcSpirit', 'npcDarkSpirit', 'npcSoul', 'npcDarkSoul', 'npcFlame', 'npcDarkFlame'], function(v) {
|
|
setAttrs({'npcSpiritBonus': spiritBonus(parseV(v, 'npcSpirit'), parseV(v, 'npcDarkSpirit'), damned(parseV(v, 'npcFlame'), parseV(v, 'npcDarkFlame')))});
|
|
setAttrs({'npcFlame': flame(parseV(v, 'npcBody'), parseV(v, 'npcSpirit'), parseV(v, 'npcSoul'))});
|
|
setAttrs({'npcDarkFlame': flame(parseV(v, 'npcDarkBody'), parseV(v, 'npcDarkSpirit'), parseV(v, 'npcDarkSoul'))});
|
|
});
|
|
});
|
|
on('change:npcSoul change:npcDarkSoul', function() {
|
|
getAttrs(['npcBody', 'npcDarkBody', 'npcSpirit', 'npcDarkSpirit', 'npcSoul', 'npcDarkSoul', 'npcFlame', 'npcDarkFlame'], function(v) {
|
|
setAttrs({'npcSoulBonus': soulBonus(parseV(v, 'npcSoul'), parseV(v, 'npcDarkSoul'), damned(parseV(v, 'npcFlame'), parseV(v, 'npcDarkFlame')))});
|
|
setAttrs({'npcFlame': flame(parseV(v, 'npcBody'), parseV(v, 'npcSpirit'), parseV(v, 'npcSoul'))});
|
|
setAttrs({'npcDarkFlame': flame(parseV(v, 'npcDarkBody'), parseV(v, 'npcDarkSpirit'), parseV(v, 'npcDarkSoul'))});
|
|
});
|
|
});
|
|
on('change:npcFlame change:npcDarkFlame', function() {
|
|
getAttrs(['npcBody', 'npcDarkBody', 'npcSpirit', 'npcDarkSpirit', 'npcSoul', 'npcDarkSoul', 'npcFlame', 'npcDarkFlame'], function(v) {
|
|
setAttrs({'npcFP_max': fortunePoints(parseV(v, 'npcFlame'), parseV(v, 'npcDarkFlame'), damned(parseV(v, 'npcFlame'), parseV(v, 'npcDarkFlame')))});
|
|
setAttrs({'npcBodyBonus': bodyBonus(parseV(v, 'npcBody'), parseV(v, 'npcDarkBody'), damned(parseV(v, 'npcFlame'), parseV(v, 'npcDarkFlame')))});
|
|
setAttrs({'npcSpiritBonus': spiritBonus(parseV(v, 'npcSpirit'), parseV(v, 'npcDarkSpirit'), damned(parseV(v, 'npcFlame'), parseV(v, 'npcDarkFlame')))});
|
|
setAttrs({'npcSoulBonus': soulBonus(parseV(v, 'npcSoul'), parseV(v, 'npcDarkSoul'), damned(parseV(v, 'npcFlame'), parseV(v, 'npcDarkFlame')))});
|
|
});
|
|
});
|
|
on('change:pcMaxLoad', function() {
|
|
getAttrs(['pcMaxLoad', 'pcLoad'], function(v) {
|
|
if (parseV(v, 'pcLoad') === 0) {
|
|
setAttrs({'pcLoad': 0});
|
|
setAttrs({'pcLoadPenalty': 0});
|
|
}
|
|
setAttrs({'pcHalfLoad': halfLoad(parseV(v, 'pcMaxLoad'))});
|
|
setAttrs({'pcDailyLoad': dailyLoad(parseV(v, 'pcMaxLoad'))});
|
|
});
|
|
});
|
|
on('change:npcFP_max', function() {
|
|
getAttrs(['npcFP', 'npcFP_max'], function(v) {
|
|
if (parseV(v, 'npcFP') === 0) setAttrs({'npcFP': parseV(v, 'npcFP_max')});
|
|
});
|
|
})
|
|
on('change:npcHP_max', function() {
|
|
getAttrs(['npcHP', 'npcHP_max', 'npcSeriousWoundPenalty'], function(v) {
|
|
if (parseV(v, 'npcSeriousWoundPenalty') === 0) setAttrs({'npcSeriousWoundPenalty': 0});
|
|
setAttrs({'npcSeriousWoundThreshold': swt(parseV(v, 'npcHP_max'))});
|
|
setAttrs({'npcCriticalWoundThreshold': cwt(parseV(v, 'npcHP_max'))});
|
|
getAttrs(['npcHP_max'], function(w) {
|
|
if (parseV(v, 'npcHP') === 0) setAttrs({'npcHP': parseV(w, 'npcHP_max')});
|
|
});
|
|
});
|
|
});
|
|
on('change:npcMaxLoad', function() {
|
|
getAttrs(['npcMaxLoad'], function(v) {
|
|
setAttrs({'npcHalfLoad': halfLoad(parseV(v, 'npcMaxLoad'))});
|
|
setAttrs({'npcDailyLoad': dailyLoad(parseV(v, 'npcMaxLoad'))});
|
|
});
|
|
});
|
|
on('change:npcCharisma change:npcCreativity', function() {
|
|
getAttrs(['npcCharisma', 'npcCreativity'], function(v) {
|
|
setAttrs({'npcArt': art(parseV(v, 'npcCharisma'), parseV(v, 'npcCreativity'))});
|
|
});
|
|
})
|
|
on('change:npcDarkness', function() {
|
|
getAttrs(['npcDarkness'], function(v) {
|
|
setAttrs({'npcBlackness': blackness(parseV(v, 'npcDarkness'))});
|
|
});
|
|
});
|
|
on('change:npcAgility', function() {
|
|
getAttrs(['npcAgility', 'npcStrength', 'npcPerception', 'npcBodyBonus', 'npcDodge'], function(v) {
|
|
setAttrs({'npcMelee': melee(parseV(v, 'npcAgility'), parseV(v, 'npcStrength'))});
|
|
setAttrs({'npcAim': aim(parseV(v, 'npcAgility'), parseV(v, 'npcPerception'))});
|
|
let i = init(parseV(v, 'npcAgility'), parseV(v, 'npcPerception'), parseV(v, 'npcBodyBonus'));
|
|
setAttrs({'npcInit': i});
|
|
setAttrs({'npcMagicInit': i+10});
|
|
setAttrs({'npcDodgeTotal': dodge(parseV(v, 'npcAgility'), parseV(v, 'npcDodge', 'skill'), parseV(v, 'npcBodyBonus'))});
|
|
setAttrs({'npcDistanceDodge': distance(parseV(v, 'npcAgility'), parseV(v, 'npcDodge', 'skill'))});
|
|
setAttrs({'npcNaturalDefense': naturalDefense(parseV(v, 'npcAgility'), parseV(v, 'npcBodyBonus'))});
|
|
});
|
|
getSectionIDs('repeating_npc-weapons', function(r) {
|
|
if (r.length > 0) {
|
|
_.each(r, function(id) {
|
|
getAttrs(['repeating_npc-weapons_'+id+'_npcWeaponInit', 'npcAgility', 'npcPerception', 'npcBodyBonus'], function(v) {
|
|
setAttrs({['repeating_npc-weapons_'+id+'_npcWeaponInitTotal']: weaponInit(parseV(v, 'repeating_npc-weapons_'+id+'_npcWeaponInit'), parseV(v, 'npcAgility'), parseV(v, 'npcPerception'), parseV(v, 'npcBodyBonus'))});
|
|
});
|
|
});
|
|
}
|
|
});
|
|
});
|
|
on('change:npcPerception', function() {
|
|
getAttrs(['npcAgility', 'npcPerception', 'npcBodyBonus'], function(v) {
|
|
setAttrs({'npcAim': aim(parseV(v, 'npcAgility'), parseV(v, 'npcPerception'))});
|
|
let i = init(parseV(v, 'npcAgility'), parseV(v, 'npcPerception'), parseV(v, 'npcBodyBonus'));
|
|
setAttrs({'npcInit': i});
|
|
setAttrs({'npcMagicInit': i+10});
|
|
getSectionIDs('repeating_npc-weapons', function(r) {
|
|
if (r.length > 0) {
|
|
_.each(r, function(id) {
|
|
getAttrs(['repeating_npc-weapons_'+id+'_npcWeaponInit', 'npcAgility', 'npcPerception', 'npcBodyBonus'], function(v) {
|
|
setAttrs({['repeating_npc-weapons_'+id+'_npcWeaponInitTotal']: weaponInit(parseV(v, 'repeating_npc-weapons_'+id+'_npcWeaponInit'), parseV(v, 'npcAgility'), parseV(v, 'npcPerception'), parseV(v, 'npcBodyBonus'))});
|
|
});
|
|
});
|
|
}
|
|
});
|
|
});
|
|
});
|
|
on('change:npcStrength', function() {
|
|
getAttrs(['npcAgility', 'npcStrength'], function(v) {
|
|
setAttrs({'npcMelee': melee(parseV(v, 'npcAgility'), parseV(v, 'npcStrength'))});
|
|
});
|
|
});
|
|
on('change:npcBodyBonus', function() {
|
|
getAttrs(['npcAgility', 'npcPerception', 'npcDodge', 'npcBodyBonus'], function(v) {
|
|
let i = init(parseV(v, 'npcAgility'), parseV(v, 'npcPerception'), parseV(v, 'npcBodyBonus'));
|
|
setAttrs({'npcInit': i});
|
|
setAttrs({'npcMagicInit': i+10});
|
|
setAttrs({'npcDodgeTotal': dodge(parseV(v, 'npcAgility'), parseV(v, 'npcDodge', 'skill'), parseV(v, 'npcBodyBonus'))});
|
|
setAttrs({'npcDistanceDodge': distance(parseV(v, 'npcAgility'), parseV(v, 'npcDodge', 'skill'))});
|
|
});
|
|
getSectionIDs('repeating_npc-weapons', function(r) {
|
|
if (r.length > 0) {
|
|
_.each(r, function(id) {
|
|
getAttrs(['repeating_npc-weapons_'+id+'_npcWeaponInit', 'repeating_npc-weapons_'+id+'_npcAimOrNot', 'repeating_npc-weapons_'+id+'_npcWeaponSkill', 'repeating_npc-weapons_'+id+'_npcWeaponAttack', 'repeating_npc-weapons_'+id+'_npcWeaponDefense', 'repeating_npc-weapons_'+id+'_npcWeaponStyle', 'npcAgility', 'npcPerception', 'npcBodyBonus', 'npcMelee', 'npcAim', 'npcWeaponSkill-1', 'npcWeaponSkill-2', 'npcWeaponSkill-3', 'npcWeaponSkill-4', 'npcWeaponSkill-5', 'npcWeaponSkill-6', 'npcWeaponSkill-7', 'npcWeaponSkill-8', 'npcWeaponSkill-9', 'npcWeaponSkill-10'], function(v) {
|
|
let s = parseV(v, 'repeating_npc-weapons_'+id+'_npcWeaponSkill', 'str').replace(/^@{(.*)}$/, "$1").split('-')[1];
|
|
let ws = parseV(v, 'npcWeaponSkill-'+s);
|
|
setAttrs({['repeating_npc-weapons_'+id+'_npcWeaponInitTotal']: weaponInit(parseV(v, 'repeating_npc-weapons_'+id+'_npcWeaponInit'), parseV(v, 'npcAgility'), parseV(v, 'npcPerception'), parseV(v, 'npcBodyBonus'))});
|
|
setAttrs({['repeating_npc-weapons_'+id+'_npcWeaponAttackTotal']: weaponScore(ws, parseV(v, 'repeating_npc-weapons_'+id+'_npcWeaponStyle', 'str'), parseV(v, 'repeating_npc-weapons_'+id+'_npcAimOrNot'), parseV(v, 'npcMelee'), parseV(v, 'npcAim'), parseV(v, 'repeating_npc-weapons_'+id+'_npcWeaponAttack'), parseV(v, 'npcBodyBonus'))});
|
|
setAttrs({['repeating_npc-weapons_'+id+'_npcWeaponDefenseTotal']: weaponScore(ws, '', 0, parseV(v, 'npcMelee'), 0, parseV(v, 'repeating_npc-weapons_'+id+'_npcWeaponDefense'), parseV(v, 'npcBodyBonus'))});
|
|
});
|
|
});
|
|
}
|
|
});
|
|
});
|
|
on('change:npcMelee', function() {
|
|
getSectionIDs('repeating_npc-weapons', function(r) {
|
|
if (r.length > 0) {
|
|
_.each(r, function(id) {
|
|
getAttrs(['repeating_npc-weapons_'+id+'_npcWeaponSkill', 'repeating_npc-weapons_'+id+'_npcAimOrNot', 'repeating_npc-weapons_'+id+'_npcWeaponAttack', 'repeating_npc-weapons_'+id+'_npcWeaponDefense', 'repeating_npc-weapons_'+id+'_npcWeaponStyle', 'npcBodyBonus', 'npcMelee', 'npcWeaponSkill-1', 'npcWeaponSkill-2', 'npcWeaponSkill-3', 'npcWeaponSkill-4', 'npcWeaponSkill-5', 'npcWeaponSkill-6', 'npcWeaponSkill-7', 'npcWeaponSkill-8', 'npcWeaponSkill-9', 'npcWeaponSkill-10'], function(v) {
|
|
let s = parseV(v, 'repeating_npc-weapons_'+id+'_npcWeaponSkill', 'str').replace(/^@{(.*)}$/, "$1").split('-')[1];
|
|
let ws = parseV(v, 'npcWeaponSkill-'+s);
|
|
if (parseV(v, 'repeating_npc-weapons_'+id+'_npcAimOrNot') >= 0) {
|
|
setAttrs({['repeating_npc-weapons_'+id+'_npcWeaponAttackTotal']: weaponScore(ws, parseV(v, 'repeating_npc-weapons_'+id+'_npcWeaponStyle', 'str'), 0, parseV(v, 'npcMelee'), 0, parseV(v, 'repeating_npc-weapons_'+id+'_npcWeaponAttack'), parseV(v, 'npcBodyBonus'))});
|
|
setAttrs({['repeating_npc-weapons_'+id+'_npcWeaponDefenseTotal']: weaponScore(ws, '', 0, parseV(v, 'npcMelee'), 0, parseV(v, 'repeating_npc-weapons_'+id+'_npcWeaponDefense'), parseV(v, 'npcBodyBonus'))});
|
|
}
|
|
});
|
|
});
|
|
}
|
|
});
|
|
});
|
|
on('change:npcAim', function() {
|
|
getSectionIDs('repeating_npc-weapons', function(r) {
|
|
if (r.length > 0) {
|
|
_.each(r, function(id) {
|
|
getAttrs(['repeating_npc-weapons_'+id+'_npcWeaponSkill', 'repeating_npc-weapons_'+id+'_npcAimOrNot', 'repeating_npc-weapons_'+id+'_npcWeaponAttack', 'npcBodyBonus', 'npcAim', 'npcWeaponSkill-1', 'npcWeaponSkill-2', 'npcWeaponSkill-3', 'npcWeaponSkill-4', 'npcWeaponSkill-5', 'npcWeaponSkill-6', 'npcWeaponSkill-7', 'npcWeaponSkill-8', 'npcWeaponSkill-9', 'npcWeaponSkill-10'], function(v) {
|
|
let s = parseV(v, 'repeating_npc-weapons_'+id+'_npcWeaponSkill', 'str').replace(/^@{(.*)}$/, "$1").split('-')[1];
|
|
let ws = parseV(v, 'npcWeaponSkill-'+s);
|
|
if (parseV(v, 'repeating_npc-weapons_'+id+'_npcAimOrNot') < 0) setAttrs({['repeating_npc-weapons_'+id+'_npcWeaponAttackTotal']: weaponScore(ws, 'missile', -1, 0, parseV(v, 'npcAim'), parseV(v, 'repeating_npc-weapons_'+id+'_npcWeaponAttack'), parseV(v, 'npcBodyBonus'))});
|
|
});
|
|
});
|
|
}
|
|
});
|
|
});
|
|
on('change:npcDamageBonus', function() {
|
|
getSectionIDs('repeating_npc-weapons', function(r) {
|
|
if (r.length > 0) {
|
|
_.each(r, function(id) {
|
|
getAttrs(['repeating_npc-weapons_'+id+'_npcWeaponDamage', 'repeating_npc-weapons_'+id+'_npcAimOrNot', 'npcDamageBonus'], function(v) {
|
|
setAttrs({['repeating_npc-weapons_'+id+'_npcWeaponDDB']: weaponDDB(parseV(v, 'repeating_npc-weapons_'+id+'_npcWeaponDamage'), parseV(v, 'repeating_npc-weapons_'+id+'_npcAimOrNot'), parseV(v, 'npcDamageBonus'))});
|
|
});
|
|
});
|
|
}
|
|
});
|
|
});
|
|
on('change:repeating_npc-weapons:npcWeaponInit', function () {
|
|
getAttrs(['repeating_npc-weapons_npcWeaponInit', 'npcAgility', 'npcPerception', 'npcBodyBonus'], function(v) {
|
|
setAttrs({'repeating_npc-weapons_npcWeaponInitTotal': parseV(v, 'repeating_npc-weapons_npcWeaponInit')+init(parseV(v, 'npcAgility'), parseV(v, 'npcPerception'), parseV(v, 'npcBodyBonus'))});
|
|
});
|
|
});
|
|
on('change:npcWeaponSkill-1 change:npcWeaponSkill-2 change:npcWeaponSkill-3 change:npcWeaponSkill-4 change:npcWeaponSkill-5 change:npcWeaponSkill-6 change:npcWeaponSkill-7 change:npcWeaponSkill-8 change:npcWeaponSkill-9 change:npcWeaponSkill-10', function() {
|
|
getSectionIDs('repeating_npc-weapons', function(r) {
|
|
if (r.length > 0) {
|
|
_.each(r, function(id) {
|
|
getAttrs(['repeating_npc-weapons_'+id+'_npcWeaponSkill', 'repeating_npc-weapons_'+id+'_npcAimOrNot', 'repeating_npc-weapons_'+id+'_npcWeaponAttack', 'repeating_npc-weapons_'+id+'_npcWeaponDefense', 'repeating_npc-weapons_'+id+'_npcWeaponStyle', 'npcMelee', 'npcAim', 'npcBodyBonus', 'npcWeaponSkill-1', 'npcWeaponSkill-2', 'npcWeaponSkill-3', 'npcWeaponSkill-4', 'npcWeaponSkill-5', 'npcWeaponSkill-6', 'npcWeaponSkill-7', 'npcWeaponSkill-8', 'npcWeaponSkill-9', 'npcWeaponSkill-10'], function(v) {
|
|
let s = parseV(v, 'repeating_npc-weapons_'+id+'_npcWeaponSkill', 'str').replace(/^@{(.*)}$/, "$1").split('-')[1];
|
|
let ws = parseV(v, 'npcWeaponSkill-'+s);
|
|
setAttrs({['repeating_npc-weapons_'+id+'_npcWeaponAttackTotal']: weaponScore(ws, parseV(v, 'repeating_npc-weapons_'+id+'_npcWeaponStyle', 'str'), parseV(v, 'repeating_npc-weapons_'+id+'_npcAimOrNot'), parseV(v, 'npcMelee'), parseV(v, 'npcAim'), parseV(v, 'repeating_npc-weapons_'+id+'_npcWeaponAttack'), parseV(v, 'npcBodyBonus'))});
|
|
setAttrs({['repeating_npc-weapons_'+id+'_npcWeaponDefenseTotal']: weaponScore(ws, parseV(v, 'repeating_npc-weapons_'+id+'_npcWeaponStyle', 'str'), 0, parseV(v, 'npcMelee'), 0, parseV(v, 'repeating_npc-weapons_'+id+'_npcWeaponDefense'), parseV(v, 'npcBodyBonus'))});
|
|
});
|
|
});
|
|
}
|
|
});
|
|
});
|
|
on('change:repeating_npc-weapons:npcWeaponAttack change:repeating_npc-weapons:npcWeaponSkill change:repeating_npc-weapons:npcAimOrNot', function() {
|
|
getAttrs(['repeating_npc-weapons_npcWeaponSkill', 'repeating_npc-weapons_npcAimOrNot', 'repeating_npc-weapons_npcWeaponAttack', 'repeating_npc-weapons_npcWeaponStyle', 'npcMelee', 'npcAim', 'npcBodyBonus', 'npcWeaponSkill-1', 'npcWeaponSkill-2', 'npcWeaponSkill-3', 'npcWeaponSkill-4', 'npcWeaponSkill-5', 'npcWeaponSkill-6', 'npcWeaponSkill-7', 'npcWeaponSkill-8', 'npcWeaponSkill-9', 'npcWeaponSkill-10'], function(v) {
|
|
let s = parseV(v, 'repeating_npc-weapons_npcWeaponSkill', 'str').replace(/^@{(.*)}$/, "$1").split('-')[1];
|
|
let ws = parseV(v, 'npcWeaponSkill-'+s);
|
|
setAttrs({'repeating_npc-weapons_npcWeaponAttackTotal': weaponScore(ws, parseV(v, 'repeating_npc-weapons_npcWeaponStyle', 'str'), parseV(v, 'repeating_npc-weapons_npcAimOrNot'), parseV(v, 'npcMelee'), parseV(v, 'npcAim'), parseV(v, 'repeating_npc-weapons_npcWeaponAttack'), parseV(v, 'npcBodyBonus'))});
|
|
});
|
|
});
|
|
on('change:repeating_npc-weapons:npcWeaponDefense change:repeating_npc-weapons:npcWeaponSkill', function() {
|
|
getAttrs(['repeating_npc-weapons_npcWeaponDefense', 'repeating_npc-weapons_npcWeaponSkill', 'repeating_npc-weapons_npcWeaponStyle', 'npcMelee', 'npcBodyBonus', 'npcWeaponSkill-1', 'npcWeaponSkill-2', 'npcWeaponSkill-3', 'npcWeaponSkill-4', 'npcWeaponSkill-5', 'npcWeaponSkill-6', 'npcWeaponSkill-7', 'npcWeaponSkill-8', 'npcWeaponSkill-9', 'npcWeaponSkill-10'], function(v) {
|
|
let s = parseV(v, 'repeating_npc-weapons_npcWeaponSkill', 'str').replace(/^@{(.*)}$/, "$1").split('-')[1];
|
|
let ws = parseV(v, 'npcWeaponSkill-'+s);
|
|
setAttrs({'repeating_npc-weapons_npcWeaponDefenseTotal': weaponScore(ws, parseV(v, 'repeating_npc-weapons_npcWeaponStyle', 'str'), 0, parseV(v, 'npcMelee'), 0, parseV(v, 'repeating_npc-weapons_npcWeaponDefense'), parseV(v, 'npcBodyBonus'))});
|
|
});
|
|
});
|
|
on('change:repeating_npc-weapons:npcWeaponDamage change:repeating_npc-weapons:npcAimOrNot', function() {
|
|
getAttrs(['repeating_npc-weapons_npcWeaponDamage', 'npcDamageBonus', 'repeating_npc-weapons_npcAimOrNot'], function(v) {
|
|
setAttrs({'repeating_npc-weapons_npcWeaponDDB': weaponDDB(parseV(v, 'repeating_npc-weapons_npcWeaponDamage'), parseV(v, 'repeating_npc-weapons_npcAimOrNot'), parseV(v, 'npcDamageBonus'))});
|
|
});
|
|
});
|
|
on('change:npcSeriousWound', function() {
|
|
getAttrs(['npcSeriousWound'], function(v) {
|
|
setAttrs({'npcSeriousWoundPenalty': swp(parseV(v, 'npcSeriousWound'))});
|
|
});
|
|
});
|
|
on('change:repeating_npc-weapons:npcWeaponStyle', function() {
|
|
getAttrs(['repeating_npc-weapons_npcWeaponStyle', 'npcDamageBonus'], function(v) {
|
|
setAttrs({'repeating_npc-weapons_npcAimOrNot': aimOrNot(parseV(v, 'repeating_npc-weapons_npcWeaponStyle', 'str'), parseV(v, 'npcDamageBonus'))});
|
|
})
|
|
});
|
|
on('change:repeating_npc-skills remove:repeating_npc-skills', function() {
|
|
getSectionIDs('repeating_npc-skills', function(r) {
|
|
let s = '?{@{skillRoll}|';
|
|
let z = 1;
|
|
let dodgeRegExp = new RegExp('^'+getTranslationByKey('dodge-option').split(' ')[0]+'.*$');
|
|
let weaponsRegExp = new RegExp('^'+getTranslationByKey('weapons-option').split(' ')[0]+'.*$');
|
|
let weaponsOptions = [];
|
|
if (r.length > 0) {
|
|
_.each(r, function(id, i) {
|
|
getAttrs(['repeating_npc-skills_'+id+'_npcSkillName', 'repeating_npc-skills_'+id+'_npcSkillBranch', 'repeating_npc-skills_'+id+'_npcSkillScore'], function(v) {
|
|
let name = parseV(v, 'repeating_npc-skills_'+id+'_npcSkillName', 'str');
|
|
let branch = parseV(v, 'repeating_npc-skills_'+id+'_npcSkillBranch', 'str');
|
|
let skill = parseV(v, 'repeating_npc-skills_'+id+'_npcSkillScore');
|
|
if (branch === '' || branch === undefined) {
|
|
let b = 'repeating_npc-skills_'+id+'_npcSkill';
|
|
let k = {};
|
|
k[b] = name;
|
|
setAttrs(k);
|
|
s += name+', '+'&{template:agone-skills} {{name=@{character_name}}} {{Skill='+name+' : [[[[1d10!]]+[['+skill+']]+?{@{attributeRoll}|'+
|
|
'@{agilityRoll},[[@{npcAgility}]]+[[@{npcBodyBonus}]]+[[?{@{bonusPenaltyRoll}&#124;@{npcArmorAGIPenalty}&#125;]]|'+
|
|
'@{strengthRoll},[[@{npcStrength}]]+[[@{npcBodyBonus}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]|'+
|
|
'@{perceptionRoll},[[@{npcPerception}]]+[[@{npcBodyBonus}]]+[[?{@{bonusPenaltyRoll}&#124;@{npcArmorPERPenalty}&#125;]]|'+
|
|
'@{staminaRoll},[[@{npcStamina}]]+[[@{npcBodyBonus}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]|'+
|
|
'@{intelligenceRoll},[[@{npcIntelligence}]]+[[@{npcSpiritBonus}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]|'+
|
|
'@{willRoll},[[@{npcWill}]]+[[@{npcSpiritBonus}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]|'+
|
|
'@{charismaRoll},[[@{npcCharisma}]]+[[@{npcSoulBonus}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]|'+
|
|
'@{creativityRoll},[[@{npcCreativity}]]+[[@{npcSoulBonus}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]|'+
|
|
'@{meleeRoll},[[@{npcMelee}]]+[[@{npcBodyBonus}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]|'+
|
|
'@{aimRoll},[[@{npcAim}]]+[[@{npcBodyBonus}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]}]]}} '+
|
|
'{{Dice=@{rollRoll}: $[[0]]}} {{Sk=@{skillRoll}: $[[1]]}} {{Attr=@{attributeRoll} : $[[2]]}} {{AspBonus=@{aspectBonusRoll}: $[[3]]}} {{BonPen=@{bonusPenaltyRoll}: $[[4]]}}|';
|
|
if (dodgeRegExp.test(name)) setAttrs({'npcDodge': skill});
|
|
} else {
|
|
let b = 'repeating_npc-skills_'+id+'_npcSkill';
|
|
let k = {};
|
|
k[b] = branch;
|
|
setAttrs(k);
|
|
s += name+' ['+branch+']'+', '+'&{template:agone-skills} {{name=@{character_name}}} {{Skill='+branch+' : [[[[1d10!]]+[['+skill+']]+?{@{attributeRoll}|'+
|
|
'@{agilityRoll},[[@{npcAgility}]]+[[@{npcBodyBonus}]]+[[?{@{bonusPenaltyRoll}&#124;@{npcArmorAGIPenalty}&#125;]]|'+
|
|
'@{strengthRoll},[[@{npcStrength}]]+[[@{npcBodyBonus}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]|'+
|
|
'@{perceptionRoll},[[@{npcPerception}]]+[[@{npcBodyBonus}]]+[[?{@{bonusPenaltyRoll}&#124;@{npcArmorPERPenalty}&#125;]]|'+
|
|
'@{staminaRoll},[[@{npcStamina}]]+[[@{npcBodyBonus}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]|'+
|
|
'@{intelligenceRoll},[[@{npcIntelligence}]]+[[@{npcSpiritBonus}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]|'+
|
|
'@{willRoll},[[@{npcWill}]]+[[@{npcSpiritBonus}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]|'+
|
|
'@{charismaRoll},[[@{npcCharisma}]]+[[@{npcSoulBonus}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]|'+
|
|
'@{creativityRoll},[[@{npcCreativity}]]+[[@{npcSoulBonus}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]|'+
|
|
'@{meleeRoll},[[@{npcMelee}]]+[[@{npcBodyBonus}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]|'+
|
|
'@{aimRoll},[[@{npcAim}]]+[[@{npcBodyBonus}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]}]]}} '+
|
|
'{{Dice=@{rollRoll}: $[[0]]}} {{Sk=@{skillRoll}: $[[1]]}} {{Attr=@{attributeRoll} : $[[2]]}} {{AspBonus=@{aspectBonusRoll}: $[[3]]}} {{BonPen=@{bonusPenaltyRoll}: $[[4]]}}|';
|
|
if (weaponsRegExp.test(name)) {
|
|
weaponsOptions.push({label: branch || getTranslationByKey('weapons'+z+'-option'), value: '@{npcWeaponSkill-'+z+'}'});
|
|
let a = 'npcWeaponSkill-'+z;
|
|
let j = {};
|
|
j[a] = skill;
|
|
setAttrs(j);
|
|
z += 1;
|
|
}
|
|
}
|
|
if (i == r.length - 1) {
|
|
s += '@{unknownRoll}, &{template:agone-skills} {{name=@{character_name}}} {{Skill=?{@{skillNameRoll}} : [[[[1d10!]]+[[-3]]+?{@{attributeRoll}|'+
|
|
'@{agilityRoll},[[@{npcAgility}]]+[[@{npcBodyBonus}]]+[[?{@{bonusPenaltyRoll}&#124;@{npcArmorAGIPenalty}&#125;]]|'+
|
|
'@{strengthRoll},[[@{npcStrength}]]+[[@{npcBodyBonus}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]|'+
|
|
'@{perceptionRoll},[[@{npcPerception}]]+[[@{npcBodyBonus}]]+[[?{@{bonusPenaltyRoll}&#124;@{npcArmorPERPenalty}&#125;]]|'+
|
|
'@{staminaRoll},[[@{npcStamina}]]+[[@{npcBodyBonus}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]|'+
|
|
'@{intelligenceRoll},[[@{npcIntelligence}]]+[[@{npcSpiritBonus}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]|'+
|
|
'@{willRoll},[[@{npcWill}]]+[[@{npcSpiritBonus}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]|'+
|
|
'@{charismaRoll},[[@{npcCharisma}]]+[[@{npcSoulBonus}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]|'+
|
|
'@{creativityRoll},[[@{npcCreativity}]]+[[@{npcSoulBonus}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]|'+
|
|
'@{meleeRoll},[[@{npcMelee}]]+[[@{npcBodyBonus}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]|'+
|
|
'@{aimRoll},[[@{npcAim}]]+[[@{npcBodyBonus}]]+[[?{@{bonusPenaltyRoll}&#124;0&#125;]]}]]}} '+
|
|
'{{Dice=@{rollRoll}: $[[0]]}} {{Sk=@{skillRoll}: $[[1]]}} {{Attr=@{attributeRoll} : $[[2]]}} {{AspBonus=@{aspectBonusRoll}: $[[3]]}} {{BonPen=@{bonusPenaltyRoll}: $[[4]]}}}';
|
|
setAttrs({'npcSkillsSelection': s});
|
|
weaponsOptions.push({label: getTranslationByKey('unknown-roll'), value: '@{npcWeaponSkill-'+z+'}'});
|
|
populateListOptions({
|
|
elemSelector: '.npcWeaponSkill',
|
|
optionsArray: weaponsOptions
|
|
});
|
|
for (z ; z < 11 ; z++) {
|
|
let a = 'npcWeaponSkill-'+z;
|
|
let j = {};
|
|
j[a] = -3;
|
|
setAttrs(j);
|
|
}
|
|
}
|
|
});
|
|
});
|
|
}
|
|
});
|
|
});
|
|
on('change:npcSkillsSelection', function() {
|
|
getAttrs(['npcSkillsSelection', 'npcAgility', 'npcBodyBonus', 'npcDodge'], function(v) {
|
|
if (v['npcSkillsSelection'].indexOf('Esquive') > -1) {
|
|
let d = v['npcSkillsSelection'].match(/.*Esquive \(Épreuve\) : \[\[\[\[1d10\!\]\]\+\[\[(\d)\]\]\+.*/);
|
|
d = parseInt(d[1]);
|
|
setAttrs({'npcDodge': d});
|
|
setAttrs({'npcDodgeTotal': dodge(parseV(v, 'npcAgility'), d, parseV(v, 'npcBodyBonus'))});
|
|
setAttrs({'npcDistanceDodge': distance(parseV(v, 'npcAgility'), d)});
|
|
}
|
|
else {
|
|
setAttrs({'npcDodge': -3});
|
|
setAttrs({'npcDodgeTotal': dodge(parseV(v, 'npcAgility'), -3, parseV(v, 'npcBodyBonus'))});
|
|
setAttrs({'npcDistanceDodge': distance(parseV(v, 'npcAgility'), -3)});
|
|
}
|
|
});
|
|
});
|
|
</script>
|
|
|
|
|
|
|
|
|