Files
roll20-character-sheets-tester/Agone-(french)/agone-sheet.html
T
2020-12-05 08:29:04 +01:00

4133 lines
250 KiB
HTML

<!-- Agone Character Sheet -->
<!-- Version 0.6.1 -->
<!-- Author: Le Grand Dragon de la Foudre -->
<!-- Website: http://legdf.free.fr-->
<input name="attr_Menu" type="radio" class="pc-menu" value="pc" checked><span class="pc-menu-lbl title">Personnage</span>
<input name="attr_Menu" type="radio" class="companion-menu" value="companion"><span class="companion-menu-lbl title">Compagnon</span>
<input name="attr_Menu" type="radio" class="demon-menu" value="demon"><span class="demon-menu-lbl title">Démon</span>
<input name="attr_Menu" type="radio" class="npc-menu" value="npc"><span class="npc-menu-lbl title">PNJ</span>
<input type="checkbox" class="summary-menu"><span class="summary-menu-lbl title">Résumé</span>
<input type="checkbox" class="help-menu"><span class="help-menu-lbl title">Aide</span>
<div class="summary section">
<div>
<div class="pc-summary grid">
<span class="pc-summary-state-lbl title">État</span>
<span class="pc-summary-rolls-lbl title">Jets</span>
<span>Points de Vie</span>
<input type="number" class="pc-summary-state-first-full" name="attr_pcHP" title="Point(s) de Vie actuel(s)">
<input type="number" class="pc-summary-state-second-full" name="attr_pcHP_max" title="Points de Vie totaux" readonly>
<span>Jet générique (ouvert/fermé)</span>
<button class="dice pc-summary-rolls-first-full" type="roll" value="&{template:agone-generic} {{name=@{character_name}}} {{Roll=[[1d10!+?{Base|0}+?{Bonus/Malus|0}]]}}" name="roll_pc-generic-open" title="Jet ouvert"></button>
<button class="dice pc-summary-rolls-second-full" type="roll" value="&{template:agone-generic} {{name=@{character_name}}} {{Roll=[[1d10+?{Base|0}+?{Bonus/Malus|0}]]}}" name="roll_pc-generic-open" title="Jet fermé"></button>
<span>Points d'Héroïsme</span>
<input type="number" class="pc-summary-state-first-full" name="attr_pcFP" title="Point(s) d'Héroïsme actuel(s)">
<input type="number" class="pc-summary-state-second-full" name="attr_pcFP_max" title="Points d'Héroïsme totaux" readonly>
<span>Caractéristiques / Fumble</span>
<button class="dice pc-summary-rolls-first-full" type="roll" value="?{Caratéristique|AGIlité, &{template:agone-chars&amp;#125; {{name=@{character_name}&amp;#125;&amp;#125; {{Characteristic=AGIlité : [[1d10!+2*@{pcAgility}+@{pcBodyBonus}+?{Bonus/Malus&amp;#124;@{pcArmorAGIPenalty}&amp;#125;]]&amp;#125;&amp;#125;|CHArisme, &{template:agone-chars&amp;#125; {{name=@{character_name}&amp;#125;&amp;#125; {{Characteristic=CHArisme : [[1d10!+2*@{pcCharisma}+@{pcSoulBonus}+?{Bonus/Malus&amp;#124;0&amp;#125;]]&amp;#125;&amp;#125;|CRÉativité, &{template:agone-chars&amp;#125; {{name=@{character_name}&amp;#125;&amp;#125; {{Characteristic=CRÉativité : [[1d10!+2*@{pcCreativity}+@{pcSoulBonus}+?{Bonus/Malus&amp;#124;0&amp;#125;]]&amp;#125;&amp;#125;|FORce, &{template:agone-chars&amp;#125; {{name=@{character_name}&amp;#125;&amp;#125; {{Characteristic=FORce : [[1d10!+2*@{pcStrength}+@{pcBodyBonus}+?{Bonus/Malus&amp;#124;0&amp;#125;]]&amp;#125;&amp;#125;|INTelligence, &{template:agone-chars&amp;#125; {{name=@{character_name}&amp;#125;&amp;#125; {{Characteristic=INTelligence : [[1d10!+2*@{pcIntelligence}+@{pcSpiritBonus}+?{Bonus/Malus&amp;#124;0&amp;#125;]]&amp;#125;&amp;#125;|PERception, &{template:agone-chars&amp;#125; {{name=@{character_name}&amp;#125;&amp;#125; {{Characteristic=PERception : [[1d10!+2*@{pcPerception}+@{pcBodyBonus}+?{Bonus/Malus&amp;#124;@{pcArmorPERPenalty}&amp;#125;]]&amp;#125;&amp;#125;|RÉSistance, &{template:agone-chars&amp;#125; {{name=@{character_name}&amp;#125;&amp;#125; {{Characteristic=RÉSistance : [[1d10!+2*@{pcStamina}+@{pcBodyBonus}+?{Bonus/Malus&amp;#124;0&amp;#125;]]&amp;#125;&amp;#125;|VOLonté, &{template:agone-chars&amp;#125; {{name=@{character_name}&amp;#125;&amp;#125; {{Characteristic=VOLonté : [[1d10!+2*@{pcWill}+@{pcSpiritBonus}+?{Bonus/Malus&amp;#124;0&amp;#125;]]&amp;#125;&amp;#125;}" name="roll_pc-chars"></button>
<button class="dice pc-summary-rolls-second-full" type="roll" value="&{template:agone-fumble} {{name=@{character_name}}} {{Fumble=[[?{Ancien jet}-1d10!]]}}" name="roll_pc-fumble"></button>
<span>Équipement</span>
<input type="number" class="pc-summary-state-first-full" name="attr_pcLoad" title="Charge actuelle" readonly>
<input type="number" class="pc-summary-state-second-full" name="attr_pcLoadPenalty" title="Malus dû à la surcharge" readonly>
<span>Compétences</span>
<button class="dice pc-summary-rolls-first-full" type="roll" value="@{pcSkillsSelection}" name="roll_pc-skills"></button>
<span></span>
<span></span>
<span>Armure</span>
<input type="checkbox" name="attr_pcArmorWorn" value="1" title="Armure portée">
<input type="number" class="half-number item-left" name="attr_pcArmorProtection">
<input type="number" class="half-number item-right" name="attr_pcArmorAgilityPenalty" title="Malus de l'armure">
<input type="number" class="half-number item-left" name="attr_pcArmorPerceptionPenalty" title="Malus de perception de l'armure" readonly>
<span>Initiative / Esquive / Défense Naturelle</span>
<button class="dice pc-summary-rolls-first-full" type="roll" value="&{template:agone-initiative} {{name=@{selected|character_name}}} {{Initiative=[[1d10+@{pcInit}+?{Bonus/Malus|0} &{tracker}]]}}" name="roll_pc-init"></button>
<button class="dice item-right" type="roll" value="&{template:agone-dodge} {{name=@{character_name}}} {{Dodge=[[1d10!+@{pcDodgeTotal}+?{Bonus/Malus|@{pcArmorAGIPenalty}}]]}}" name="roll_pc-dodge"></button>
<button class="dice item-left" type="roll" value="&{template:agone-natural-defense} {{name=@{character_name}}} {{NaturalDefense=[[1d10!+@{pcNaturalDefense}+?{Bonus/Malus|@{pcArmorAGIPenalty}}]]}}" name="roll_pc-natural-defense"></button>
<span>Blessure(s) Grave(s)</span>
<input type="number" name="attr_pcSeriousWound" class="pc-summary-state-first-full" title="Blessure(s) Grave(s) encaissée(s)" value="0">
<input type="number" name="attr_pcSeriousWoundPenalty" class="pc-summary-state-second-full" title="Malus concernant la ou les Blessure(s) Grave(s)" readonly>
<span>Initiative / Emprise / Arts Magiques</span>
<button class="dice pc-summary-rolls-first-full" type="roll" value="&{template:agone-initiative} {{name=@{selected|character_name}}} {{Initiative=[[1d10+@{pcMagicInit}+?{Bonus/Malus|0} &{tracker}]]}}" name="roll_pc-magic-init"></button>
<button class="dice item-right" type="roll" value="@{pcAscendancySelection}" name="roll_pc-ascendancy-global"></button>
<button class="dice item-left" type="roll" value="@{pcArtSelection}" name="roll_pc-art-global"></button>
</div>
</div>
<img src="http://legdf.free.fr/src/img/roll20/title.png" class="summary-separator">
</div>
<div class="help section">
<h1 class="title">Aide à l'utilisation de la fiche de personnage</h1>
<p>
<strong style="color: #b30000;">Nouvelle version</strong>
<ul>
<li>
Tous les attributs ayant changé, vous pouvez cliquer sur ce bouton pour les récupérer <button type="action" name="act_convert-attributes">Conversion</button>.
</li>
<li>
Pour les armes, il faut rafraîchir les calculs en modifiant <strong>Style</strong> et <strong>Compétence</strong>.
</li>
<li>
Pour les compagnons, les démons et les PNJs, le nom de la compétence ayant changé, ce sera <strong>Acrobatie (Maraude)</strong> pour toutes les compétences mais vous retrouverez le nom d'origine soit dans le domaine, soit dans la spécialité.
</li>
<li>
Pour les démons et les PNJs, les armes apparaissent vides. Ne les supprimez surtout pas avant d'avoir lancé la conversion ! Vous pourrez les supprimer ensuite.
</li>
<li>
La race du démon est perdue, elle n'était pas sauvegardée dans un attribut...
</li>
</ul>
</p>
<p>
<strong>Utilisation générale</strong><br>
<ul>
<li>
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>
À l'aide des cases à cocher, vous pouvez ouvrir la section correspondante et y trouver son contenu.
</li>
<li>
Pour savoir à quoi correspondent les cases à remplir, laissez la souris dessus pour voir apparaître l'info-bulle.
</li>
<li>
Les cases en gris foncé sont automatiquement calculées et ne peuvent être modifiées.
</li>
<li>
Certains calculs nécessitent de fermer et de rouvrir la feuille.
</li>
<li>
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>
On peut glisser-déposer les boutons dans la barre de macros rapides.
</li>
<li>
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>
Le bouton à droite de <strong>Fumble</strong> permet de relancer un 1 sur 1d10 et soustraire le résultat.
</li>
<li>
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>
</ul>
</p>
<p>
<strong>Caractéristiques principales</strong>
<ul>
<li>
Le bouton dans la barre de titre regroupe tous les jets de caractéristique en un.
</li>
<li>
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>Compétences</strong>
<ul>
<li>
Le bouton dans la barre de titre regroupe tous les jets de compétence en un.
</li>
<li>
Pour les doubles cases, celle de gauche correspond à la compétence, celle de droite à l'expérience dépensée.
</li>
<li>
Seules 10 compétences d'armes seront prises en compte dynamiquement pour les jets globaux.
</li>
</ul>
</p>
<p>
<strong>Malus</strong>
<ul>
<li>
Les malus d'AGI et de PER sont proposés dans les jets lorsque la case de l'armure est cochée.
</li>
<li>
Les autres malus ne sont pas inclus dans les jets.
</li>
</ul>
</p>
<p>
<strong>Emprise & Arts Magiques</strong>
<ul>
<li>
Le bouton dans la barre de titre regroupe tous les jets de magie en un.
</li>
</ul>
</p>
<p>
<strong>Résumé</strong>
<ul>
<li>
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>
Les armes ne sont malheureusement pas disponibles.
</li>
</ul>
</p>
</div>
<div class="pc-sheet section">
<div class="pc-infos grid">
<span class="pc-name-lbl">Nom</span>
<input type="text" name="attr_character_name" class="pc-name max" title="Nom">
<span class="pc-origin-lbl">Origine</span>
<input type="text" name="attr_pcOrigin" class="pc-origin max" title="Royaume d'origine">
<span class="pc-occupation-lbl">Occupation</span>
<input type="text" name="attr_pcOccupation" class="pc-occupation max" title="Métier">
<span class="pc-sex-lbl">Sexe</span>
<input type="text" name="attr_pcSex" class="pc-sex max" title="Genre">
<span class="pc-age-lbl">Âge</span>
<input type="text" name="attr_pcAge" class="pc-age ninety" title="Âge">
<span class="pc-size-lbl">Taille</span>
<input type="text" name="attr_pcSize" class="pc-size max" title="Taille">
<span class="pc-siz-lbl">TAI</span>
<input type="number" name="attr_pcSIZ" class="pc-siz" title="Score de TAI">
<span class="pc-exp-title title">Expérience</span>
<span class="pc-hpfp-title title">PdV & PH</span>
<span class="pc-weight-lbl">Masse</span>
<input type="text" name="attr_pcWeight" class="pc-weight max" title="Masse en kg">
<span class="pc-race-lbl">Peuple</span>
<select name="attr_pcRace" class="pc-race ninety">
<option value="Human">Humain</option>
<option value="Spriggan">Farfadet</option>
<option value="Sprite">Lutin</option>
<option value="Satyr">Satyre</option>
<option value="Giant">Géant</option>
<option value="Minotaur">Minotaure</option>
<option value="Ogre">Ogre</option>
<option value="Draaken">Drakonien</option>
<option value="Morgana">Morgane</option>
<option value="Pixie">Pixie</option>
<option value="Black Fey">Fée Noire</option>
<option value="Medusa">Méduse</option>
<option value="Dwarf">Nain</option>
</select>
<span class="pc-godfather-lbl">Parrain</span>
<input type="text" name="attr_pcGodfather" class="pc-godfather max" title="Nom ou Saison du parrain">
<span class="pc-move-lbl">MV</span>
<input type="number" name="attr_pcMove" class="pc-move" title="Score de MV">
<span class="pc-cexp-lbl">Actuelle</span>
<input type="number" name="attr_pcCExp" class="pc-cexp" title="Expérience non dépensée">
<span class="pc-hp-lbl">PdV</span>
<input type="number" name="attr_pcHP" class="pc-hp" title="Point(s) de Vie actuel(s)">
<span class="pc-desc-lbl">Description</span>
<span class="pc-exp-lbl">Totale</span>
<input type="number" name="attr_pcExp" class="pc-exp" title="Expérience totale">
<span class="pc-fp-lbl">PH</span>
<input type="number" name="attr_pcFP" class="pc-fp" title="Point d'Héroïsme actuel(s)">
<textarea name="attr_pcDescription" class="pc-desc"></textarea>
<img src="http://legdf.free.fr/src/img/roll20/souffre-jour.png" class="pc-logo">
</div>
<div>
<input type="checkbox" name="attr_pcCharsCheck" class="pc-chars-switch switch">
<div class="pc-chars-menu title">
<span>CARACTÉRISTIQUES PRIMAIRES</span>
<button class="dice" type="roll" value="?{Caratéristique|AGIlité, &{template:agone-chars&amp;#125; {{name=@{character_name}&amp;#125;&amp;#125; {{Characteristic=AGIlité : [[1d10!+2*@{pcAgility}+@{pcBodyBonus}+?{Bonus/Malus&amp;#124;@{pcArmorAGIPenalty}&amp;#125;]]&amp;#125;&amp;#125;|CHArisme, &{template:agone-chars&amp;#125; {{name=@{character_name}&amp;#125;&amp;#125; {{Characteristic=CHArisme : [[1d10!+2*@{pcCharisma}+@{pcSoulBonus}+?{Bonus/Malus&amp;#124;0&amp;#125;]]&amp;#125;&amp;#125;|CRÉativité, &{template:agone-chars&amp;#125; {{name=@{character_name}&amp;#125;&amp;#125; {{Characteristic=CRÉativité : [[1d10!+2*@{pcCreativity}+@{pcSoulBonus}+?{Bonus/Malus&amp;#124;0&amp;#125;]]&amp;#125;&amp;#125;|FORce, &{template:agone-chars&amp;#125; {{name=@{character_name}&amp;#125;&amp;#125; {{Characteristic=FORce : [[1d10!+2*@{pcStrength}+@{pcBodyBonus}+?{Bonus/Malus&amp;#124;0&amp;#125;]]&amp;#125;&amp;#125;|INTelligence, &{template:agone-chars&amp;#125; {{name=@{character_name}&amp;#125;&amp;#125; {{Characteristic=INTelligence : [[1d10!+2*@{pcIntelligence}+@{pcSpiritBonus}+?{Bonus/Malus&amp;#124;0&amp;#125;]]&amp;#125;&amp;#125;|PERception, &{template:agone-chars&amp;#125; {{name=@{character_name}&amp;#125;&amp;#125; {{Characteristic=PERception : [[1d10!+2*@{pcPerception}+@{pcBodyBonus}+?{Bonus/Malus&amp;#124;@{pcArmorPERPenalty}&amp;#125;]]&amp;#125;&amp;#125;|RÉSistance, &{template:agone-chars&amp;#125; {{name=@{character_name}&amp;#125;&amp;#125; {{Characteristic=RÉSistance : [[1d10!+2*@{pcStamina}+@{pcBodyBonus}+?{Bonus/Malus&amp;#124;0&amp;#125;]]&amp;#125;&amp;#125;|VOLonté, &{template:agone-chars&amp;#125; {{name=@{character_name}&amp;#125;&amp;#125; {{Characteristic=VOLonté : [[1d10!+2*@{pcWill}+@{pcSpiritBonus}+?{Bonus/Malus&amp;#124;0&amp;#125;]]&amp;#125;&amp;#125;}" name="roll_pc-chars"></button>
<span>Flamme</span>
<input type="number" name="attr_pcFlame" title="Score de Flamme" readonly>
<span>Flamme Noire</span>
<input type="number" name="attr_pcDarkFlame" title="Score de Flamme Noire" readonly>
</div>
<div class="pc-chars grid">
<span class="pc-body-title title">CORPS</span>
<span class="pc-spirit-title title">ESPRIT</span>
<span class="pc-soul-title title">ÂME</span>
<span class="pc-body-lbl title">Corps</span>
<input type="number" name="attr_pcBody" class="pc-body half-number" title="Score de Corps">
<input type="number" name="attr_pcBodyExp" class="pc-body-exp half-number" title="Expérience totale dépensée dans une caractéristique ou compétence liée au Corps">
<span class="pc-dark-body-lbl title">Corps Noir</span>
<input type="number" name="attr_pcDarkBody" class="pc-dark-body" title="Score de Corps Noir">
<span class="pc-spirit-lbl title">Esprit</span>
<input type="number" name="attr_pcSpirit" class="pc-spirit half-number" title="Score d'Esprit">
<input type="number"name="attr_pcSpiritExp" class="pc-spirit-exp half-number" title="Expérience totale dépensée dans une caractéristique ou compétence liée à l'Esprit">
<span class="pc-dark-spirit-lbl title">Esprit Noir</span>
<input type="number" name="attr_pcDarkSpirit" class="pc-dark-spirit" title="Score d'Esprit Noir">
<span class="pc-soul-lbl title">Âme</span>
<input type="number" name="attr_pcSoul" class="pc-soul half-number" title="Score d'Âme">
<input type="number"name="attr_pcSoulExp" class="pc-soul-exp half-number" title="Expérience totale dépensée dans une caractéristique ou compétence liée à l'Âme">
<span class="pc-dark-soul-lbl title">Âme Noire</span>
<input type="number" name="attr_pcDarkSoul" class="pc-dark-soul" title="Score d'Âme Noire">
<span class="pc-body-bonus-lbl title">Bonus de Corps</span>
<input type="number" name="attr_pcBodyBonus" class="pc-body-bonus" title="Différence entre Corps et Corps Noir" readonly>
<span class="pc-spirit-bonus-lbl title">Bonus d'Esprit</span>
<input type="number" name="attr_pcSpiritBonus" class="pc-spirit-bonus" title="Différence entre Esprit et Esprit Noir" readonly>
<span class="pc-soul-bonus-lbl title">Bonus d'Âme</span>
<input type="number" name="attr_pcSoulBonus" class="pc-soul-bonus" title="Différence entre Âme et Âme Noire" readonly>
<span class="pc-agility-lbl">AGIlité</span>
<input type="number" name="attr_pcAgility" class="pc-agility half-number item-right" title="Score d'AGIlité">
<input type="number" name="attr_pcAgilityExp" class="pc-agility-exp half-number item-center" title="Expérience dépensée en AGIlité">
<button class="pc-agility-dice dice item-left" type="roll" value="&{template:agone-chars} {{name=@{character_name}}} {{Characteristic=AGIlité : [[1d10!+2*@{pcAgility}+@{pcBodyBonus}+?{Bonus/Malus|@{pcArmorAGIPenalty}}]]}}" name="roll_pc-agility"></button>
<span class="pc-strength-lbl">FORce</span>
<input type="number" name="attr_pcStrength" class="pc-strength half-number item-right" title="Score de FORce">
<input type="number" name="attr_pcStrengthExp" class="pc-strength-exp half-number item-center" title="Expérience dépensée en FORce">
<button class="pc-strength-dice dice item-left" type="roll" value="&{template:agone-chars} {{name=@{character_name}}} {{Characteristic=FORce : [[1d10!+2*@{pcStrength}+@{pcBodyBonus}+?{Bonus/Malus|0}]]}}" name="roll_pc-strength"></button>
<span class="pc-intelligence-lbl">INTelligence</span>
<input type="number" name="attr_pcIntelligence" class="pc-intelligence half-number item-right" title="Score d'INTelligence">
<input name="attr_pcIntelligenceExp" type="number" class="pc-intelligence-exp half-number item-center" title="Expérience dépensée en INTelligence">
<button class="pc-intelligence-dice dice item-left" type="roll" value="&{template:agone-chars} {{name=@{character_name}}} {{Characteristic=INTelligence : [[1d10!+2*@{pcIntelligence}+@{pcSpiritBonus}+?{Bonus/Malus|0}]]}}" name="roll_pc-intelligence"></button>
<span class="pc-charisma-lbl">CHArisma</span>
<input type="number" name="attr_pcCharisma" class="pc-charisma half-number item-right" title="Score de CHArisme">
<input type="number" name="attr_pcCharismaExp" class="pc-charisma-exp half-number item-center" title="Expérience dépensée en CHArisme">
<button class="pc-charisma-dice dice item-left" type="roll" value="&{template:agone-chars} {{name=@{character_name}}} {{Characteristic=CHArisme : [[1d10!+2*@{pcCharisma}+@{pcSoulBonus}+?{Bonus/Malus|0}]]}}" name="roll_pc-charisma"></button>
<span class="pc-perception-lbl">PERception</span>
<input type="number" name="attr_pcPerception" class="pc-perception half-number item-right" title="PERception">
<input type="number" name="attr_pcPerceptionExp" class="pc-perception-exp half-number item-center" title="Expérience dépensée en PERception">
<button class="pc-perception-dice dice item-left" type="roll" value="&{template:agone-chars} {{name=@{character_name}}} {{Characteristic=PERception : [[1d10!+2*@{pcPerception}+@{pcBodyBonus}+?{Bonus/Malus|@{pcArmorPERPenalty}}]]}}" name="roll_pc-perception"></button>
<span class="pc-stamina-lbl">RÉSistance</span>
<input type="number" name="attr_pcStamina" class="pc-stamina half-number item-right" title="RESistance">
<input type="number" name="attr_pcStaminaExp" class="pc-stamina-exp half-number item-center" title="Expérience dépensée en RÉSistance">
<button class="pc-stamina-dice dice item-left" type="roll" value="&{template:agone-chars} {{name=@{character_name}}} {{Characteristic=RÉSistance : [[1d10!+2*@{pcStamina}+@{pcBodyBonus}+?{Bonus/Malus|0}]]}}" name="roll_pc-stamina"></button>
<span class="pc-will-lbl">VOLonté</span>
<input type="number" name="attr_pcWill" class="pc-will half-number item-right" title="Score de VOLonté">
<input type="number" name="attr_pcWillExp" class="pc-will-exp half-number item-center" title="Expérience dépensée en VOLonté">
<button class="pc-will-dice dice item-left" type="roll" value="&{template:agone-chars} {{name=@{character_name}}} {{Characteristic=VOLonté : [[1d10!+2*@{pcWill}+@{pcSpiritBonus}+?{Bonus/Malus|0}]]}}" name="roll_pc-will"></button>
<span class="pc-creativity-lbl">CRÉativité</span>
<input type="number" name="attr_pcCreativity" class="pc-creativity half-number item-right" title="Score de CRÉativité">
<input type="number" name="attr_pcCreativityExp" class="pc-creativity-exp half-number item-center" title="Expérience dépensée en CRÉativité">
<button class="pc-creativity-dice dice item-left" type="roll" value="&{template:agone-chars} {{name=@{character_name}}} {{Characteristic=CRÉativité : [[1d10!+2*@{pcCreativity}+@{pcSoulBonus}+?{Bonus/Malus|0}]]}}" name="roll_pc-creativity"></button>
</div>
</div>
<div>
<input type="checkbox" name="attr_pcSecondaryCharsCheck" class="pc-secondary-chars-switch switch">
<div class="pc-secondary-chars-menu title">
<span>CARACTÉRISTIQUES SECONDAIRES&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>
<span>Fumble</span>
<button class="dice" type="roll" value="&{template:agone-fumble} {{name=@{character_name}}} {{Fumble=[[?{Ancien jet}-1d10!]]}}" name="roll_pc-fumble"></button>
</div>
<div class="pc-secondary-chars grid">
<span>MÊLée</span>
<input type="number" name="attr_pcMelee" title="(FOR+AGIx2)/3" readonly>
<span>TIR</span>
<input type="number" name="attr_pcAim" title="(PER+AGI)/2" readonly>
<span>BD</span>
<input type="number" name="attr_pcDamageBonus" title="Voir Livre des Règles">
<span>Héroïsme</span>
<input type="number" name="attr_pcFP_max" title="Score de Flammex2" readonly>
<span>Points de Vie</span>
<input type="number" name="attr_pcHP_max" title="RESx3+BPdV+1d10">
<span>Bl. Grave</span>
<input type="number" name="attr_pcSeriousWoundThreshold" title="PdV/3" readonly>
<span>Bl. Critique</span>
<input type="number" name="attr_pcCriticalWoundThreshold" title="PdV/2" readonly>
<span>Charge max.</span>
<input type="number" name="attr_pcMaxLoad" title="(FOR+RES)xMP">
<span>Demi charge</span>
<input type="number" name="attr_pcHalfLoad" title="CM/2" readonly>
<span>Charge quot.</span>
<input type="number" name="attr_pcDailyLoad" title="CM/4" readonly>
<span>ART</span>
<input type="number" name="attr_pcArt" title="(CHA+CRE)/2" readonly>
<span>EMP</span>
<input type="number" name="attr_pcAscendancy" title="INT, (INT+VOL)/2 ou VOL">
</div>
</div>
<div>
<input type="checkbox" name="attr_pcSkillsCheck" class="pc-skills-switch switch">
<div class="pc-skills-menu title">
<span>COMPÉTENCES</span>
<button class="dice" type="roll" value="@{pcSkillsSelection}" name="roll_pc-skills"></button>
</div>
<div class="pc-skills grid">
<span class="title">Nom</span>
<span class="title">Domaine</span>
<span class="title">Spécialité</span>
<span class="title">Score</span>
<span class="title">EXP</span>
<span class="title">Roll</span>
<fieldset class="repeating_pc-skills">
<div class="pc-skills-container grid">
<select name="attr_pcSkillName" class="pc-skill-name">
<option>Acrobatie (Maraude)</option>
<option>Alchemie (Occulte)</option>
<option>Alphabets (Savoir)</option>
<option>Armes (Épreuve)</option>
<option>Arts Magiques (Occulte)</option>
<option>Astronomie (Savoir)</option>
<option>Athlétisme (Épreuve)</option>
<option>Baratin (Société)</option>
<option>Camouflage (Maraude)</option>
<option>Chasse (Maraude)</option>
<option>Chirurgie (Savoir)</option>
<option>Conn. des Danseurs (Occulte)</option>
<option>Cryptogramme (Occulte)</option>
<option>Cultes (Savoir)</option>
<option>Déguisement (Maraude)</option>
<option>Démonologie (Occulte)</option>
<option>Diplomatie (Société)</option>
<option>Discrétion (Maraude)</option>
<option>Élémentalisme (Occulte)</option>
<option>Éloquence (Société)</option>
<option>Équitation (Épreuve)</option>
<option>Escalade (Épreuve)</option>
<option>Esquive (Épreuve)</option>
<option>Étiquette (Société)</option>
<option>Fouille (Maraude)</option>
<option>Géographie (Savoir)</option>
<option>Harmonie (Occulte)</option>
<option>Herboristerie (Savoir)</option>
<option>Histoire & légendes (Savoir)</option>
<option>Intendance (Société)</option>
<option>Intrigue (Maraude)</option>
<option>Jeu (Maraude)</option>
<option>Langues (Savoir)</option>
<option>Lois (Savoir)</option>
<option>Médecine (Savoir)</option>
<option>Musique (Société)</option>
<option>Natation (Épreuve)</option>
<option>Navigation (Savoir)</option>
<option>Négoce (Société)</option>
<option>Passe-passe (Maraude)</option>
<option>Peinture (Société)</option>
<option>Poésie (Société)</option>
<option>Poisons (Maraude)</option>
<option>Premiers soins (Épreuve)</option>
<option>Résonance (Occulte)</option>
<option>Saisons (Savoir)</option>
<option>Savoir-faire (Société)</option>
<option>Sculpture (Société)</option>
<option>Serrurerie (Maraude)</option>
<option>Stratégie (Savoir)</option>
<option>Survie (Épreuve)</option>
<option>Vigilance (Épreuve)</option>
<option>Us et coutumes (Société)</option>
<option>Zoologie (Savoir)</option>
</select>
<input type="text" name="attr_pcSkillBranch" title="Domaine de la compétence (si applicable)" placeholder="domaine">
<input type="text" name="attr_pcSkillSpecialty" title="Spécialité de la compétence" placeholder="spécialité">
<input type="number" name="attr_pcSkillScore" title="Score de la compétence">
<input type="number" name="attr_pcSkillExp" title="Expérience dépensée dans la compétence">
<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}+?{Caractéristique|AGIlité, @{pcAgility}+@{pcBodyBonus}+?{Bonus/Malus&amp;#124;@{pcArmorAGIPenalty}&amp;#125;|FORce, @{pcStrength}+@{pcBodyBonus}+?{Bonus/Malus&amp;#124;0&amp;#125;|PERception, @{pcPerception}+@{pcBodyBonus}+?{Bonus/Malus&amp;#124;@{pcArmorPERPenalty}&amp;#125;|RÉSistance, @{pcStamina}+@{pcBodyBonus}+?{Bonus/Malus&amp;#124;0&amp;#125;|INTelligence, @{pcIntelligence}+@{pcSpiritBonus}+?{Bonus/Malus&amp;#124;0&amp;#125;|VOLonté, @{pcWill}+@{pcSpiritBonus}+?{Bonus/Malus&amp;#124;0&amp;#125;|CHArisme, @{pcCharisma}+@{pcSoulBonus}+?{Bonus/Malus&amp;#124;0&amp;#125;|CRÉativité, @{pcCreativity}+@{pcSoulBonus}+?{Bonus/Malus&amp;#124;0&amp;#125;|MÊLée, @{pcMelee}+@{pcBodyBonus}+?{Bonus/Malus&amp;#124;0&amp;#125;|TIR, @{pcAim}+@{pcBodyBonus}+?{Bonus/Malus&amp;#124;0&amp;#125;}}]]}}" name="roll_pc-skill"></button>
</div>
</fieldset>
</div>
</div>
<div>
<input type="checkbox" name="attr_pcAssetsFaultsCheck" class="pc-assets-faults-switch switch">
<div class="pc-assets-faults-menu title">
<span>AVANTAGES & DÉFAUTS</span>
</div>
<div class="pc-assets-faults grid">
<span class="title">Nom de l'avantage</span>
<span class="title">Coût</span>
<span class="title">Nom du défaut</span>
<span class="title">Coût</span>
<fieldset class="repeating_pc-assets">
<div class="pc-assets-container grid">
<textarea name="attr_pcAsset" class="expandable" title="Avantage et description"></textarea>
<input type="number" name="attr_pcAssetCost" title="Coût de l'avantage">
</div>
</fieldset>
<fieldset class="repeating_pc-faults">
<div class="pc-faults-container grid">
<textarea name="attr_pcFault" class="expandable" title="Défaut et description"></textarea>
<input type="number" name="attr_pcFaultCost" title="Coût du défaut">
</div>
</fieldset>
</div>
</div>
<div>
<input type="checkbox" name="attr_pcDarknessPerfidyCheck" class="pc-darkness-perfidy-switch switch">
<div class="pc-darkness-perfidy-menu title">
<span>PEINES & TÉNÈBRES,</span>
<span>BIENFAITS,</span>
<span>PEINES & PERFIDIE</span>
</div>
<div class="pc-darkness-perfidy grid">
<span class="pc-darkness-lbl title">Ténèbre</span>
<input type="number" name="attr_pcDarkness" class="pc-darkness" title="Points de Ténèbre">
<span class="title">Noirceur</span>
<input type="number" name="attr_pcBlackness" class="pc-blackness" title="Points de Ténèbre/10" readonly>
<span class="title">Perfidie</span>
<input type="number" name="attr_pcPerfidy" class="pc-perfidy" title="Points de Perfidie">
<span class="pc-sorrow-value">10</span>
<span class="pc-sorrow-lbl">Diablotin farceur</span>
<input type="checkbox" name="attr_pcTrickster" class="pc-sorrow">
<span class="pc-sorrow-value">20</span>
<span class="pc-sorrow-lbl">Cauchemars</span>
<input type="checkbox" name="attr_pcNightmares" class="pc-sorrow">
<span class="pc-sorrow-value">30</span>
<span class="pc-sorrow-lbl">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">Somnambule</span>
<input type="checkbox" name="attr_pcSleepWalking" class="pc-sorrow">
<span class="pc-sorrow-value">50</span>
<span class="pc-sorrow-lbl">Insomniaque</span>
<input type="checkbox" name="attr_pcInsomnia" class="pc-sorrow">
<span class="pc-sorrow-value">55</span>
<span class="pc-sorrow-lbl">Mépris</span>
<input type="checkbox" name="attr_pcContempt" class="pc-sorrow">
<span class="pc-sorrow-value">60</span>
<span class="pc-sorrow-lbl">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">Scarifications lunaires</span>
<input type="checkbox" name="attr_pcLunarScarifications" class="pc-sorrow">
<span class="pc-sorrow-value">70</span>
<span class="pc-sorrow-lbl">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">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">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">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">Sang noir</span>
<input type="checkbox" name="attr_pcBlackBlood" class="pc-sorrow">
<span class="pc-sorrow-value">87</span>
<span class="pc-sorrow-lbl">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">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">Malédiction</span>
<input type="checkbox" name="attr_pcCurse" class="pc-sorrow">
<span class="pc-sorrow-value">94</span>
<span class="pc-sorrow-lbl">Ombre vivante</span>
<input type="checkbox" name="attr_pcLivingShadow" class="pc-sorrow">
<span class="pc-sorrow-value">96</span>
<span class="pc-sorrow-lbl">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">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">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">Déchu</span>
<input type="checkbox" name="attr_pcFinalMetamorphosis" class="pc-sorrow">
<fieldset class="repeating_pc-gifts">
<textarea name="attr_pcGift" class="expandable" title="Bienfait"></textarea>
</fieldset>
<fieldset class="repeating_pc-sorrows">
<textarea name="attr_pcSorrow" class="expandable" title="Peine"></textarea>
</fieldset>
</div>
</div>
<div>
<input type="checkbox" name="attr_pcFlameSeasonCurrencyCheck" class="pc-flame-season-currency-switch switch">
<div class="pc-flame-season-currency-menu title">
<span>FLAMME & SAISONINS,</span>
<span>MONNAIE</span>
</div>
<div class="pc-flame-season-currency grid">
<span class="title">Pouvoirs</span>
<span class="title">Monnaie</span>
<span class="title">Valeur</span>
<span class="title">Quantité</span>
<fieldset class="repeating_pc-powers">
<textarea name="attr_pcPower" class="expandable" title="Pouvoir de Flamme ou de Saison"></textarea>
</fieldset>
<span class="pc-currency-lbl">Aiglon</span>
<span class="pc-currency-value">10</span>
<input type="number" name="attr_pcAiglet" class="pc-currency input-square shadow center" title="Quantité d'aiglon(s)">
<span class="pc-currency-lbl">Sastre</span>
<span class="pc-currency-value">5</span>
<input type="number" name="attr_pcSastre" class="pc-currency input-square shadow center" title="Quantité de sastre(s)">
<span class="pc-currency-lbl">Pistole</span>
<span class="pc-currency-value">10</span>
<input type="number" name="attr_pcPistol" class="pc-currency input-square shadow center" title="Quantité de pistole(s)">
<span class="pc-currency-lbl">Dirhem</span>
<span class="pc-currency-value">5</span>
<input type="number" name="attr_pcDirhem" class="pc-currency input-square shadow center" title="Quantité de dirhem(s)">
<span class="pc-currency-lbl">Perle</span>
<span class="pc-currency-value">10</span>
<input type="number" name="attr_pcPearl" class="pc-currency input-square shadow center" title="Quantité de perle(s)">
<span class="pc-currency-lbl">Cristal</span>
<span class="pc-currency-value">5</span>
<input type="number" name="attr_pcCrystal" class="pc-currency input-square shadow center" title="Quantité de cristal(ux)">
<span class="pc-currency-lbl">Pièce d'or</span>
<span class="pc-currency-value">1</span>
<input type="number" name="attr_pcGoldPiece" class="pc-currency input-square shadow center" title="Quantité de pièce(s) d'or">
<span class="pc-currency-lbl">Sou</span>
<span class="pc-currency-value">1</span>
<input type="number" name="attr_pcCoin" class="pc-currency input-square shadow center" title="Quantité de sou(s)">
<span class="pc-currency-lbl">Bribe</span>
<span class="pc-currency-value">1/11</span>
<input type="number" name="attr_pcScrape" class="pc-currency input-square shadow center" title="Quantité de bribe(s)">
</div>
</div>
<div>
<input type="checkbox" name="attr_pcStuffCheck" class="pc-stuff-switch switch">
<div class="pc-stuff-menu title">
<span>ÉQUIPEMENT</span>
<input type="number" name="attr_pcLoad" class="input-square shadow center" title="Charge actuelle" readonly>
<input type="number" name="attr_pcLoadPenalty" class="input-square shadow center" title="Malus dû à la surcharge" readonly>
</div>
<div class="pc-stuff grid">
<span class="title">Nom</span>
<span class="title">Quantité</span>
<span class="title">Masse</span>
<span class="title">Total</span>
<fieldset class="repeating_pc-stuff">
<div class="pc-stuff-rows grid">
<textarea name="attr_pcStuff" class="expandable" title="Objet"></textarea>
<input type="number" name="attr_pcStuffQuantity" title="Quantité de l'objet">
<input type="number" name="attr_pcStuffWeight" step="0.01" title="Masse unitaire">
<input type="number" name="attr_pcStuffTotalWeight" title="Masse totale" readonly>
</div>
</fieldset>
</div>
</div>
<div>
<input type="checkbox" name="attr_pcCombatCheck" class="pc-combat-switch switch">
<div class="pc-combat-menu border title">
<span>MANŒUVRES & BOTTES,</span>
<span>ARMURE & ÉTAT</span>
</div>
<div class="pc-combat grid">
<span class="title">Nom & description</span>
<span class="title">Nom</span>
<span class="title">Type</span>
<span class="title pc-combat-score-lbl">Score</span>
<span class="title pc-combat-malus-lbl">Malus</span>
<fieldset class="repeating_pc-maneuvers">
<textarea name="attr_pcManeuver" class="expandable" title="Manœuvre, botte ou autre technique"></textarea>
</fieldset>
<input type="text" name="attr_pcArmor" class="ninety" title="Armure">
<select name="attr_pcArmorType" class="max" title="Type d'armure">
<option value="0">Veste seule</option>
<option value="1">Partielle</option>
<option value="2">Complète</option>
</select>
<input type="checkbox" name="attr_pcArmorWorn" value="1" title="Armure portée">
<input type="number" name="attr_pcArmorProtection" class="half-number item-left" title="Protection de l'armure" value="0">
<input type="number" name="attr_pcArmorAgilityPenalty" class="half-number item-right" title="Malus de l'armure" value="0">
<input type="number" name="attr_pcArmorPerceptionPenalty" class="half-number item-left" title="Malus de perception de l'armure" value="0" readonly>
<span class="pc-combat-sub-lbl">Blessure(s) Grave(s)</span>
<input type="number" name="attr_pcSeriousWound" class="pc-combat-score" title="Blessure(s) Grave(s) encaissée(s)" value="0">
<input type="number" name="attr_pcSeriousWoundPenalty" class="pc-combat-serious-wound-penalty" title="Malus concernant la ou les Blessure(s) Grave(s)" readonly>
<span class="pc-combat-sub-lbl">Points de Vie</span>
<input type="number" name="attr_pcHP" class="pc-combat-score" title="Point()s de Vie actuel(s)">
<input type="number" name="attr_pcHP_max" class="pc-combat-hp-max" title="Points de Vie totaux" readonly>
<span class="pc-combat-sub-lbl">Points d'Héroïsme</span>
<input type="number" name="attr_pcFP" class="pc-combat-score" title="Point(s) d'Héroïsme actuel(s)">
<input type="number" name="attr_pcFP_max" class="pc-combat-fp-max" title="Points d'Héroïsme totaux" readonly>
</div>
</div>
<div>
<input type="checkbox" name="attr_pcWeaponsCheck" class="pc-weapons-switch switch">
<div class="pc-weapons-menu title">
<span>ARMES&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>
<span>Initiative</span>
<input type="number" name="attr_pcInit" title="AGIlité+PERception+Bonus de Corps" readonly>
<button class="dice" type="roll" value="&{template:agone-initiative} {{name=@{selected|character_name}}} {{Initiative=[[1d10+@{pcInit}+?{Bonus/Malus|0} &{tracker}]]}}" name="roll_pc-init"></button>
<span>Esquive</span>
<input type="number" name="attr_pcDodgeTotal" title="AGIlité+Esquive+Bonus de Corps" readonly>
<button class="dice" type="roll" value="&{template:agone-dodge} {{name=@{character_name}}} {{Dodge=[[1d10!+@{pcDodgeTotal}+?{Bonus/Malus|@{pcArmorAGIPenalty}}]]}}" name="roll_pc-dodge"></button>
<span>Défense naturelle</span>
<input type="number" name="attr_pcNaturalDefense" title="AGIlité+Bonus de Corps" readonly>
<button class="dice" type="roll" value="&{template:agone-natural-defense} {{name=@{character_name}}} {{NaturalDefense=[[1d10!+@{pcNaturalDefense}+?{Bonus/Malus|@{pcArmorAGIPenalty}}]]}}" name="roll_pc-natural-defense"></button>
<span>Distance</span>
<input type="number" name="attr_pcDistanceDodge" title="(AGIlité+Esquive)/2" readonly>
</div>
<div class="pc-weapons grid">
<span class="title">Nom</span>
<span class="title">TAI</span>
<span class="title">Initiative</span>
<span class="title">Attaque</span>
<span class="title">Défense</span>
<span class="title">Dom.+BD</span>
<span class="title">Type</span>
<span class="title">Style</span>
<span class="title">Compétence</span>
<fieldset class="repeating_pc-weapons">
<div class="pc-weapons-rows grid">
<input type="text" name="attr_pcWeaponName" class="max" title="Nom de l'arme">
<button class="dice item-left" type="roll" value="?{Jet|Initiative, &{template:agone-initiative&amp;#125; {{name=@{selected|character_name}&amp;#125;&amp;#125; {{weapon=(@{pcWeaponName})&amp;#125;&amp;#125; {{Initiative=[[1d10+@{pcWeaponInitTotal}+?{Bonus/Malus&amp;#124;0&amp;#125; &{tracker&amp;#125;]]&amp;#125;&amp;#125;|Attaque, &{template:agone-attack&amp;#125; {{name=@{character_name}&amp;#125;&amp;#125; {{weapon=(@{pcWeaponName})&amp;#125;&amp;#125; {{Attack=[[1d10!+@{pcWeaponAttackTotal}+?{Bonus/Malus&amp;#124;0&amp;#125;]]&amp;#125;&amp;#125; {{Type=@{pcWeaponType}&amp;#125;&amp;#125;|Parade, &{template:agone-defense&amp;#125; {{name=@{character_name}&amp;#125;&amp;#125; {{weapon=(@{pcWeaponName})&amp;#125;&amp;#125; {{Defense=[[1d10!+@{pcWeaponDefenseTotal}+?{Bonus/Malus&amp;#124;0&amp;#125;]]&amp;#125;&amp;#125;|Esquive, &{template:agone-dodge&amp;#125; {{name=@{character_name}&amp;#125;&amp;#125; {{Dodge=[[1d10!+@{pcDodgeTotal}+?{Bonus/Malus&amp;#124;@{pcArmorAGIPenalty}&amp;#125;]]&amp;#125;&amp;#125;|Défense naturelle, &{template:agone-natural-defense&amp;#125; {{name=@{character_name}&amp;#125;&amp;#125; {{NaturalDefense=[[1d10!+@{pcNaturalDefense}+?{Bonus/Malus&amp;#124;@{pcArmorAGIPenalty}&amp;#125;]]&amp;#125;&amp;#125;}" name="roll_pc-fight"></button>
<input type="number" name="attr_pcWeaponSIZ" title="Score de TAI de l'arme">
<input type="number" name="attr_pcWeaponInit" class="half-number item-right" title="Initiative de l'arme">
<input type="number" name="attr_pcWeaponInitTotal" class="half-number" title="Initiative totale du personnage (PER+AGI+Bonus de Corps+Bonus de l'arme)" readonly>
<button class="dice item-left" type="roll" value="&{template:agone-initiative} {{name=@{selected|character_name} (@{pcWeaponName})}} {{Initiative=[[1d10+@{pcWeaponInitTotal}+?{Bonus/Malus|0} &{tracker}]]}}" name="roll_pc-weapon-init"></button>
<input type="number" name="attr_pcWeaponAttack" class="half-number item-right" title="Attaque de l'arme">
<input type="number" name="attr_pcWeaponAttackTotal" class="half-number" title="Attaque totale du personnage ([MEL ou TIR]+Arme+Bonus de Corps+Bonus de l'arme)" readonly>
<button class="dice item-left" type="roll" value="&{template:agone-attack} {{name=@{character_name}}} {{weapon=(@{pcWeaponName})}} {{Attack=[[1d10!+@{pcWeaponAttackTotal}+?{Bonus/Malus|0}]]}} {{Type=@{pcWeaponType}}}" name="roll_pc-attack"></button>
<input type="number" name="attr_pcWeaponDefense" class="half-number item-right" title="Parade de l'arme">
<input type="number" name="attr_pcWeaponDefenseTotal" class="half-number" title="Parade totale du personnage (MEL+Arme+Bonus de Corps+Bonus de l'arme)" readonly>
<button class="dice item-left" type="roll" value="&{template:agone-defense} {{name=@{character_name}}} {{weapon=(@{pcWeaponName})}} {{Defense=[[1d10!+@{pcWeaponDefenseTotal}+?{Bonus/Malus|0}]]}}" name="roll_pc-defense"></button>
<input type="number" name="attr_pcWeaponDamage" class="half-number" title="Dommages de l'arme">
<input type="number" name="attr_pcWeaponDDB" class="half-number" title="Dommages + BD du personnage" readonly>
<select name="attr_pcWeaponType" class="max" title="Type de dégâts de l'arme">
<option value="Perforant">P</option>
<option value="Tranchant">T</option>
<option value="Perforant/Tranchant">PT</option>
<option value="Contondant">C</option>
</select>
<select name="attr_pcWeaponStyle" class="max" title="Style de combat de l'arme">
<option value="melee">Mêlée</option>
<option value="thrown">Jet</option>
<option value="missile">Trait</option>
</select>
<select name="attr_pcWeaponSkill" class="max" title="Compétence d'arme associée">
<option value="@{pcWeaponSkill-1}">Armes 1</option>
<option value="@{pcWeaponSkill-2}">Armes 2</option>
<option value="@{pcWeaponSkill-3}">Armes 3</option>
<option value="@{pcWeaponSkill-4}">Armes 4</option>
<option value="@{pcWeaponSkill-5}">Armes 5</option>
<option value="@{pcWeaponSkill-6}">Armes 6</option>
<option value="@{pcWeaponSkill-7}">Armes 7</option>
<option value="@{pcWeaponSkill-8}">Armes 8</option>
<option value="@{pcWeaponSkill-9}">Armes 9</option>
<option value="@{pcWeaponSkill-10}">Armes 10</option>
</select>
<textarea name="attr_pcWeaponDescription" class="expandable shadow border" placeholder="Particularités de l'arme"></textarea>
</div>
</fieldset>
</div>
</div>
<div>
<input type="checkbox" name="attr_pcAscendancyCheck" class="pc-ascendancy-switch switch">
<div class="pc-ascendancy-menu title">
<span>EMPRISE</span>
<button class="dice" type="roll" value="@{pcAscendancySelection}" name="roll_pc-ascendancy-global"></button>
<span>Initiative</span>
<input type="number" name="attr_pcMagicInit" title="Initiative pour lancer un sort (Init+10)" readonly>
<button class="dice" type="roll" value="&{template:agone-initiative} {{name=@{selected|character_name}}} {{Initiative=[[1d10+@{pcMagicInit}+?{Bonus/Malus|0} &{tracker}]]}}" name="roll_pc-magic-init"></button>
</div>
<div class="pc-ascendancy grid">
<span class="title">Danseur</span>
<span class="title">Expérience</span>
<span class="title">Mémoire</span>
<span class="title">Bonus d'EMP</span>
<span class="title">Empathie</span>
<span class="title">Endurance</span>
<span class="title">Potentiel</span>
<span class="title">Improvisation</span>
<fieldset class="repeating_pc-ascendancies">
<div class="pc-ascendancy-rows grid">
<input type="text" name="attr_pcDancer" class="max" title="Nom du Danseur">
<input type="number" name="attr_pcDancerExp" title="Expérience non dépensée du Danseur">
<input type="number" name="attr_pcDancerMemory" class="half-number item-right" title="Mémoire restante du Danseur">
<input type="number" name="attr_pcDancerMemory_max" class="half-number item-left" title="Mémoire totale du Danseur">
<input type="number" name="attr_pcDancerASCBonus" title="Bonus d'Emprise du Danseur">
<input type="number" name="attr_pcDancerEmpathy" title="Empathie du Danseur">
<input type="number" name="attr_pcDancerEndurance" class="half-number item-right" title="Endurance restante du Danseur">
<input type="number" name="attr_pcDancerEndurance_max" class="half-number item-left" title="Endurance totale du Danseur">
<input type="number" name="attr_pcAscendancyAptitude" class="item-right" title="Potentiel d'Emprise avec ce Danseur (EMP+[Résonance ou Connaissances des Danseurs]+Bonus d'Esprit+Bonus d'EMP du Danseur)">
<button class="dice item-left" type="roll" value="&{template:agone-ascendancy} {{name=@{character_name}}} {{dancer=@{pcDancer}}} {{Ascendancy=[[1d10!+@{pcAscendancyAptitude}+?{Bonus/Malus|0}]]}}" name="roll_pc-ascendancy"></button>
<input type="number" name="attr_pcASCImproAptitude" class="item-right" title="Potentiel d'improvisation en Emprise avec ce Danseur (CRÉ+[Résonance ou Empathie du Danseur]+Bonus d'Esprit)">
<button class="dice item-left" type="roll" value="&{template:agone-ascendancy-impro} {{name=@{character_name}}} {{dancer=@{pcDancer}}} {{Ascendancy (impro)=[[1d10!+@{pcASCImproAptitude}+?{Bonus/Malus|0}]]}}" name="roll_pc-ascendancy-impro"></button>
</div>
</fieldset>
</div>
</div>
<div>
<input type="checkbox" name="attr_pcArtCheck" class="pc-art-switch switch">
<div class="pc-art-menu title">
<span>ARTS MAGIQUES</span>
<button class="dice" type="roll" value="@{pcArtSelection}" name="roll_pc-art-global"></button>
Initiative <input type="number" name="attr_pcMagicInit" title="Initiative pour lancer un sort (Init+10)" readonly>
<button class="dice" type="roll" value="&{template:agone-initiative} {{name=@{selected|character_name}}} {{Initiative=[[1d10+@{pcMagicInit}+?{Bonus/Malus|0} &{tracker}]]}}" name="roll_pc-magic-init"></button>
</div>
<div class="pc-art grid">
<span class="title">Arts Magiques</span>
<span class="title">Potentiel</span>
<span class="title">Improvisation</span>
<fieldset class="repeating_pc-arts">
<div class="pc-art-rows grid">
<input type="text" name="attr_pcArtName" class="max" title="Art magique">
<input type="number" name="attr_pcArtAptitude" title="Potentiel d'Art magique (ART+[Art Magique ou Art profane]+Bonus d'Âme)">
<button class="dice item-left" type="roll" value="&{template:agone-art} {{name=@{character_name}}} {{Art=@{pcArtName} : [[1d10!+@{pcArtAptitude}+?{Bonus/Malus|0}]]}}" name="roll_pc-art"></button>
<input type="number" name="attr_pcArtImproAptitude" title="Potentiel d'improvisation en Art magique (CRÉ+[Art Magique ou Art profane]+Bonus d'Âme)">
<button class="dice item-left" type="roll" value="&{template:agone-art-impro} {{name=@{character_name}}} {{Art (impro)=@{pcArtName} (impro) : [[1d10!+@{pcArtImproAptitude}+?{Bonus/Malus|0}]]}}" name="roll_pc-art-impro"></button>
</div>
</fieldset>
</div>
</div>
<div>
<input type="checkbox" name="attr_pcSpellsCheck" class="pc-spells-switch switch">
<div class="pc-spells-menu title">
<span>SORTS, ŒUVRES & MAGIES DIVERSES</span>
</div>
<div class="pc-spells grid">
<span class="title">Nom</span>
<span class="title">Type</span>
<span class="title">Seuil</span>
<span class="title">Portée</span>
<span class="title">Temps</span>
<span class="title">Durée</span>
<span class="title">Danseur</span>
<fieldset class="repeating_pc-spells">
<div class="pc-spells-rows grid">
<input type="text" name="attr_pcSpellName" class="max" title="Nom de la magie">
<input type="text" name="attr_pcSpellBranch" class="max" title="Type de la magie">
<input type="number" name="attr_pcSpellThreshold" title="Seuil de la magie">
<input type="text" name="attr_pcSpellRange" class="max" title="Portée/Zone d'effet de la magie">
<input type="text" name="attr_pcSpellExec" class="max" title="Temps d'exécution de la magie">
<input type="text" name="attr_pcSpellDuration" class="max" title="Durée de la magie">
<input type="text" name="attr_pcSpellDancer" class="max" title="Danseur pour la magie">
<textarea name="attr_pcSpellDescription" class="expandable" placeholder="Description de la magie"></textarea>
</div>
</fieldset>
</div>
</div>
<div>
<input type="checkbox" name="attr_pcInvokingCheck" class="pc-invoking-switch switch">
<div class="pc-invoking-menu title">
<span>CONNIVENCES,</span>
<span>ADVOCATUS DIABOLI & ENCRES</span>
</div>
<div class="pc-invoking grid">
<span class="pc-invoking-apt-lbl title">Pot. de conjuration</span>
<input type="number" name="attr_pcInvokingAptitute" class="item-right" title="Potentiel de conguration (Noirceur+Démonologie+Bonus d'Âme)">
<button class="dice item-left" type="roll" value="&{template:agone-invoking} {{name=@{character_name}}}{{Invoking=[[1d10!+@{pcInvokingAptitute}+?{Bonus/Malus|0}]]}}" name="roll_pc-invoking"></button>
<span class="title">I</span>
<input type="number" name="attr_pcInkI" title="Encres de Cercle I">
<span class="title">II</span>
<input type="number" name="attr_pcInkII" title="Encres de Cercle II">
<span class="title">III</span>
<input type="number" name="attr_pcInkIII" title="Encres de Cercle III">
<span class="title">IV</span>
<input type="number" name="attr_pcInkIV" title="Encres de Cercle IV">
<span class="title">V</span>
<input type="number" name="attr_pcInkV" title="Encres de Cercle V">
<fieldset class="repeating_pc-invoking">
<textarea name="attr_pcConnivance" class="expandable" placeholder="Termes de la Connivence"></textarea>
</fieldset>
<fieldset class="repeating_pc-advocatus-diaboli">
<textarea name="attr_pcAdvocatusDiaboli" class="expandable" placeholder="Advocatus Diaboli en charge de la Connivence"></textarea>
</fieldset>
</div>
</div>
<div>
<input type="checkbox" name="attr_pcNotesCheck" class="pc-notes-switch switch">
<div class="pc-notes-menu title">
<span>NOTES</span>
</div>
<div class="pc-notes auto-expand">
<span name="attr_pcNotes"></span>
<textarea name="attr_pcNotes" spellcheck="false" placeholder="Notes"></textarea>
</div>
</div>
</div>
<div class="companion-sheet section">
<div class="companion-infos grid">
<span class="title">Nom</span>
<input type="text" name="attr_character_name" class="max" title="Nom du compagnon">
<span class="title">Âge</span>
<input type="text" name="attr_companionAge" class="max" title="Âge du compagnon">
<span class="title">Expérience</span>
<input type="number" name="attr_companionExp" title="Expérience du compagnon">
<span class="title">Taille</span>
<input type="text" name="attr_companionSize" class="max" title="Taille du compagnon">
<span class="title">Masse</span>
<input type="text" name="attr_companionWeight" class="max" title="Masse du compagnon">
</div>
<textarea name="attr_companionDescription" class="companion-description" placeholder="Description du compagnon"></textarea>
<div class="wood1 title">
<span>CARACTÉRISTIQUES</span>
<button class="dice" type="roll" value="?{Caratéristique|AGIlité, &{template:agone-chars&amp;#125; {{name=@{character_name}&amp;#125;&amp;#125; {{Characteristic=AGIlité : [[1d10!+2*@{companionAgility}+?{Bonus/Malus&amp;#124;0&amp;#125;]]&amp;#125;&amp;#125;|CHArisme, &{template:agone-chars&amp;#125; {{name=@{character_name}&amp;#125;&amp;#125; {{Characteristic=CHArisme : [[1d10!+2*@{companionCharisma}+?{Bonus/Malus&amp;#124;0&amp;#125;]]&amp;#125;&amp;#125;|CRÉativité, &{template:agone-chars&amp;#125; {{name=@{character_name}&amp;#125;&amp;#125; {{Characteristic=CRÉativité : [[1d10!+2*@{companionCreativity}+?{Bonus/Malus&amp;#124;0&amp;#125;]]&amp;#125;&amp;#125;|FORce, &{template:agone-chars&amp;#125; {{name=@{character_name}&amp;#125;&amp;#125; {{Characteristic=FORce : [[1d10!+2*@{companionStrength}+?{Bonus/Malus&amp;#124;0&amp;#125;]]&amp;#125;&amp;#125;|INTelligence, &{template:agone-chars&amp;#125; {{name=@{character_name}&amp;#125;&amp;#125; {{Characteristic=INTelligence : [[1d10!+2*@{companionIntelligence}+?{Bonus/Malus&amp;#124;0&amp;#125;]]&amp;#125;&amp;#125;|PERception, &{template:agone-chars&amp;#125; {{name=@{character_name}&amp;#125;&amp;#125; {{Characteristic=PERception : [[1d10!+2*@{companionPerception}+?{Bonus/Malus&amp;#124;0&amp;#125;]]&amp;#125;&amp;#125;|RÉSistance, &{template:agone-chars&amp;#125; {{name=@{character_name}&amp;#125;&amp;#125; {{Characteristic=RÉSistance : [[1d10!+2*@{companionStamina}+?{Bonus/Malus&amp;#124;0&amp;#125;]]&amp;#125;&amp;#125;|VOLonté, &{template:agone-chars&amp;#125; {{name=@{character_name}&amp;#125;&amp;#125; {{Characteristic=VOLonté : [[1d10!+2*@{companionWill}+?{Bonus/Malus&amp;#124;0&amp;#125;]]&amp;#125;&amp;#125;}" name="roll_companion-chars"></button>
<span>Fumble</span>
<button class="dice" type="roll" value="&{template:agone-fumble} {{name=@{character_name}}} {{Fumble=[[?{Ancien jet}-1d10!]]}}" name="roll_companion-fumble"></button>
</div>
<div class="companion-chars grid">
<span>AGI</span>
<input type="number" name="attr_companionAgility" class="half-number item-right" title="AGIlité du compagnon">
<input type="number" name="attr_companionAgilityExp" class="half-number item-left" title="Expérience dépensée en AGIlité du compagnon">
<span>FOR</span>
<input type="number" name="attr_companionStrength" class="half-number item-right" title="FORce du compagnon">
<input type="number" name="attr_companionStrengthExp" class="half-number item-left" title="Expérience dépensée en FORce du compagnon">
<span>PER</span>
<input type="number" name="attr_companionPerception" class="half-number item-right" title="PERception du compagnon">
<input type="number" name="attr_companionPerceptionExp" class="half-number item-left" title="Expérience dépensée en Perception du compagnon">
<span>RÉS</span>
<input type="number" name="attr_companionStamina" class="half-number item-right" title="RÉSistance du compagnon">
<input type="number" name="attr_companionStaminaExp" class="half-number item-left" title="Expérience dépensée en RÉSistance du compagnon">
<span>MÊL</span>
<input type="number" name="attr_companionMelee" title="MÊLée du compagnon" readonly>
<span>TIR</span>
<input type="number" name="attr_companionAim" title="TIR du compagnon" readonly>
<span>INT</span>
<input type="number" name="attr_companionIntelligence" class="half-number item-right" title="INTelligence du compagnon">
<input type="number" name="attr_companionIntelligenceExp" class="half-number item-left" title="Expérience dépensée en INTelligence du compagnon">
<span>VOL</span>
<input type="number" name="attr_companionWill" class="half-number item-right" title="VOLonté du compagnon">
<input type="number" name="attr_companionWillExp" class="half-number item-left" title="Expérience dépensée en VOLonté du compagnon">
<span>CHA</span>
<input type="number" name="attr_companionCharisma" class="half-number item-right" title="CHArisme du compagnon">
<input type="number" name="attr_companionCharismaExp" class="half-number item-left" title="Expérience dépensée en CHArisme du compagnon">
<span>CRÉ</span>
<input type="number" name="attr_companionCreativity" class="half-number item-right" title="CRÉativité du compagnon">
<input type="number" name="attr_companionCreativityExp" class="half-number item-left" title="Expérience dépensée en CRÉativité du compagnon">
<span>EMP</span>
<input type="number" name="attr_companionAscendancy" class="companion-chars-3" title="EMPrise du compagnon">
<span>ART</span>
<input type="number" name="attr_companionArt" class="companion-chars-4" title="ART du compagnon" readonly>
<span>TAI</span>
<input type="number" name="attr_companionSIZ" title="TAI du compagnon">
<span>MV</span>
<input type="number" name="attr_companionMove" title="MV du compagnon">
<span>BD</span>
<input type="number" name="attr_companionDamageBonus" class="companion-chars-7" title="BD du compagnon">
<span>PdV</span>
<input type="number" name="attr_companionHP_max" class="companion-chars-8" title="Points de Vie du compagnon">
<span>SBG</span>
<input type="number" name="attr_companionSeriousWoundThreshold" class="companion-chars-1" title="Seuil de Blessure Grave du compagnon" readonly>
<span>SBC</span>
<input type="number" name="attr_companionCriticalWoundThreshold" class="companion-chars-2" title="Seuil de Blessure Critique du compagnon" readonly>
<span>CM</span>
<input type="number" name="attr_companionMaxLoad" class="companion-chars-3" title="Charge maximum du compagnon">
<span>DC</span>
<input type="number" name="attr_companionHalfLoad" class="companion-chars-4" title="Demi charge du compagnon" readonly>
<span>CQ</span>
<input type="number" name="attr_companionDailyLoad" title="Charge quotidienne du compagnon" readonly>
<span>Actuels</span>
<input type="number" name="attr_companionHP" title="Point(s) de Vie actuel(s) du compagnon">
<span>BG</span>
<input type="number" name="attr_companionSeriousWound" class="companion-chars-7" title="Blessure(s) Graves(s) encaissée(s) du compagnon" value="0">
<span>Malus</span>
<input type="number" name="attr_companionSeriousWoundPenalty" class="companion-chars-8" title="Malus concernant la ou les Blessure(s) Grave(s) du compagnon" readonly>
</div>
<div class="wood2 title">
<span>COMPÉTENCES</span>
<button class="dice" type="roll" value="@{companionSkillsSelection}" name="roll_companion-skills"></button>
</div>
<fieldset class="repeating_companion-skills">
<select name="attr_companionSkillName">
<option>Acrobatie (Maraude)</option>
<option>Alchemie (Occulte)</option>
<option>Alphabets (Savoir)</option>
<option>Armes (Épreuve)</option>
<option>Arts Magiques (Occulte)</option>
<option>Astronomie (Savoir)</option>
<option>Athlétisme (Épreuve)</option>
<option>Baratin (Société)</option>
<option>Camouflage (Maraude)</option>
<option>Chasse (Maraude)</option>
<option>Chirurgie (Savoir)</option>
<option>Conn. des Danseurs (Occulte)</option>
<option>Cryptogramme (Occulte)</option>
<option>Cultes (Savoir)</option>
<option>Déguisement (Maraude)</option>
<option>Démonologie (Occulte)</option>
<option>Diplomatie (Société)</option>
<option>Discrétion (Maraude)</option>
<option>Élémentalisme (Occulte)</option>
<option>Éloquence (Société)</option>
<option>Équitation (Épreuve)</option>
<option>Escalade (Épreuve)</option>
<option>Esquive (Épreuve)</option>
<option>Étiquette (Société)</option>
<option>Fouille (Maraude)</option>
<option>Géographie (Savoir)</option>
<option>Harmonie (Occulte)</option>
<option>Herboristerie (Savoir)</option>
<option>Histoire & légendes (Savoir)</option>
<option>Intendance (Société)</option>
<option>Intrigue (Maraude)</option>
<option>Jeu (Maraude)</option>
<option>Langues (Savoir)</option>
<option>Lois (Savoir)</option>
<option>Médecine (Savoir)</option>
<option>Musique (Société)</option>
<option>Natation (Épreuve)</option>
<option>Navigation (Savoir)</option>
<option>Négoce (Société)</option>
<option>Passe-passe (Maraude)</option>
<option>Peinture (Société)</option>
<option>Poésie (Société)</option>
<option>Poisons (Maraude)</option>
<option>Premiers soins (Épreuve)</option>
<option>Résonance (Occulte)</option>
<option>Saisons (Savoir)</option>
<option>Savoir-faire (Société)</option>
<option>Sculpture (Société)</option>
<option>Serrurerie (Maraude)</option>
<option>Stratégie (Savoir)</option>
<option>Survie (Épreuve)</option>
<option>Vigilance (Épreuve)</option>
<option>Us et coutumes (Société)</option>
<option>Zoologie (Savoir)</option>
</select>
<input type="text" name="attr_companionSkillBranch" title="Domaine de la compétence (si applicable)" placeholder="domaine">
<input type="text" name="attr_companionSkillSpecialty" title="Spécialité de la compétence" placeholder="spécialité">
<input type="number" name="attr_companionSkillScore" title="Score de la compétence">
<input type="number" name="attr_companionSkillExp" title="Expérience dépensée dans la compétence">
<input type="hidden" name="attr_companionSkill">
<button class="dice" type="roll" value="&{template:agone-skills} {{name=@{character_name}}} {{Skill=@{companionSkill} : [[1d10!+@{companionSkillScore}+?{Caractéristique|AGIlité, @{companionAgility}|FORce, @{companionStrength}|PERception, @{companionPerception}|RÉSistance, @{companionStamina}|INTelligence, @{companionIntelligence}|VOLonté, @{companionWill}|CHArisme, @{companionCharisma}|CRÉativité, @{companionCreativity}|MÊLée, @{companionMelee}|TIR, @{companionAim}}+?{Bonus/Malus|0}}]]}}" name="roll_companion-skill"></button>
</fieldset>
<div class="wood3 title">
<span>ARMES&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>
<span>Initiative</span>
<input type="number" name="attr_companionInit" title="AGI+PER" readonly>
<button class="dice" type="roll" value="&{template:agone-initiative} {{name=@{selected|character_name}}} {{Initiative=[[1d10!+@{companionInit}+?{Bonus/Malus|0} &{tracker}]]}}" name="roll_companion-init"></button>
<span>Esquive</span>
<input type="number" name="attr_companionDodgeTotal" title="AGI+Esquive" readonly>
<button class="dice" type="roll" value="&{template:agone-dodge} {{name=@{character_name}}} {{Dodge=[[1d10!+@{companionDodgeTotal}+?{Bonus/Malus|0}]]}}" name="roll_companion-dodge"></button>
<span>Défense naturelle</span>
<input type="number" name="attr_companionNaturalDefense" title="AGI" readonly>
<button class="dice" type="roll" value="&{template:agone-natural-defense} {{name=@{character_name}}} {{NaturalDefense=[[1d10!+@{companionNaturalDefense}+?{Bonus/Malus|0}]]}}" name="roll_npcSkillagnon-natural-defense"></button>
<span>Distance</span>
<input type="number" name="attr_companionDistanceDodge" title="(AGI+Esquive)/2" readonly>
<span>Armure</span>
<input type="number" name="attr_companionArmor" class="half-number" value="0" title="Armure du PNJ">
<input type="number" name="attr_companionArmorAgilityPenalty" class="half-number" value="0" title="Malus de l'armure du PNJ">
</div>
<div class="companion-weapons grid">
<span class="title">Armes</span>
<span class="title">Compétence</span>
<span class="title">Initiative</span>
<span class="title">Attaque</span>
<span class="title">Défense</span>
<span class="title">Dom.+BD</span>
<span class="title">Type</span>
<span class="title">Style</span>
<span class="title">TAI</span>
</div>
<fieldset class="repeating_companion-weapons">
<div class="companion-weapons-rows grid">
<input type="text" name="attr_companionWeaponName" class="max" title="Nom de l'arme" placeholder="nom">
<select name="attr_companionWeaponSkill" class="max" title="Compétence d'arme associée">
<option value="@{companionWeaponSkill-1}">Armes 1</option>
<option value="@{companionWeaponSkill-2}">Armes 2</option>
<option value="@{companionWeaponSkill-3}">Armes 3</option>
<option value="@{companionWeaponSkill-4}">Armes 4</option>
<option value="@{companionWeaponSkill-5}">Armes 5</option>
<option value="@{companionWeaponSkill-6}">Armes 6</option>
<option value="@{companionWeaponSkill-7}">Armes 7</option>
<option value="@{companionWeaponSkill-8}">Armes 8</option>
<option value="@{companionWeaponSkill-9}">Armes 9</option>
<option value="@{companionWeaponSkill-10}">Armes 10</option>
</select>
<button class="dice" type="roll" value="?{Jet|Initiative, &{template:agone-initiative&amp;#125; {{name=@{selected|character_name}&amp;#125;&amp;#125 {{weapon=(@{companionWeaponName})&amp;#125;&amp;#125; {{Initiative=[[1d10+@{companionWeaponInitTotal}+?{Bonus/Malus&amp;#124;0&amp;#125; &{tracker&amp;#125;]]&amp;#125;&amp;#125;|Attaque, &{template:agone-attack&amp;#125; {{name=@{character_name}&amp;#125;&amp;#125; {{weapon=(@{companionWeaponName})&amp;#125;&amp;#125; {{Attack=[[1d10!+@{companionWeaponAttackTotal}+?{Bonus/Malus&amp;#124;0&amp;#125;]]&amp;#125;&amp;#125; {{Type=@{companionWeaponType}&amp;#125;&amp;#125;|Parade, &{template:agone-defense&amp;#125; {{name=@{character_name}&amp;#125;&amp;#125; {{weapon=(@{companionWeaponName})&amp;#125;&amp;#125; {{Defense=[[1d10!+@{companionWeaponDefenseTotal}+?{Bonus/Malus&amp;#124;0&amp;#125;]]&amp;#125;&amp;#125;|Esquive, &{template:agone-dodge&amp;#125; {{name=@{character_name}&amp;#125;&amp;#125; {{Dodge=[[1d10!+@{companionDodgeTotal}+?{Bonus/Malus&amp;#124;0&amp;#125;]]&amp;#125;&amp;#125;|Défense naturelle, &{template:agone-natural-defense&amp;#125; {{name=@{character_name}&amp;#125;&amp;#125; {{NaturalDefense=[[1d10!+@{companionNaturalDefense}+?{Bonus/Malus&amp;#124;0&amp;#125;]]&amp;#125;&amp;#125;}" name="roll_companion-fight"></button>
<input type="number" name="attr_companionWeaponInit" class="half-number item-right" title="Initiative de l'arme du compagnon">
<input type="number" name="attr_companionWeaponInitTotal" class="half-number" title="Initiative totale du compagnon ([PER+AGI]+Bonus d'Initiative de l'arme)" readonly>
<button class="dice item-left" type="roll" value="&{template:agone-initiative} {{name=@{selected|character_name}}} {{weapon=(@{companionWeaponName})}} {{Initiative=[[1d10+@{companionWeaponInitTotal}+?{Bonus/Malus|0} &{tracker}]]}}" name="roll_companion-init"></button>
<input type="number" name="attr_companionWeaponAttack" class="half-number item-right" title="Attaque de l'arme du compagnon">
<input type="number" name="attr_companionWeaponAttackTotal" class="half-number" title="Attaque totale du compagnon ([MÉL ou TIR]+Arme+Bonus d'Attaque de l'arme)" readonly>
<button class="dice item-left" type="roll" value="&{template:agone-attack} {{name=@{character_name}}} {{weapon=(@{companionWeaponName})}} {{Attack=[[1d10!+@{companionWeaponAttackTotal}+?{Bonus/Malus|0}]]}} {{Type=@{companionWeaponType}}}" name="roll_companion-attack"></button>
<input type="number" name="attr_companionWeaponDefense" class="half-number item-right" title="Parade de l'arme du compagnon">
<input type="number" name="attr_companionWeaponDefenseTotal" class="half-number" title="Parade totale du compagnon (MÉL+Arme+Bonus de parade)" readonly>
<button class="dice item-left" type="roll" value="&{template:agone-defense} {{name=@{character_name}}} {{weapon=(@{companionWeaponName})}} {{Defense=[[1d10!+@{companionWeaponDefenseTotal}+?{Bonus/Malus|0}]]}}" name="roll_companion-defense"></button>
<input type="number" name="attr_companionWeaponDamage" class="half-number item-right" title="Dommages de l'arme du compagnon">
<input type="number" name="attr_companionWeaponDDB" class="half-number item-left" title="Dommages+BD du compagnon" readonly>
<select name="attr_companionWeaponType" class="max" title="Type de dégâts de l'arme">
<option value="Perforant">P</option>
<option value="Tranchant">T</option>
<option value="Perforant/Tranchant">PT</option>
<option value="Contondant">C</option>
</select>
<select name="attr_companionWeaponStyle" class="max" title="Style de combat, mêlée, jet ou trait">
<option value="melee">M</option>F
<option value="thrown">J</option>
<option value="missile">T</option>
</select>
<input type="number" class="half-number" name="attr_companionWeaponSIZ" title="Score de TAI de l'arme">
</div>
</fieldset>
</div>
<div class="demon-sheet section">
<div class="demon-infos grid">
<span class="title">Nom</span>
<input type="text" name="attr_character_name" class="max" title="Nom du Démon">
<span class="title">Origine</span>
<select name="attr_demonRace" class="max" title="Origine du Démon">
<option value="Opalin">Opalin</option>
<option value="Azuren">Azurin</option>
<option value="Saphiren">Saphirin</option>
<option value="Amber">Ambré</option>
<option value="Saffron">Safran</option>
<option value="Crimson">Carmin</option>
<option value="Scarlet">Vermillon</option>
<option value="Obsidian">Obsidien</option>
</select>
<span class="title">Sexe</span>
<input type="text" name="attr_demonSex" class="max" title="Sexe du Démon">
<span class="title">Taille</span>
<input type="text" name="attr_demonSize" class="max" title="Taille du Démon">
<span class="title">Masse</span>
<input type="text" name="attr_demonWeight" class="max" title="Masse du Démon">
<span class="title">Âge</span>
<input type="text" name="attr_demonAge" class="max" title="Âge du Démon">
</div>
<div class=" wood1 title">
<span>CARACTÉRISTIQUES</span>
<button class="dice" type="roll" value="/w gm ?{Caratéristique|AGIlité, &{template:agone-chars&amp;#125; {{name=@{character_name}&amp;#125;&amp;#125; {{Characteristic=AGIlité : [[1d10!+2*@{demonAgility}+?{Bonus/Malus&amp;#124;0&amp;#125;]]&amp;#125;&amp;#125;|CHArisme, &{template:agone-chars&amp;#125; {{name=@{character_name}&amp;#125;&amp;#125; {{Characteristic=CHArisme : [[1d10!+2*@{demonCharisma}+?{Bonus/Malus&amp;#124;0&amp;#125;]]&amp;#125;&amp;#125;|CRÉativité, &{template:agone-chars&amp;#125; {{name=@{character_name}&amp;#125;&amp;#125; {{Characteristic=CRÉativité : [[1d10!+2*@{demonCreativity}+?{Bonus/Malus&amp;#124;0&amp;#125;]]&amp;#125;&amp;#125;|FORce, &{template:agone-chars&amp;#125; {{name=@{character_name}&amp;#125;&amp;#125; {{Characteristic=FORce : [[1d10!+2*@{demonStrength}+?{Bonus/Malus&amp;#124;0&amp;#125;]]&amp;#125;&amp;#125;|INTelligence, &{template:agone-chars&amp;#125; {{name=@{character_name}&amp;#125;&amp;#125; {{Characteristic=INTelligence : [[1d10!+2*@{demonIntelligence}+?{Bonus/Malus&amp;#124;0&amp;#125;]]&amp;#125;&amp;#125;|PERception, &{template:agone-chars&amp;#125; {{name=@{character_name}&amp;#125;&amp;#125; {{Characteristic=PERception : [[1d10!+2*@{demonPerception}+?{Bonus/Malus&amp;#124;0&amp;#125;]]&amp;#125;&amp;#125;|RÉSistance, &{template:agone-chars&amp;#125; {{name=@{character_name}&amp;#125;&amp;#125; {{Characteristic=RÉSistance : [[1d10!+2*@{demonStamina}+?{Bonus/Malus&amp;#124;0&amp;#125;]]&amp;#125;&amp;#125;|VOLonté, &{template:agone-chars&amp;#125; {{name=@{character_name}&amp;#125;&amp;#125; {{Characteristic=VOLonté : [[1d10!+2*@{demonWill}+?{Bonus/Malus&amp;#124;0&amp;#125;]]&amp;#125;&amp;#125;}" name="roll_demon-chars"></button>
<span>Fumble</span>
<button class="dice" type="roll" value="/w gm &{template:agone-fumble} {{name=@{character_name}}} {{Fumble=[[?{Ancien jet}-1d10!]]}}" name="roll_demon-fumble"></button>
</div>
<div class="demon-chars grid">
<span class="title">TAI</span>
<input type="number" name="attr_demonSIZ" title="TAI du Démon">
<span class="title">MV</span>
<input type="number" name="attr_demonGroundMove" class="half-number item-right"title="MV au sol du Démon">
<input type="number" name="attr_demonFlightMove" class="half-number item-left"title="MV en vol du Démon">
<span class="title">BD</span>
<input type="number" name="attr_demonDamageBonus" title="BD du Démon">
<span class="title">DIF</span>
<input type="number" name="attr_demonDIF" title="DIFficulté de conjuration du Démon">
<span class="title">MÊL</span>
<input type="number" name="attr_demonMelee" title="MÊLée du Démon" readonly>
<span class="title">TIR</span>
<input type="number" name="attr_demonAim" title="TIR du Démon" readonly>
<span class="title">AGI</span>
<input type="number" name="attr_demonAgility" title="AGIlité du Démon">
<span class="title">FOR</span>
<input type="number" name="attr_demonStrength" class="demon-str" title="FORce du Démon">
<span class="title">PER</span>
<input type="number" name="attr_demonPerception" title="PERception du Démon">
<span class="title">RÉS</span>
<input type="number" name="attr_demonStamina" title="RÉSistance du Démon" readonly>
<span class="title">Densité</span>
<input type="number" name="attr_demonDensity_max" title="Densité du Démon">
<span class="title">Actuelle</span>
<input type="number" name="attr_demonDensity" title="Densité actuelle du Démon">
<span class="title">INT</span>
<input type="number" name="attr_demonIntelligence" title="INTelligence du Démon">
<span class="title">VOL</span>
<input type="number" name="attr_demonWill" class="demon-will" title="VOLonté du Démon">
<span class="title">CHA</span>
<input type="number" name="attr_demonCharisma" title="CHArisme du Démon">
<span class="title">CRÉ</span>
<input type="number" name="attr_demonCreativity" title="CRÉativité du Démon">
<span class="title">SBG</span>
<input type="number" name="attr_demonSeriousWoundThreshold" title="Seuil de Blessure Grave du Démon" readonly>
<span class="title">SBC</span>
<input type="number" name="attr_demonCriticalWoundThreshold" title="Seuil de Blessure Critique du Démon" readonly>
<span class="title">CM</span>
<input type="number" name="attr_demonMaxLoad" title="Charge maximum du Démon">
<span class="title">DC</span>
<input type="number" name="attr_demonHalfLoad" class="demon-dc" title="Demi-charge du Démon" readonly>
<span class="title">CQ</span>
<input type="number" name="attr_demonDailyLoad" title="Charge quotidienne du Démon" readonly>
<span class="title">BG</span>
<input type="number" name="attr_demonSeriousWound" title="Blessure(s) Grave(s) encaissée(s) du Démon" value="0">
<span class="title">Malus</span>
<input type="number" name="attr_demonSeriousWoundPenalty" title="Malus concernant la ou les Blessure(s) Grave(s) du Démon" readonly>
<span class="title">Opacité</span>
<input type="number" name="attr_demonOpacity" title="Opacité du Démon">
</div>
<div class="wood2 title">
<span>COMPÉTENCES</span>
<button class="dice" type="roll" value="/w gm @{demonSkillsSelection}" name="roll_demon-skills"></button>
</div>
<fieldset class="repeating_demon-skills">
<select name="attr_demonSkillName">
<option>Acrobatie (Maraude)</option>
<option>Alchemie (Occulte)</option>
<option>Alphabets (Savoir)</option>
<option>Armes (Épreuve)</option>
<option>Arts Magiques (Occulte)</option>
<option>Astronomie (Savoir)</option>
<option>Athlétisme (Épreuve)</option>
<option>Baratin (Société)</option>
<option>Camouflage (Maraude)</option>
<option>Chasse (Maraude)</option>
<option>Chirurgie (Savoir)</option>
<option>Conn. des Danseurs (Occulte)</option>
<option>Cryptogramme (Occulte)</option>
<option>Cultes (Savoir)</option>
<option>Déguisement (Maraude)</option>
<option>Démonologie (Occulte)</option>
<option>Diplomatie (Société)</option>
<option>Discrétion (Maraude)</option>
<option>Élémentalisme (Occulte)</option>
<option>Éloquence (Société)</option>
<option>Équitation (Épreuve)</option>
<option>Escalade (Épreuve)</option>
<option>Esquive (Épreuve)</option>
<option>Étiquette (Société)</option>
<option>Fouille (Maraude)</option>
<option>Géographie (Savoir)</option>
<option>Harmonie (Occulte)</option>
<option>Herboristerie (Savoir)</option>
<option>Histoire & légendes (Savoir)</option>
<option>Intendance (Société)</option>
<option>Intrigue (Maraude)</option>
<option>Jeu (Maraude)</option>
<option>Langues (Savoir)</option>
<option>Lois (Savoir)</option>
<option>Médecine (Savoir)</option>
<option>Musique (Société)</option>
<option>Natation (Épreuve)</option>
<option>Navigation (Savoir)</option>
<option>Négoce (Société)</option>
<option>Passe-passe (Maraude)</option>
<option>Peinture (Société)</option>
<option>Poésie (Société)</option>
<option>Poisons (Maraude)</option>
<option>Premiers soins (Épreuve)</option>
<option>Résonance (Occulte)</option>
<option>Saisons (Savoir)</option>
<option>Savoir-faire (Société)</option>
<option>Sculpture (Société)</option>
<option>Serrurerie (Maraude)</option>
<option>Stratégie (Savoir)</option>
<option>Survie (Épreuve)</option>
<option>Vigilance (Épreuve)</option>
<option>Us et coutumes (Société)</option>
<option>Zoologie (Savoir)</option>
</select>
<input type="text" name="attr_demonSkillBranch" title="Domaine de la compétence (si applicable)" placeholder="domaine">
<input type="text" name="attr_demonSkillSpecialty" title="Spécialité de la compétence" placeholder="spécialité">
<input type="number" name="attr_demonSkillScore" title="Score de la compétence">
<input type="hidden" name="attr_demonSkill">
<button class="dice" type="roll" value="/w gm &{template:agone-skills} {{name=@{character_name}}} {{Skill=@{demonSkill} : [[1d10!+@{demonSkillScore}+?{Caractéristique|AGIlité, @{demonAgility}|FORce, @{demonStrength}|PERception, @{demonPerception}|RÉSistance, @{demonStamina}|INTelligence, @{demonIntelligence}|VOLonté, @{demonWill}|CHArisme, @{demonCharisma}|CRÉativité, @{demonCreativity}|MÊLée, @{demonMelee}|TIR, @{demonAim}}+?{Bonus/Malus|0}]]}}" name="roll_demon-competence"></button>
</fieldset>
<div class="demon-weapons-header wood3 title">
<span>ARMES&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>
<span>Initiative</span>
<input type="number" name="attr_demonInit" title="Initiative du personnage (AGIlité+PERception+Bonus de Corps)" readonly>
<button class="dice" type="roll" value="/w gm &{template:agone-initiative} {{name=@{selected|character_name}}} {{Initiative=[[1d10+@{demonInit}+?{Bonus/Malus|0} &{tracker}]]}}" name="roll_demon-init"></button>
<span>Esquive</span>
<input type="number" name="attr_demonDodgeTotal" title="AGIlité+Esquive+Bonus de Corps" readonly>
<button class="dice" type="roll" value="/w gm &{template:agone-dodge} {{name=@{character_name}}} {{Dodge=[[1d10!+@{demonDodgeTotal}+?{Bonus/Malus|0}]]}}" name="roll_demon-dodge"></button>
<span>Défense naturelle</span>
<input type="number" name="attr_demonNaturalDefense" title="AGIlité+Bonus de Corps" readonly>
<button class="dice" type="roll" value="/w gm &{template:agone-natural-defense} {{name=@{character_name}}} {{NaturalDefense=[[1d10!+@{demonNaturalDefense}+?{Bonus/Malus|0}]]}}" name="roll_demon-natural-defense"></button>
<span>Distance</span>
<input type="number" name="attr_demonDistanceDodge" title="(AGI+Esquive)/2" readonly>
<span>Armure</span>
<input type="number" name="attr_demonArmor" class="input-half-square shadow border" title="Armure du Démon">
<input type="number" name="attr_demonArmorAgilityPenalty" class="input-half-square shadow border" title="Malus d'armure du Démon">
</div>
<div class="demon-weapons grid">
<span class="title">Armes</span>
<span class="title">Compétence</span>
<span class="title">Initiative</span>
<span class="title">Attaque</span>
<span class="title">Défense</span>
<span class="title">Dom.+BD</span>
<span class="title">Type</span>
<span class="title">Style</span>
<span class="title">TAI</span>
</div>
<fieldset class="repeating_demon-weapons">
<div class="demon-weapons-rows grid">
<input type="text" name="attr_demonWeaponName" class="max" title="Nom de l'arme" placeholder="nom">
<select name="attr_demonWeaponSkill" class="max" title="Compétence d'arme associée">
<option value="@{demonWeaponSkill-1}">Armes 1</option>
<option value="@{demonWeaponSkill-2}">Armes 2</option>
<option value="@{demonWeaponSkill-3}">Armes 3</option>
<option value="@{demonWeaponSkill-4}">Armes 4</option>
<option value="@{demonWeaponSkill-5}">Armes 5</option>
<option value="@{demonWeaponSkill-6}">Armes 6</option>
<option value="@{demonWeaponSkill-7}">Armes 7</option>
<option value="@{demonWeaponSkill-8}">Armes 8</option>
<option value="@{demonWeaponSkill-9}">Armes 9</option>
<option value="@{demonWeaponSkill-10}">Armes 10</option>
</select>
<button class="dice" type="roll" value="/w gm ?{Jet|Initiative, &{template:agone-initiative&amp;#125; {{name=@{selected|character_name}&amp;#125;&amp;#125; {{weapon=(@{demonWeaponName})&amp;#125;&amp;#125; {{Initiative=[[1d10+@{demonWeaponInitTotal}+?{Bonus/Malus&amp;#124;0&amp;#125; &{tracker&amp;#125;]]&amp;#125;&amp;#125;|Attaque, &{template:agone-attack&amp;#125; {{name=@{character_name}&amp;#125;&amp;#125; {{weapon=(@{demonWeaponName})&amp;#125;&amp;#125; {{Attack=[[1d10!+@{demonWeaponAttackTotal}+?{Bonus/Malus&amp;#124;0&amp;#125;]]&amp;#125;&amp;#125; {{Type=@{demonWeaponType}&amp;#125;&amp;#125;|Parade, &{template:agone-defense&amp;#125; {{name=@{character_name}&amp;#125;&amp;#125; {{weapon=(@{demonWeaponName})&amp;#125;&amp;#125; {{Defense=[[1d10!+@{demonWeaponDefenseTotal}+?{Bonus/Malus&amp;#124;0&amp;#125;]]&amp;#125;&amp;#125;|Esquive, &{template:agone-dodge&amp;#125; {{name=@{character_name}&amp;#125;&amp;#125; {{Dodge=[[1d10!+@{demonDodgeTotal}+?{Bonus/Malus&amp;#124;0&amp;#125;]]&amp;#125;&amp;#125;|Défense naturelle, &{template:agone-natural-defense&amp;#125; {{name=@{character_name}&amp;#125;&amp;#125; {{NaturalDefense=[[1d10!+@{demonNaturalDefense}+?{Bonus/Malus&amp;#124;0&amp;#125;]]&amp;#125;&amp;#125;}" name="roll_demon-fight"></button>
<input type="number" name="attr_demonWeaponInit" class="half-number item-right" title="Initiative de l'arme du Démon">
<input type="number" name="attr_demonWeaponInitTotal" class="half-number" title="Initiative totale du demon ([PER+AGI]+Bonus d'Initiative de l'arme)" readonly>
<button class="dice item-left" type="roll" value="/w gm &{template:agone-initiative} {{name=@{selected|character_name} {{weapon=(@{demonWeaponName})}} {{Initiative=[[1d10+@{demonWeaponInitTotal}+?{Bonus/Malus|0} &{tracker}]]}}" name="roll_demon-init"></button>
<input type="number" name="attr_demonWeaponAttack" class="half-number item-right" title="Attaque de l'arme du Démon">
<input type="number" name="attr_demonWeaponAttackTotal" class="half-number" title="Attaque totale du Démon ([MÉL ou TIR]+Arme+Bonus d'Attaque de l'arme)" readonly>
<button class="dice item-left" type="roll" value="/w gm &{template:agone-attack} {{name=@{character_name}}} {{weapon=(@{demonWeaponName})}} {{Attack=[[1d10!+@{demonWeaponAttackTotal}+?{Bonus/Malus|0}]]}} {{Type=@{demonWeaponType}}}" name="roll_demon-attack"></button>
<input type="number" name="attr_demonWeaponDefense" class="half-number item-right" title="Parade de l'arme du Démon">
<input type="number" name="attr_demonWeaponDefenseTotal" class="half-number" title="Parade totale du Démon (MÉL+Arme+Bonus de parade de l'arme)" readonly>
<button class="dice item-left" type="roll" value="/w gm &{template:agone-defense} {{name=@{character_name}}} {{weapon=(@{demonWeaponName})}} {{Defense=[[1d10!+@{demonWeaponDefenseTotal}+?{Bonus/Malus|0}]]}}" name="roll_demon-defense"></button>
<input type="number" name="attr_demonWeaponDamage" class="half-number" title="Dommages de l'arme du Démon">
<input type="number" name="attr_demonWeaponDDB" class="half-number" title="Dommages+BD du Démon" readonly>
<select name="attr_demonWeaponType" class="max" title="Type de dégâts de l'arme">
<option value="Perforant">P</option>
<option value="Tranchant">T</option>
<option value="Perforant/Tranchant">PT</option>
<option value="Contondant">C</option>
</select>
<select name="attr_demonWeaponStyle" class="max" title="Style de combat, mêlée, jet ou trait">
<option value="melee">M</option>
<option value="thrown">J</option>
<option value="missile">T</option>
</select>
<input type="number" name="attr_demonWeaponSIZ" class="half-number" title="Score de TAI de l'arme">
</div>
</fieldset>
</div>
<div class="npc-sheet section">
<div class="npc-infos grid">
<span class="title">Nom</span>
<input type="text" name="attr_character_name" class="max" title="Nom du PNJ">
<span class="title">Âge</span>
<input type="text" name="attr_npcAge" class="max" title="Âge du PNJ">
<span class="title">Taille</span>
<input type="text" name="attr_npcSize" class="max" title="Taille du PNJ">
<span class="title">Masse</span>
<input type="text" name="attr_npcWeight" class="max" title="Masse du PNJ">
<span class="title">TAI</span>
<input type="number" name="attr_npcSIZ" class="max" title="TAI du PNJ">
<span class="title">MV</span>
<input type="number" name="attr_npcMove" class="max" title="MV du PNJ">
</div>
<textarea name="attr_npcDescription" class="npc-text expandable" placeholder="Description"></textarea>
<div class="wood1 title">
<span>CARACTÉRISTIQUES</span>
<button class="dice" type="roll" value="/w gm ?{Caratéristique|AGIlité, &{template:agone-chars&amp;#125; {{name=@{character_name}&amp;#125;&amp;#125; {{Characteristic=AGIlité : [[1d10!+2*@{npcAgility}+@{npcBodyBonus}+?{Bonus/Malus&amp;#124;0&amp;#125;]]&amp;#125;&amp;#125;|CHArisme, &{template:agone-chars&amp;#125; {{name=@{character_name}&amp;#125;&amp;#125; {{Characteristic=CHArisme : [[1d10!+2*@{npcCharisma}+@{npcSoulBonus}+?{Bonus/Malus&amp;#124;0&amp;#125;]]&amp;#125;&amp;#125;|CRÉativité, &{template:agone-chars&amp;#125; {{name=@{character_name}&amp;#125;&amp;#125; {{Characteristic=CRÉativité : [[1d10!+2*@{npcCreativity}+@{npcSoulBonus}+?{Bonus/Malus&amp;#124;0&amp;#125;]]&amp;#125;&amp;#125;|FORce, &{template:agone-chars&amp;#125; {{name=@{character_name}&amp;#125;&amp;#125; {{Characteristic=FORce : [[1d10!+2*@{npcStrength}+@{npcBodyBonus}+?{Bonus/Malus&amp;#124;0&amp;#125;]]&amp;#125;&amp;#125;|INTelligence, &{template:agone-chars&amp;#125; {{name=@{character_name}&amp;#125;&amp;#125; {{Characteristic=INTelligence : [[1d10!+2*@{npcIntelligence}+@{npcSpiritBonus}+?{Bonus/Malus&amp;#124;0&amp;#125;]]&amp;#125;&amp;#125;|PERception, &{template:agone-chars&amp;#125; {{name=@{character_name}&amp;#125;&amp;#125; {{Characteristic=PERception : [[1d10!+2*@{npcPerception}+@{npcBodyBonus}+?{Bonus/Malus&amp;#124;0&amp;#125;]]&amp;#125;&amp;#125;|RÉSistance, &{template:agone-chars&amp;#125; {{name=@{character_name}&amp;#125;&amp;#125; {{Characteristic=RÉSistance : [[1d10!+2*@{npcStamina}+@{npcBodyBonus}+?{Bonus/Malus&amp;#124;0&amp;#125;]]&amp;#125;&amp;#125;|VOLonté, &{template:agone-chars&amp;#125; {{name=@{character_name}&amp;#125;&amp;#125; {{Characteristic=VOLonté : [[1d10!+2*@{npcWill}+@{npcSpiritBonus}+?{Bonus/Malus&amp;#124;0&amp;#125;]]&amp;#125;&amp;#125;}" name="roll_npc-chars" name="roll_npc-chars-global"></button>
<span>Flamme</span>
<input type="number" name="attr_npcFlame" title="Flamme du PNJ" readonly>
<span>Flamme Noire</span>
<input type="number" name="attr_npcDarkFlame" title="Flamme Noire du PNJ" readonly>
</div>
<div class="npc-chars grid">
<span class="npc-body-title title">CORPS</span>
<span class="npc-spirit-title title">ESPRIT</span>
<span class="npc-soul-title title">ÂME</span>
<span class="npc-body-lbl title">Corps</span>
<input type="number" name="attr_npcBody" class="npc-body" title="Corps du PNJ">
<span class="npc-dark-body-lbl title">Corps Noir</span>
<input type="number" name="attr_npcDarkBody" class="npc-dark-body" title="Corps Noir du PNJ">
<span class="npc-spirit-lbl title">Esprit</span>
<input type="number" name="attr_npcSpirit" class="npc-spirit" title="Esprit du PNJ">
<span class="npc-dark-spirit-lbl title">Esprit Noir</span>
<input type="number" name="attr_npcDarkSpirit" class="npc-dark-spirit" title="Esprit Noir du PNJ">
<span class="npc-soul-lbl title">Âme</span>
<input type="number" name="attr_npcSoul" class="npc-soul" title="Âme du PNJ">
<span class="npc-dark-soul-lbl title">Âme Noire</span>
<input type="number" name="attr_npcDarkSoul" class="npc-dark-soul" title="Âme Noire du PNJ">
<span class="npc-body-bonus-lbl title">Bonus de Corps</span>
<input type="number" name="attr_npcBodyBonus" class="npc-body-bonus" title="Bonus de Corps du PNJ" readonly>
<span class="npc-spirit-bonus-lbl title">Bonus d'Esprit</span>
<input type="number" name="attr_npcSpiritBonus" class="npc-spirit-bonus" title="Bonus d'Esprit du PNJ" readonly>
<span class="npc-soul-bonus-lbl title">Bonus d'Âme</span>
<input type="number" name="attr_npcSoulBonus" class="npc-soul-bonus" title="Bonus d'Âme du PNJ" readonly>
<span class="npc-agility-lbl">AGIlité</span>
<input type="number" name="attr_npcAgility" class="npc-agility" title="AGIlité du PNJ">
<button class="npc-agility-dice dice" type="roll" value="/w gm &{template:agone-chars} {{name=@{character_name}}} {{Characteristic=AGIlité : [[1d10!+2*@{npcAgility}+@{npcBodyBonus}+?{Bonus/Malus|0}]]}}" name="roll_npc-agility"></button>
<span class="npc-strength-lbl">FORce</span>
<input type="number" name="attr_npcStrength" class="npc-strength" title="FORce du PNJ">
<button class="npc-strength-dice dice" type="roll" value="/w gm &{template:agone-chars} {{name=@{character_name}}} {{Characteristic=FORce : [[1d10!+2*@{npcStrength}+@{npcBodyBonus}+?{Bonus/Malus|0}]]}}" name="roll_npc-strength"></button>
<span class="npc-intelligence-lbl">INTelligence</span>
<input type="number" name="attr_npcIntelligence" class="npc-intelligence" title="INTelligence du PNJ">
<button class="npc-intelligence-dice dice item-left" type="roll" value="/w gm &{template:agone-chars} {{name=@{character_name}}} {{Characteristic=INTelligence : [[1d10!+2*@{npcIntelligence}+@{npcSpiritBonus}+?{Bonus/Malus|0}]]}}" name="roll_npc-intelligence"></button>
<span class="npc-charisma-lbl">CHArisme</span>
<input type="number" name="attr_npcCharisma" class="npc-charisma" title="CHArisme du PNJ">
<button class="npc-charisma-dice dice item-left" type="roll" value="/w gm &{template:agone-chars} {{name=@{character_name}}} {{Characteristic=CHArisme : [[1d10!+2*@{npcCharisma}+@{npcSoulBonus}+?{Bonus/Malus|0}]]}}" name="roll_npc-charisma"></button>
<span class="npc-perception-lbl">PERception</span>
<input type="number" name="attr_npcPerception" class="npc-perception" title="PERception du PNJ">
<button class="npc-perception-dice dice" type="roll" value="/w gm &{template:agone-chars} {{name=@{character_name}}} {{Characteristic=PERception : [[1d10!+2*@{npcPerception}+@{npcBodyBonus}+?{Bonus/Malus|0}]]}}" name="roll_npc-perception"></button>
<span class="npc-stamina-lbl">RÉSistance</span>
<input type="number" name="attr_npcStamina" class="npc-stamina" title="RÉSistance du PNJ">
<button class="npc-stamina-dice dice" type="roll" value="/w gm &{template:agone-chars} {{name=@{character_name}}} {{Characteristic=RÉSistance : [[1d10!+2*@{npcStamina+@{npcBodyBonus}}+?{Bonus/Malus|0}]]}}" name="roll_npc-stamina"></button>
<span class="npc-will-lbl">VOLonté</span>
<input type="number" name="attr_npcWill" class="npc-will" title="VOLonté du PNJ">
<button class="npc-will-dice dice item-left" type="roll" value="/w gm &{template:agone-chars} {{name=@{character_name}}} {{Characteristic=VOLonté : [[1d10!+2*@{npcWill}+@{npcSpiritBonus}+?{Bonus/Malus|0}]]}}" name="roll_npc-will"></button>
<span class="npc-creativity-lbl">CRÉativité</span>
<input type="number" name="attr_npcCreativity" class="npc-creativity" title="CRÉativité du PNJ">
<button class="npc-creativity-dice dice item-left" type="roll" value="/w gm &{template:agone-chars} {{name=@{character_name}}} {{Characteristic=CRÉativité : [[1d10!+2*@{npcCreativity}+@{npcSoulBonus}?{Bonus/Malus|0}]]}}" name="roll_npc-creativity"></button>
</div>
<div class="wood2 title">
<span>CARACTÉRISTIQUES SECONDAIRES&nbsp;&nbsp;&nbsp;&nbsp;</span>
<span>Fumble</span>
<button class="dice" type="roll" value="/w gm &{template:agone-fumble} {{name=@{character_name}}} {{Fumble=[[?{Ancien jet}-1d10!]]}}" name="roll_npc-fumble"></button>
</div>
<div class="npc-secondary-chars grid">
<span>PdV</span>
<input type="number" name="attr_npcHP" class="half-number item-right" title="Point(s) de Vie actuels du PNJ">
<input type="number" name="attr_npcHP_max" class="half-number item-left" title="Points de Vie totaux du PNJ">
<span>PH</span>
<input type="number" name="attr_npcFP" class="half-number item-right" tititle="Point(s) d'Héroïsme actuels du PNJ">
<input type="number" name="attr_npcFP_max" class="half-number item-left" title="Points d'Héroïsme totaux du PNJ" readonly>
<span>SBG</span>
<input type="number" name="attr_npcSeriousWoundThreshold" title="Seuil de Blessures Graves du PNJ" readonly>
<span>SBC</span>
<input type="number" name="attr_npcCriticalWoundThreshold" title="Seuil de Blessures Critiques du PNJ" readonly>
<span>BD</span>
<input type="number" name="attr_npcDamageBonus" title="Bonus aux Dommages du PNJ">
<span>EMPrise</span>
<input type="number" name="attr_npcAscendancy" title="EMPrise du PNJ">
<span>MÊLée</span>
<input type="number" name="attr_npcMelee" class="pc-mel" title="MÊLée du PNJ" readonly>
<span>TIR</span>
<input type="number" name="attr_npcAim" class="pc-aim" title="TIR du PNJ" readonly>
<span>CM</span>
<input type="number" name="attr_npcMaxLoad" title="Charge maximum du PNJ">
<span>DC</span>
<input type="number" name="attr_npcHalfLoad" title="Demi charge du PNJ" readonly>
<span>CQ</span>
<input type="number" name="attr_npcDailyLoad" title="Charge quotidienne du PNJ" readonly>
<span>ART</span>
<input type="number" name="attr_npcArt" title="ART du PNJ" readonly>
<span>BG</span>
<input type="number" name="attr_npcSeriousWound" class="pc-sw" title="Blessure(s) Grave(s) encaissée(s) du PNJ" value="0">
<span>Malus</span>
<input type="number" name="attr_npcSeriousWoundPenalty" class="pc-swp" title="Malus concernant la ou les Blessure(s) Grave(s) du PNJ" readonly>
<span>Ténèbre</span>
<input type="number" name="attr_npcDarkness" title="Ténèbre du PNJ">
<span>Noirceur</span>
<input type="number" name="attr_npcBlackness" title="Noirceur du PNJ" readonly>
<span>Perfidie</span>
<input type="number" name="attr_npcPerfidy" title="Perfidie du PNJ">
</div>
<div class="npc-skills-header wood3 title">
<span>COMPÉTENCES</span>
<button class="dice" type="roll" value="/w gm @{npcSkillsSelection}" name="roll_npc-skills-global"></button>
</div>
<div class="npc-skills grid">
<fieldset class="repeating_npc-skills">
<select name="attr_npcSkillName">
<option>Acrobatie (Maraude)</option>
<option>Alchemie (Occulte)</option>
<option>Alphabets (Savoir)</option>
<option>Armes (Épreuve)</option>
<option>Arts Magiques (Occulte)</option>
<option>Astronomie (Savoir)</option>
<option>Athlétisme (Épreuve)</option>
<option>Baratin (Société)</option>
<option>Camouflage (Maraude)</option>
<option>Chasse (Maraude)</option>
<option>Chirurgie (Savoir)</option>
<option>Conn. des Danseurs (Occulte)</option>
<option>Cryptogramme (Occulte)</option>
<option>Cultes (Savoir)</option>
<option>Déguisement (Maraude)</option>
<option>Démonologie (Occulte)</option>
<option>Diplomatie (Société)</option>
<option>Discrétion (Maraude)</option>
<option>Élémentalisme (Occulte)</option>
<option>Éloquence (Société)</option>
<option>Équitation (Épreuve)</option>
<option>Escalade (Épreuve)</option>
<option>Esquive (Épreuve)</option>
<option>Étiquette (Société)</option>
<option>Fouille (Maraude)</option>
<option>Géographie (Savoir)</option>
<option>Harmonie (Occulte)</option>
<option>Herboristerie (Savoir)</option>
<option>Histoire & légendes (Savoir)</option>
<option>Intendance (Société)</option>
<option>Intrigue (Maraude)</option>
<option>Jeu (Maraude)</option>
<option>Langues (Savoir)</option>
<option>Lois (Savoir)</option>
<option>Médecine (Savoir)</option>
<option>Musique (Société)</option>
<option>Natation (Épreuve)</option>
<option>Navigation (Savoir)</option>
<option>Négoce (Société)</option>
<option>Passe-passe (Maraude)</option>
<option>Peinture (Société)</option>
<option>Poésie (Société)</option>
<option>Poisons (Maraude)</option>
<option>Premiers soins (Épreuve)</option>
<option>Résonance (Occulte)</option>
<option>Saisons (Savoir)</option>
<option>Savoir-faire (Société)</option>
<option>Sculpture (Société)</option>
<option>Serrurerie (Maraude)</option>
<option>Stratégie (Savoir)</option>
<option>Survie (Épreuve)</option>
<option>Vigilance (Épreuve)</option>
<option>Us et coutumes (Société)</option>
<option>Zoologie (Savoir)</option>
</select>
<input type="text" name="attr_npcSkillBranch" title="Domaine de la compétence (si applicable)" placeholder="domaine">
<input type="text" name="attr_npcSkillSpecialty" title="Spécialité de la compétence" placeholder="spécialité">
<input type="number" name="attr_npcSkillScore" title="Score de la compétence">
<input type="hidden" name="attr_npcSkill">
<button class="dice" type="roll" value="/w gm &{template:agone-skills} {{name=@{character_name}}} {{Skill=@{npcSkill} : [[1d10!+@{npcSkillScore}+?{Caractéristique|AGIlité, @{npcAgility}+@{npcBodyBonus}|FORce, @{npcStrength}+@{npcBodyBonus}|PERception, @{npcPerception}+@{npcBodyBonus}|RÉSistance, @{npcStamina}+@{npcBodyBonus}|INTelligence, @{npcIntelligence}+@{npcSpiritBonus}|VOLonté, @{npcWill}+@{npcSpiritBonus}|CHArisme, @{npcCharisma}+@{npcSoulBonus}|CRÉativité, @{npcCreativity}+@{npcSoulBonus}|MÊLée, @{npcMelee}+@{npcBodyBonus}|TIR, @{npcAim}+@{npcBodyBonus}}+?{Bonus/Malus|0}]]}}" name="roll_npc-skill"></button>
</fieldset>
</div>
<div class="npc-weapons-header wood1 title">
<span>ARMES&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>
<span>Initiative</span>
<input type="number" name="attr_npcInit" title="AGIlité+PERception+Bonus de Corps" readonly>
<button class="dice" type="roll" value="/w gm &{template:agone-initiative} {{name=@{selected|character_name}}} {{Initiative=[[1d10+@{npcInit}+?{Bonus/Malus|0} &{tracker}]]}}" name="roll_npc-init"></button>
<span>Esquive</span>
<input type="number" name="attr_npcDodgeTotal" title="AGIlité+Esquive+Bonus de Corps" readonly>
<button class="dice" type="roll" value="/w gm &{template:agone-dodge} {{name=@{character_name}}} {{Dodge=[[1d10!+@{npcDodgeTotal}+?{Bonus/Malus|0}]]}}" name="roll_npc-dodge"></button>
<span>Défense naturelle</span>
<input type="number" name="attr_npcNaturalDefense" title="AGIlité+Bonus de Corps" readonly>
<button class="dice" type="roll" value="/w gm &{template:agone-natural-defense} {{name=@{character_name}}} {{NaturalDefense=[[1d10!+@{npcNaturalDefense}+?{Bonus/Malus|0}]]}}" name="roll_npc-natural-defense"></button>
<span>Distance</span>
<input type="number" name="attr_npcDistanceDodge" title="Esquive à distance du PNJ" title="(AGI+Esquive)/2" readonly>
<span>Armure</span>
<input type="number" name="attr_npcArmor" class="half-number" value="0" title="Armure du PNJ">
<input type="number" name="attr_npcArmorAgilityPenalty" class="half-number" value="0" title="Malus de l'armure du PNJ">
</div>
<div class="npc-weapons grid title">
<span>Nom</span>
<span>Compétence</span>
<span>Initiative</span>
<span>Attaque</span>
<span>Défense</span>
<span>Dom.+BD</span>
<span>Type</span>
<span>Style</span>
<span>TAI</span>
</div>
<fieldset class="repeating_npc-weapons">
<div class="npc-weapons-rows grid">
<input type="text" name="attr_npcWeaponName" class="max" title="Nom de l'arme">
<select name="attr_npcWeaponSkill" class="max">
<option value="@{npcWeaponSkill-1}">Armes 1</option>
<option value="@{npcWeaponSkill-2}">Armes 2</option>
<option value="@{npcWeaponSkill-3}">Armes 3</option>
<option value="@{npcWeaponSkill-4}">Armes 4</option>
<option value="@{npcWeaponSkill-5}">Armes 5</option>
<option value="@{npcWeaponSkill-6}">Armes 6</option>
<option value="@{npcWeaponSkill-7}">Armes 7</option>
<option value="@{npcWeaponSkill-8}">Armes 8</option>
<option value="@{npcWeaponSkill-9}">Armes 9</option>
<option value="@{npcWeaponSkill-10}">Armes 10</option>
</select>
<button class="dice" type="roll" value="/w gm ?{Jet|Initiative, &{template:agone-initiative&amp;#125; {{name=@{selected|character_name}&amp;#125;&amp;#125; {{weapon=(@{npcWeaponName})&amp;#125;&amp;#125; {{Initiative=[[1d10+@{npcWeaponInitTotal}+?{Bonus/Malus&amp;#124;0&amp;#125; &{tracker&amp;#125;]]&amp;#125;&amp;#125;|Attaque, &{template:agone-attack&amp;#125; {{name=@{character_name}&amp;#125;&amp;#125; {{weapon=(@{npcWeaponName})&amp;#125;&amp;#125; {{Attack=[[1d10!+@{npcWeaponAttackTotal}+?{Bonus/Malus&amp;#124;0&amp;#125;]]&amp;#125;&amp;#125; {{Type=@{npcWeaponType}&amp;#125;&amp;#125;|Parade, &{template:agone-defense&amp;#125; {{name=@{selected|character_name}&amp;#125;&amp;#125; {{weapon=(@{npcWeaponName})&amp;#125;&amp;#125; {{Defense=[[1d10!+@{npcWeaponDefenseTotal}+?{Bonus/Malus&amp;#124;0&amp;#125;]]&amp;#125;&amp;#125;|Esquive, &{template:agone-dodge&amp;#125; {{name=@{character_name}&amp;#125;&amp;#125; {{Dodge=[[1d10!+@{npcDodgeTotal}+?{Bonus/Malus&amp;#124;0&amp;#125;]]&amp;#125;&amp;#125;|Défense naturelle, &{template:agone-natural-defense&amp;#125; {{name=@{character_name}&amp;#125;&amp;#125; {{NaturalDefense=[[1d10!+@{npcNaturalDefense}+?{Bonus/Malus&amp;#124;0&amp;#125;]]&amp;#125;&amp;#125;}" name="roll_npc-fight"></button>
<input type="number" name="attr_npcWeaponInit" class="half-number item-right" title="Initiative de l'arme">
<input type="number" name="attr_npcWeaponInitTotal" class="half-number" title="Initiative totale du personnage (PER+AGI+Bonus de Corps+Bonus de l'arme)" readonly>
<button class="dice item-left" type="roll" value="/w gm &{template:agone-initiative} {{name=@{character_name}}} {{weapon=(@{npcWeaponName})}} {{Initiative=[[1d10+@{npcWeaponInitTotal}+?{Bonus/Malus|0} &{tracker}]]}}" name="roll_npc-weapon-init"></button>
<input type="number" name="attr_npcWeaponAttack" class="half-number item-right" title="Attaque de l'arme">
<input type="number" name="attr_npcWeaponAttackTotal" class="half-number" title="Attaque totale du personnage ([MEL ou TIR}+Arme+Bonus de Corps+Bonus de l'arme)" readonly>
<button class="dice item-left" type="roll" value="/w gm &{template:agone-attack} {{name=@{character_name}}} {{weapon=(@{npcWeaponName})}} {{Attack=[[1d10!+@{npcWeaponAttackTotal}+?{Bonus/Malus|0}]]}} {{Type=@{npcWeaponType}}}" name="roll_npc-attack"></button>
<input type="number" name="attr_npcWeaponDefense" class="half-number item-right" title="Parade de l'arme">
<input type="number" name="attr_npcWeaponDefenseTotal" class="half-number" title="Parade totale du personnage (MEL+Arme+Bonus de Corps+Bonus de l'arme)" readonly>
<button class="dice item-left" type="roll" value="/w gm &{template:agone-defense} {{name=@{character_name}}} {{weapon=(@{npcWeaponName})}} {{Defense=[[1d10!+@{npcWeaponDefenseTotal}+?{Bonus/Malus|0}]]}}" name="roll_npc-defense"></button>
<input type="number" name="attr_npcWeaponDamage" class="half-number" title="Dommages de l'arme">
<input type="number" name="attr_npcWeaponDDB" class="half-number" title="Dommages + BD du personnage" readonly>
<select name="attr_npcWeaponType" class="max">
<option value="Perforant">P</option>
<option value="Tranchant">T</option>
<option value="Perforant/Tranchant">PT</option>
<option value="Contondant">C</option>
</select>
<select name="attr_npcWeaponStyle" class="max">
<option value="melee">Mêlée</option>
<option value="thrown">Jet</option>
<option value="missile">Trait</option>
</select>
<input type="number" name="attr_npcWeaponSIZ" class="half-number" title="Score de TAI de l'arme">
</div>
</fieldset>
<div class="npc-stuff wood2 title">
<span>ÉQUIPEMENT</span>
</div>
<div>
<textarea name="attr_npcStuff" class="npc-text expandable" placeholder="Équipement du PNJ"></textarea>
</div>
<div class="npc-spells wood3 title">
<span>MAGIES&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>
<span>Init.</span>
<input type="number" name="attr_npcMagicInit" title="Initiative en magie du PNJ" readonly>
<span>Pot. d'EMPrise</span>
<input type="number" name="attr_npcAscendancyAptitude" title="Potentiel d'EMPrise du PNJ">
<button class="dice" type="roll" value="/w gm &{template:agone-ascendancy} {{name=@{character_name}}} {{dancer=Danseur inconnu}} {{Ascendancy=[[1d10!+@{npcAscendancyAptitude}+?{Bonus/Malus|0}]]}}" name="roll_npc-ascendancy"></button>
<span>Impro EMP</span>
<input type="number" name="attr_npcASCImproAptitude" title="Potentiel d'improvisation en EMPrise du PNJ">
<button class="dice" type="roll" value="/w gm &{template:agone-ascendancy-impro} {{name=@{character_name}}} {{dancer=Danseur inconnu}} {{Ascendancy (impro)=[[1d10!+@{npcASCImproAptitude}+?{Bonus/Malus|0}]]}}" name="roll_npc-ascendancy-impro"></button>
<span>Pot. d'ART</span>
<input type="number" name="attr_npcArtAptitude" title="Potentiel d'ART du PNJ">
<button class="dice" type="roll" value="/w gm &{template:agone-art} {{name=@{character_name}}} {{Art=Art : [[1d10!+@{npcArtAptitude}+?{Bonus/Malus|0}]]}}" name="roll_npc-art"></button>
<span>Impro d'ART</span>
<input type="number" name="attr_npcArtImproAptitude" title="Potentiel d'improvisation en ART du PNJ">
<button class="dice" type="roll" value="/w gm &{template:agone-art-impro} {{name=@{character_name}}} {{Art (impro)=Art (impro) : [[1d10!+@{npcArtImproAptitude}+?{Bonus/Malus|0}]]}}" name="roll_npc-art-impro"></button>
</div>
<div>
<textarea name="attr_npcSpells" class="npc-text expandable" placeholder="Sorts et autres techniques du PNJ"></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>Générique : {{Roll}}{{#rollWasCrit() Roll}}<span class="explode">j</span>{{/rollWasCrit() Roll}}{{#rollWasFumble() Roll}}<span class="implode">a</span>{{/rollWasFumble() Roll}}</span></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>{{Characteristic}}{{#rollWasCrit() Characteristic}}<span class="explode">j</span>{{/rollWasCrit() Characteristic}}{{#rollWasFumble() Characteristic}}<span class="implode">a</span>{{/rollWasFumble() Characteristic}}</span></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>Fumble : {{Fumble}}{{#rollWasCrit() Fumble}}<span class="explode">j</span>{{/rollWasCrit() Fumble}}{{#rollWasFumble() Fumble}}<span class="implode">a</span>{{/rollWasFumble() Fumble}}</span></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>{{Skill}}{{#rollWasCrit() Skill}}<span class="explode">j</span>{{/rollWasCrit() Skill}}{{#rollWasFumble() Skill}}<span class="implode">a</span>{{/rollWasFumble() Skill}}</span></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>Esquive : {{Dodge}}{{#rollWasCrit() Dodge}}<span class="explode">j</span>{{/rollWasCrit() Dodge}}{{#rollWasFumble() Dodge}}<span class="implode">a</span>{{/rollWasFumble() Dodge}}</span></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>Défense naturelle : {{NaturalDefense}}{{#rollWasCrit() NaturalDefense}}<span class="explode">j</span>{{/rollWasCrit() NaturalDefense}}{{#rollWasFumble() NaturalDefense}}<span class="implode">a</span>{{/rollWasFumble() NaturalDefense}}</span></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>Initiative : {{Initiative}}{{#rollWasCrit() Initiative}}<span class="explode">j</span>{{/rollWasCrit() Initiative}}{{#rollWasFumble() Initiative}}<span class="implode">a</span>{{/rollWasFumble() Initiative}}</span></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>Attaque : {{Attack}}{{#rollWasCrit() Attack}}<span class="explode">j</span>{{/rollWasCrit() Attack}}{{#rollWasFumble() Attack}}<span class="implode">a</span>{{/rollWasFumble() Attack}}</span>
<br />
<span>Type : {{Type}}</span>
</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>Parade : {{Defense}}{{#rollWasCrit() Defense}}<span class="explode">j</span>{{/rollWasCrit() Defense}}{{#rollWasFumble() Defense}}<span class="implode">a</span>{{/rollWasFumble() Defense}}</span></div>
</div>
</rolltemplate>
<rolltemplate class="sheet-rolltemplate-agone-ascendancy">
<div class="sheet-template-container">
<div class="sheet-template-header">{{name}}, avec {{dancer}}</div>
<div class="sheet-template-row"><span>Emprise : {{Ascendancy}}{{#rollWasCrit() Ascendancy}}<span class="explode">j</span>{{/rollWasCrit() Ascendancy}}{{#rollWasFumble() Ascendancy}}<span class="implode">a</span>{{/rollWasFumble() Ascendancy}}</span></div>
</div>
</rolltemplate>
<rolltemplate class="sheet-rolltemplate-agone-ascendancy-impro">
<div class="sheet-template-container">
<div class="sheet-template-header">{{name}}, avec {{dancer}}</div>
<div class="sheet-template-row"><span>Emprise (impro) : {{Ascendancy (impro)}}{{#rollWasCrit() Ascendancy (impro)}}<span class="explode">j</span>{{/rollWasCrit() Ascendancy (impro)}}{{#rollWasFumble() Ascendancy (impro)}}<span class="implode">a</span>{{/rollWasFumble() Ascendancy (impro)}}</span></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>{{Art}}{{#rollWasCrit() Art}}<span class="explode">j</span>{{/rollWasCrit() Art}}{{#rollWasFumble() Art}}<span class="implode">a</span>{{/rollWasFumble() Art}}</span></div>
</div>
</rolltemplate>
<rolltemplate class="sheet-rolltemplate-agone-art-impro">
<div class="sheet-template-container">
<div class="sheet-template-header">{{name}}</div>
<div class="sheet-template-row"><span>{{Art (impro)}}{{#rollWasCrit() Art (impro)}}<span class="explode">j</span>{{/rollWasCrit() Art (impro)}}{{#rollWasFumble() Art (impro)}}<span class="implode">a</span>{{/rollWasFumble() Art (impro)}}</span></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>Conjuration : {{Invoking}}{{#rollWasCrit() Invoking}}<span class="explode">j</span>{{/rollWasCrit() Invoking}}{{#rollWasFumble() Invoking}}<span class="implode">a</span>{{/rollWasFumble() Invoking}}</span></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 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); };
// 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'], 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:pcHP_max', function() {
getAttrs(['pcHP_max'], function(v) {
setAttrs({'pcSeriousWoundThreshold': swt(parseV(v, 'pcHP_max'))});
setAttrs({'pcCriticalWoundThreshold': cwt(parseV(v, 'pcHP_max'))});
});
});
on('change:pcMaxLoad', function() {
getAttrs(['pcMaxLoad'], function(v) {
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('@', '').replace('{', '').replace('}', '').split('-');
s = s[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('@', '').replace('{', '').replace('}', '').split('-');
s = s[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('@', '').replace('{', '').replace('}', '').split('-');
s = s[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: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('@', '').replace('{', '').replace('}', '').split('-');
s = s[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('@', '').replace('{', '').replace('}', '').split('-');
s = s[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: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('sheet:opened 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&#125; {{name=@{character_name}&#125;&#125; {{Art='+art+' : [[1d10!+'+apt+'+?{Bonus/Malus&#124;0&#125;]]&#125;&#125;|';
s += art+' (impro), '+'&{template:agone-art-impro&#125; {{name=@{character_name}&#125;&#125; {{Art (impro)='+art+' (impro) : [[1d10!+'+imp+'+?{Bonus/Malus&#124;0&#125;]]&#125;&#125;|';
if (i == r.length - 1) {
s = s.slice(0, -1);
s += '}';
setAttrs({'pcArtSelection': s});
}
});
});
}
});
});
on('sheet:opened change:repeating_pc-skills remove:repeating_pc-skills', function() {
getSectionIDs('repeating_pc-skills', function(r) {
let s = '?{Compétence|';
let z = 1;
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&#125; {{name=@{character_name}&#125;&#125; {{Skill='+name+' : [[1d10!+'+skill+'+?{Caractéristique&#124;AGIlité&#44;@{pcAgility}+@{pcBodyBonus}+?{Bonus/Malus&amp;#124;@{pcArmorAGIPenalty}&amp;#125;&#124;FORce&#44;@{pcStrength}+@{pcBodyBonus}?{Bonus/Malus&amp;#124;0&amp;#125;&#124;PERception&#44;@{pcPerception}+@{pcBodyBonus}+?{Bonus/Malus&amp;#124;@{pcArmorPERPenalty}&amp;#125;&#124;RÉSistance&#44;@{pcStamina}+@{pcBodyBonus}?{Bonus/Malus&amp;#124;0&amp;#125;&#124;INTelligence&#44;@{pcIntelligence}+@{pcSpiritBonus}?{Bonus/Malus&amp;#124;0&amp;#125;&#124;VOLonté&#44;@{pcWill}+@{pcSpiritBonus}?{Bonus/Malus&amp;#124;0&amp;#125;&#124;CHArisme&#44;@{pcCharisma}+@{pcSoulBonus}?{Bonus/Malus&amp;#124;0&amp;#125;&#124;CRÉativité&#44;@{pcCreativity}+@{pcSoulBonus}?{Bonus/Malus&amp;#124;0&amp;#125;&#124;MÊLée&#44;@{pcMelee}+@{pcBodyBonus}?{Bonus/Malus&amp;#124;0&amp;#125;&#124;TIR&#44;@{pcAim}+@{pcBodyBonus}?{Bonus/Malus&amp;#124;0&amp;#125;&#125;]]&#125;&#125;|';
if (/Esquive.*/.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&#125; {{name=@{character_name}&#125;&#125; {{Skill='+branch+' : [[1d10!+'+skill+'+?{Caractéristique&#124;AGIlité&#44;@{pcAgility}+@{pcBodyBonus}+?{Bonus/Malus&amp;#124;@{pcArmorAGIPenalty}&amp;#125;&#124;FORce&#44;@{pcStrength}+@{pcBodyBonus}?{Bonus/Malus&amp;#124;0&amp;#125;&#124;PERception&#44;@{pcPerception}+@{pcBodyBonus}+?{Bonus/Malus&amp;#124;@{pcArmorPERPenalty}&amp;#125;&#124;RÉSistance&#44;@{pcStamina}+@{pcBodyBonus}?{Bonus/Malus&amp;#124;0&amp;#125;&#124;INTelligence&#44;@{pcIntelligence}+@{pcSpiritBonus}?{Bonus/Malus&amp;#124;0&amp;#125;&#124;VOLonté&#44;@{pcWill}+@{pcSpiritBonus}?{Bonus/Malus&amp;#124;0&amp;#125;&#124;CHArisme&#44;@{pcCharisma}+@{pcSoulBonus}?{Bonus/Malus&amp;#124;0&amp;#125;&#124;CRÉativité&#44;@{pcCreativity}+@{pcSoulBonus}?{Bonus/Malus&amp;#124;0&amp;#125;&#124;MÊLée&#44;@{pcMelee}+@{pcBodyBonus}?{Bonus/Malus&amp;#124;0&amp;#125;&#124;TIR&#44;@{pcAim}+@{pcBodyBonus}?{Bonus/Malus&amp;#124;0&amp;#125;&#125;]]&#125;&#125;|';
if (/Armes.*/.test(name)) {
let a = 'pcWeaponSkill-'+z;
let j = {};
j[a] = skill;
setAttrs(j);
z += 1;
}
}
if (i == r.length - 1) {
s += 'Non apprise, &{template:agone-skills&#125; {{name=@{character_name}&#125;&#125; {{Skill=?{Laquelle ?&#125; : [[1d10!-3+?{Caractéristique&#124;AGIlité&#44;@{pcAgility}+@{pcBodyBonus}+?{Bonus/Malus&amp;#124;@{pcArmorAGIPenalty}&amp;#125;&#124;FORce&#44;@{pcStrength}+@{pcBodyBonus}?{Bonus/Malus&amp;#124;0&amp;#125;&#124;PERception&#44;@{pcPerception}+@{pcBodyBonus}+?{Bonus/Malus&amp;#124;@{pcArmorPERPenalty}&amp;#125;&#124;RÉSistance&#44;@{pcStamina}+@{pcBodyBonus}?{Bonus/Malus&amp;#124;0&amp;#125;&#124;INTelligence&#44;@{pcIntelligence}+@{pcSpiritBonus}?{Bonus/Malus&amp;#124;0&amp;#125;&#124;VOLonté&#44;@{pcWill}+@{pcSpiritBonus}?{Bonus/Malus&amp;#124;0&amp;#125;&#124;CHArisme&#44;@{pcCharisma}+@{pcSoulBonus}?{Bonus/Malus&amp;#124;0&amp;#125;&#124;CRÉativité&#44;@{pcCreativity}+@{pcSoulBonus}?{Bonus/Malus&amp;#124;0&amp;#125;&#124;MÊLée&#44;@{pcMelee}+@{pcBodyBonus}?{Bonus/Malus&amp;#124;0&amp;#125;&#124;TIR&#44;@{pcAim}+@{pcBodyBonus}?{Bonus/Malus&amp;#124;0&amp;#125;&#125;]]&#125;&#125;}';
setAttrs({'pcSkillsSelection': s});
}
});
});
}
});
});
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) {
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('sheet:opened change:repeating_pc-ascendancies remove:repeating_pc-ascendancies', function() {
getSectionIDs('repeating_pc-ascendancies', function(r) {
let s = '?{Danseur|';
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&#125; {{name=@{character_name}&#125;&#125; {{dancer='+dan+'&#125;&#125; {{Ascendancy=[[1d10!+'+apt+'+?{Bonus/Malus&#124;0&#125;]]&#125;&#125;|';
s += dan+' (impro), '+'&{template:agone-ascendancy-impro&#125; {{name=@{character_name}&#125;&#125; {{dancer='+dan+'&#125;&#125; {{Ascendancy (impro)=[[1d10!+'+imp+'+?{Bonus/Malus&#124;0&#125;]]&#125;&#125;|';
if (i == r.length - 1) {
s = s.slice(0, -1);
s += '}';
setAttrs({'pcAscendancySelection': s});
}
});
});
}
});
});
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: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('@', '').replace('{', '').replace('}', '').split('-');
s = s[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('@', '').replace('{', '').replace('}', '').split('-');
s = s[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('@', '').replace('{', '').replace('}', '').split('-');
s = s[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('@', '').replace('{', '').replace('}', '').split('-');
s = s[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('sheet:opened change:repeating_companion-skills remove:repeating_companion-skills', function() {
getSectionIDs('repeating_companion-skills', function(r) {
let s = '?{Compétence|';
let z = 1;
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&#125; {{name=@{character_name}&#125;&#125; {{Skill='+name+' : [[1d10!+'+skill+'+?{Caractéristique&#124;AGIlité&#44;@{companionAgility}&#124;FORce&#44;@{companionStrength}&#124;PERception&#44;@{companionPerception}&#124;RÉSistance&#44;@{companionStamina}&#124;INTelligence&#44;@{companionIntelligence}&#124;VOLonté&#44;@{companionWill}&#124;CHArisme&#44;@{companionCharisma}&#124;CRÉativité&#44;@{companionCreativity}&#124;MÊLée&#44;@{companionMelee}&#124;TIR&#44;@{companionAim}&#125;+?{Bonus/Malus&#124;0&#125;]]&#125;&#125;|';
if (/Esquive.*/.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&#125; {{name=@{character_name}&#125;&#125; {{Skill='+branch+' : [[1d10!+'+skill+'+?{Caractéristique&#124;AGIlité&#44;@{companionAgility}+@{companionArmorAgilityPenalty}&#124;FORce&#44;@{companionStrength}&#124;PERception&#44;@{companionPerception}&#124;RÉSistance&#44;@{companionStamina}&#124;INTelligence&#44;@{companionIntelligence}&#124;VOLonté&#44;@{companionWill}&#124;CHArisme&#44;@{companionCharisma}&#124;CRÉativité&#44;@{companionCreativity}&#124;MÊLée&#44;@{companionMelee}&#124;TIR&#44;@{companionAim}&#125;+?{Bonus/Malus&#124;0&#125;]]&#125;&#125;|';
if (/Armes.*/.test(name)) {
let a = 'companionWeaponSkill-'+z;
let j = {};
j[a] = skill;
setAttrs(j);
z += 1;
}
}
if (i == r.length - 1) {
s += 'Non apprise, &{template:agone-skills&#125; {{name=@{character_name}&#125;&#125; {{Skill=?{Laquelle ?&#125; : [[1d10!-3+?{Caractéristique&#124;AGIlité&#44;@{companionAgility}&#124;FORce&#44;@{companionStrength}&#124;PERception&#44;@{companionPerception}&#124;RÉSistance&#44;@{companionStamina}&#124;INTelligence&#44;@{companionIntelligence}&#124;VOLonté&#44;@{companionWill}&#124;CHArisme&#44;@{companionCharisma}&#124;CRÉativité&#44;@{companionCreativity}&#124;MÊLée&#44;@{companionMelee}&#124;TIR&#44;@{companionAim}&#125;+?{Bonus/Malus&#124;0&#125;]]&#125;&#125;}';
setAttrs({'companionSkillsSelection': s});
}
});
});
}
});
});
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: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('@', '').replace('{', '').replace('}', '').split('-');
s = s[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('@', '').replace('{', '').replace('}', '').split('-');
s = s[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('@', '').replace('{', '').replace('}', '').split('-');
s = s[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('@', '').replace('{', '').replace('}', '').split('-');
s = s[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('sheet:opened change:repeating_demon-skills remove:repeating_demon-skills', function() {
getSectionIDs('repeating_demon-skills', function(r) {
let s = '?{Compétence|';
let z = 1;
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&#125; {{name=@{character_name}&#125;&#125; {{Skill='+name+' : [[1d10!+'+skill+'+?{Caractéristique&#124;AGIlité&#44;@{demonAgility}&#124;FORce&#44;@{demonStrength}&#124;PERception&#44;@{demonPerception}&#124;RÉSistance&#44;@{demonStamina}&#124;INTelligence&#44;@{demonIntelligence}&#124;VOLonté&#44;@{demonWill}&#124;CHArisme&#44;@{demonCharisma}&#124;CRÉativité&#44;@{demonCreativity}&#124;MÊLée&#44;@{demonMelee}&#124;TIR&#44;@{demonAim}&#125;+?{Bonus/Malus&#124;0&#125;]]&#125;&#125;|';
if (/Esquive.*/.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&#125; {{name=@{character_name}&#125;&#125; {{Skill='+branch+' : [[1d10!+'+skill+'+?{Caractéristique&#124;AGIlité&#44;@{demonAgility}&#124;FORce&#44;@{demonStrength}&#124;PERception&#44;@{demonPerception}&#124;RÉSistance&#44;@{demonStamina}&#124;INTelligence&#44;@{demonIntelligence}&#124;VOLonté&#44;@{demonWill}&#124;CHArisme&#44;@{demonCharisma}&#124;CRÉativité&#44;@{demonCreativity}&#124;MÊLée&#44;@{demonMelee}&#124;TIR&#44;@{demonAim}&#125;+?{Bonus/Malus&#124;0&#125;]]&#125;&#125;|';
if (/Armes.*/.test(name)) {
let a = 'demonWeaponSkill-'+z;
let j = {};
j[a] = skill;
setAttrs(j);
z += 1;
}
}
if (i == r.length - 1) {
s += 'Non apprise, &{template:agone-skills&#125; {{name=@{character_name}&#125;&#125; {{Skill=?{Laquelle ?&#125; : [[1d10!-3+?{Caractéristique&#124;AGIlité&#44;@{demonAgility}&#124;FORce&#44;@{demonStrength}&#124;PERception&#44;@{demonPerception}&#124;RÉSistance&#44;@{demonStamina}&#124;INTelligence&#44;@{demonIntelligence}&#124;VOLonté&#44;@{demonWill}&#124;CHArisme&#44;@{demonCharisma}&#124;CRÉativité&#44;@{demonCreativity}&#124;MÊLée&#44;@{demonMelee}&#124;TIR&#44;@{demonAim}&#125;+?{Bonus/Malus&#124;0&#125;]]&#125;&#125;}';
setAttrs({'demonSkillsSelection': s});
}
});
});
}
});
});
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:npcHP_max', function() {
getAttrs(['npcHP_max'], function(v) {
setAttrs({'npcSeriousWoundThreshold': swt(parseV(v, 'npcHP_max'))});
setAttrs({'npcCriticalWoundThreshold': cwt(parseV(v, '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('@', '').replace('{', '').replace('}', '').split('-');
s = s[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('@', '').replace('{', '').replace('}', '').split('-');
s = s[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('@', '').replace('{', '').replace('}', '').split('-');
s = s[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: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('@', '').replace('{', '').replace('}', '').split('-');
s = s[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('@', '').replace('{', '').replace('}', '').split('-');
s = s[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('sheet:opened change:repeating_npc-arts remove:repeating_npc-arts', function() {
getSectionIDs('repeating_npc-arts', function(r) {
let s = '?{Art|';
if (r.length > 0) {
_.each(r, function(id, i) {
getAttrs(['repeating_npc-arts_'+id+'_npcArtName', 'repeating_npc-arts_'+id+'_npcArtAptitude', 'repeating_npc-arts_'+id+'_npcArtImproAptitude'], function(v) {
let art = v['repeating_npc-arts_'+id+'_npcArtName'];
let apt = v['repeating_npc-arts_'+id+'_npcArtAptitude'];
let imp = v['repeating_npc-arts_'+id+'_npcArtImproAptitude'];
s += art+', '+'&{template:agone-art&#125; {{name=@{character_name}&#125;&#125; {{Art='+art+' [[1d10!+'+apt+'+?{Bonus/Malus&#124;0&#125;]]&#125;&#125;|';
s += art+' (impro), '+'&{template:agone-art-impro&#125; {{name=@{character_name}&#125;&#125; {{Art (impro)='+art+' (impro) [[1d10!+'+imp+'+?{Bonus/Malus&#124;0&#125;]]&#125;&#125;|';
if (i == r.length - 1) {
s = s.slice(0, -1);
s += '}';
setAttrs({'npcArtSelection': s});
}
});
});
}
});
});
on('sheet:opened change:repeating_npc-skills remove:repeating_npc-skills', function() {
getSectionIDs('repeating_npc-skills', function(r) {
let s = '?{Compétence|';
let z = 1;
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&#125; {{name=@{character_name}&#125;&#125; {{Skill='+name+' : [[1d10!+'+skill+'+?{Caractéristique&#124;AGIlité&#44;@{npcAgility}+@{npcBodyBonus}&#124;FORce&#44;@{npcStrength}+@{npcBodyBonus}&#124;PERception&#44;@{npcPerception}+@{npcBodyBonus}&#124;RÉSistance&#44;@{npcStamina}+@{npcBodyBonus}&#124;INTelligence&#44;@{npcIntelligence}+@{npcSpiritBonus}&#124;VOLonté&#44;@{npcWill}+@{npcSpiritBonus}&#124;CHArisme&#44;@{npcCharisma}+@{npcSoulBonus}&#124;CRÉativité&#44;@{npcCreativity}+@{npcSoulBonus}&#124;MÊLée&#44;@{npcMelee}+@{npcBodyBonus}&#124;TIR&#44;@{npcAim}+@{npcBodyBonus}&#125;+?{Bonus/Malus&#124;0&#125;]]&#125;&#125;|';
if (/Esquive.*/.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&#125; {{name=@{character_name}&#125;&#125; {{Skill='+branch+' : [[1d10!+'+skill+'+?{Caractéristique&#124;AGIlité&#44;@{npcAgility}+@{npcBodyBonus}&#124;FORce&#44;@{npcStrength}+@{npcBodyBonus}&#124;PERception&#44;@{npcPerception}+@{npcBodyBonus}&#124;RÉSistance&#44;@{npcStamina}+@{npcBodyBonus}&#124;INTelligence&#44;@{npcIntelligence}+@{npcSpiritBonus}&#124;VOLonté&#44;@{npcWill}+@{npcSpiritBonus}&#124;CHArisme&#44;@{npcCharisma}+@{npcSoulBonus}&#124;CRÉativité&#44;@{npcCreativity}+@{npcSoulBonus}&#124;MÊLée&#44;@{npcMelee}+@{npcBodyBonus}&#124;TIR&#44;@{npcAim}+@{npcBodyBonus}&#125;+?{Bonus/Malus&#124;0&#125;]]&#125;&#125;|';
if (/Armes.*/.test(name)) {
let a = 'npcWeaponSkill-'+z;
let j = {};
j[a] = skill;
setAttrs(j);
z += 1;
}
}
if (i == r.length - 1) {
s += 'Non apprise, &{template:agone-skills&#125; {{name=@{character_name}&#125;&#125; {{Skill=?{Laquelle ?&#125; : [[1d10!-3+?{Caractéristique&#124;AGIlité&#44;@{npcAgility}+@{npcBodyBonus}&#124;FORce&#44;@{npcStrength}+@{npcBodyBonus}&#124;PERception&#44;@{npcPerception}+@{npcBodyBonus}&#124;RÉSistance&#44;@{npcStamina}+@{npcBodyBonus}&#124;INTelligence&#44;@{npcIntelligence}+@{npcSpiritBonus}&#124;VOLonté&#44;@{npcWill}+@{npcSpiritBonus}&#124;CHArisme&#44;@{npcCharisma}+@{npcSoulBonus}&#124;CRÉativité&#44;@{npcCreativity}+@{npcSoulBonus}&#124;MÊLée&#44;@{npcMelee}+@{npcBodyBonus}&#124;TIR&#44;@{npcAim}+@{npcBodyBonus}&#125;+?{Bonus/Malus&#124;0&#125;]]&#125;&#125;}';
setAttrs({
'npcSkillsSelection': s
});
}
});
});
}
});
});
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)});
}
});
});
// Conversion
on("clicked:convert-attributes", function() {
getAttrs(['origine', 'pcOrigin'], function(v) {
var o = v['origine'];
var n = v['pcOrigin'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'pcOrigin': o}); }
});
getAttrs(['occupation', 'pcOccupation'], function(v) {
var o = v['occupation'];
var n = v['pcOccupation'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'pcOccupation': o}); }
});
getAttrs(['sexe', 'pcSex'], function(v) {
var o = v['sexe'];
var n = v['pcSex'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'pcSex': o}); }
});
getAttrs(['age', 'pcAge'], function(v) {
var o = v['age'];
var n = v['pcAge'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'pcAge': o}); }
});
getAttrs(['taille', 'pcSize'], function(v) {
var o = v['taille'];
var n = v['pcSize'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'pcSize': o}); }
});
getAttrs(['tai', 'pcSIZ'], function(v) {
var o = v['tai'];
var n = v['pcSIZ'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'pcSIZ': o}); }
});
getAttrs(['masse', 'pcWeight'], function(v) {
var o = v['masse'];
var n = v['pcWeight'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'pcWeight': o}); }
});
getAttrs(['peuple', 'pcRace'], function(v) {
var o = v['peuple'];
var n = v['pcRace'];
if (o != n) {
if (o == 'Humain') { setAttrs({'pcRace': 'Human'}); }
else if (o == 'Satyre') { setAttrs({'pcRace': 'Satyr'}); }
else if (o == 'Farfadet') { setAttrs({'pcRace': 'Spriggan'}); }
else if (o == 'Lutin') { setAttrs({'pcRace': 'Sprite'}); }
else if (o == 'Geant') { setAttrs({'pcRace': 'Giant'}); }
else if (o == 'Minotaure') { setAttrs({'pcRace': 'Minotaur'}); }
else if (o == 'Ogre') { setAttrs({'pcRace': o}); }
else if (o == 'Nain') { setAttrs({'pcRace': 'Dwarf'}); }
else if (o == 'Meduse') { setAttrs({'pcRace': 'Medusa'}); }
else if (o == 'Fee Noire') { setAttrs({'pcRace': 'Black Fey'}); }
else if (o == 'Drakonien') { setAttrs({'pcRace': 'Draaken'}); }
else if (o == 'Pixie') { setAttrs({'pcRace': o}); }
else { setAttrs({'pcRace': 'Morgana'}); }
}
});
getAttrs(['parrain', 'pcGodfather'], function(v) {
var o = v['parrain'];
var n = v['pcGodfather'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'pcGodfather': o}); }
});
getAttrs(['mv', 'pcMove'], function(v) {
var o = v['mv'];
var n = v['pcMove'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'pcMove': o}); }
});
getAttrs(['experience', 'pcCExp'], function(v) {
var o = v['experience'];
var n = v['pcCExp'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'pcCExp': o}); }
});
getAttrs(['pdv', 'pcHP'], function(v) {
var o = v['pdv'];
var n = v['pcHP'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'pcHP': o}); }
});
getAttrs(['experience-totale', 'pcExp'], function(v) {
var o = v['experience-totale'];
var n = v['pcExp'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'pcExp': o}); }
});
getAttrs(['heroisme', 'pcFP'], function(v) {
var o = v['heroisme'];
var n = v['pcFP'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'pcFP': o}); }
});
getAttrs(['description', 'pcDescription'], function(v) {
var o = v['description'];
var n = v['pcDescription'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'pcDescription': o}); }
});
getAttrs(['corps', 'pcBody'], function(v) {
var o = v['corps'];
var n = v['pcBody'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'pcBody': o}); }
});
getAttrs(['corps-experience', 'pcBodyExp'], function(v) {
var o = v['corps-experience'];
var n = v['pcBodyExp'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'pcBodyExp': o}); }
});
getAttrs(['corps-noir', 'pcDarkBody'], function(v) {
var o = v['corps-noir'];
var n = v['pcDarkBody'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'pcDarkBody': o}); }
});
getAttrs(['esprit', 'pcSpirit'], function(v) {
var o = v['esprit'];
var n = v['pcSpirit'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'pcSpirit': o}); }
});
getAttrs(['esprit-experience', 'pcSpiritExp'], function(v) {
var o = v['esprit-experience'];
var n = v['pcSpiritExp'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'pcSpiritExp': o}); }
});
getAttrs(['esprit-noir', 'pcDarkSpirit'], function(v) {
var o = v['esprit-noir'];
var n = v['pcDarkSpirit'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'pcDarkSpirit': o}); }
});
getAttrs(['ame', 'pcSoul'], function(v) {
var o = v['ame'];
var n = v['pcSoul'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'pcSoul': o}); }
});
getAttrs(['ame-experience', 'pcSoulExp'], function(v) {
var o = v['ame-experience'];
var n = v['pcSoulExp'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'pcSoulExp': o}); }
});
getAttrs(['ame-noire', 'pcDarkSoul'], function(v) {
var o = v['ame-noire'];
var n = v['pcDarkSoul'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'pcDarkSoul': o}); }
});
getAttrs(['agilite', 'pcAgility'], function(v) {
var o = v['agilite'];
var n = v['pcAgility'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'pcAgility': o}); }
});
getAttrs(['agilite-experience', 'pcAgilityExp'], function(v) {
var o = v['agilite-experience'];
var n = v['pcAgilityExp'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'pcAgilityExp': o}); }
});
getAttrs(['force', 'pcStrength'], function(v) {
var o = v['force'];
var n = v['pcStrength'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'pcStrength': o}); }
});
getAttrs(['force-experience', 'pcStrengthExp'], function(v) {
var o = v['force-experience'];
var n = v['pcStrengthExp'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'pcStrengthExp': o}); }
});
getAttrs(['intelligence', 'pcIntelligence'], function(v) {
var o = v['intelligence'];
var n = v['pcIntelligence'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'pcIntelligence': o}); }
});
getAttrs(['intelligence-experience', 'pcIntelligenceExp'], function(v) {
var o = v['intelligence-experience'];
var n = v['pcIntelligenceExp'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'pcIntelligenceExp': o}); }
});
getAttrs(['charisme', 'pcCharisma'], function(v) {
var o = v['charisme'];
var n = v['pcCharisma'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'pcCharisma': o}); }
});
getAttrs(['charisme-experience', 'pcCharismaExp'], function(v) {
var o = v['charisme-experience'];
var n = v['pcCharismaExp'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'pcCharismaExp': o}); }
});
getAttrs(['perception', 'pcPerception'], function(v) {
var o = v['perception'];
var n = v['pcPerception'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'pcPerception': o}); }
});
getAttrs(['perception-experience', 'pcPerceptionExp'], function(v) {
var o = v['perception-experience'];
var n = v['pcPerceptionExp'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'pcPerceptionExp': o}); }
});
getAttrs(['resistance', 'pcStamina'], function(v) {
var o = v['resistance'];
var n = v['pcStamina'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'pcStamina': o}); }
});
getAttrs(['resistance-experience', 'pcStaminaExp'], function(v) {
var o = v['resistance-experience'];
var n = v['pcStaminaExp'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'pcStaminaExp': o}); }
});
getAttrs(['volonte', 'pcWill'], function(v) {
var o = v['volonte'];
var n = v['pcWill'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'pcWill': o}); }
});
getAttrs(['volonte-experience', 'pcWillExp'], function(v) {
var o = v['volonte-experience'];
var n = v['pcWillExp'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'pcWillExp': o}); }
});
getAttrs(['creativite', 'pcCreativity'], function(v) {
var o = v['creativite'];
var n = v['pcCreativity'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'pcCreativity': o}); }
});
getAttrs(['creativite-experience', 'pcCreativityExp'], function(v) {
var o = v['creativite-experience'];
var n = v['pcCreativityExp'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'pcCreativityExp': o}); }
});
getAttrs(['bd', 'pcDamageBonus'], function(v) {
var o = v['bd'];
var n = v['pcDamageBonus'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'pcDamageBonus': o}); }
});
getAttrs(['heroisme_max', 'pcFP_max'], function(v) {
var o = v['heroisme_max'];
var n = v['pcFP_max'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'pcFP_max': o}); }
});
getAttrs(['pdv_max', 'pcHP_max'], function(v) {
var o = v['pdv_max'];
var n = v['pcHP_max'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'pcHP_max': o}); }
});
getAttrs(['charge-max', 'pcMaxLoad'], function(v) {
var o = v['charge-max'];
var n = v['pcMaxLoad'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'pcMaxLoad': o}); }
});
getAttrs(['emprise', 'pcAscendancy'], function(v) {
var o = v['emprise'];
var n = v['pcAscendancy'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'pcAscendancy': o}); }
});
getAttrs(['pcSkillsConverted'], function(v) {
if (v['pcSkillsConverted'] == undefined) {
getSectionIDs(['repeating_competences'], function(c) {
if (c.length > 0) {
_.each(c, function(i) {
getAttrs([`repeating_competences_${i}_nom`, `repeating_competences_${i}_domaine`, `repeating_competences_${i}_specialite`, `repeating_competences_${i}_competence`, `repeating_competences_${i}_experience`], function(v) {
var n = v[`repeating_competences_${i}_nom`];
var b = v[`repeating_competences_${i}_domaine`];
var sp = v[`repeating_competences_${i}_specialite`];
var s = v[`repeating_competences_${i}_competence`];
var e = v[`repeating_competences_${i}_experience`];
if (n == undefined) { n = 'Arts Magiques (Occulte)'; }
else if (n == 'Accord (Occulte)') { n = 'Arts Magiques (Occulte)'; }
else if (n == 'Cyse (Occulte)') {
n = 'Arts Magiques (Occulte)';
b = 'Cyse';
}
else if (n == 'Décorum (Occulte)') {
n = 'Arts Magiques (Occulte)';
b = 'Décorum';
}
else if (n == 'Éclipsisme (Occulte)') {
n = 'Résonance (Occulte)';
b = 'Éclipsiste';
}
else if (n == 'Geste (Occulte)') {
n = 'Arts Magiques (Occulte)';
b = 'Geste';
}
else if (n == 'Histoires & Légendes (Savoir)') { n = 'Histoire & légendes (Savoir)'; }
else if (n == 'Jornisme (Occulte)') {
n = 'Résonance (Occulte)';
b = 'Jorniste';
}
else if (n == 'Obscurantisme (Occulte)') {
n = 'Résonance (Occulte)';
b = 'Obscurantiste';
}
var id = generateRowID();
var r = {};
r[`repeating_pc-skills_${id}_pcSkillName`] = n;
if (b != undefined) { r[`repeating_pc-skills_${id}_pcSkillBranch`] = b; }
if (sp != undefined) { r[`repeating_pc-skills_${id}_pcSkillSpecialty`] = sp; }
r[`repeating_pc-skills_${id}_pcSkillScore`] = s;
if (e != undefined) { r[`repeating_pc-skills_${id}_pcSkillExp`] = e; }
else { r[`repeating_pc-skills_${id}_pcSkillExp`] = 0; }
setAttrs(r);
setAttrs({'pcSkillsConverted': 1});
});
});
}
});
} else { setAttrs({'pcSkillsConverted': 1}); }
});
getAttrs(['pcAssetsConverted'], function(v) {
if (v['pcAssetsConverted'] == undefined) {
getSectionIDs(['repeating_perks'], function(c) {
if (c.length > 0) {
_.each(c, function(i) {
getAttrs([`repeating_perks_${i}_avantage`, `repeating_perks_${i}_avantage-cout`], function (v) {
var n = v[`repeating_perks_${i}_avantage`];
var c = v[`repeating_perks_${i}_avantage-cout`];
var id = generateRowID();
var r = {};
r[`repeating_pc-assets_${id}_pcAsset`] = n;
r[`repeating_pc-assets_${id}_pcAssetCost`] = c;
setAttrs(r);
setAttrs({'pcAssetsConverted': 1});
});
});
}
});
} else { setAttrs({'pcAssetsConverted': 1}); }
});
getAttrs(['pcFaultsConverted'], function(v) {
if (v['pcFaultsConverted'] == undefined) {
getSectionIDs(['repeating_defects'], function(c) {
if (c.length > 0) {
_.each(c, function(i) {
getAttrs([`repeating_defects_${i}_defaut`, `repeating_defects_${i}_defaut-cout`], function (v) {
var n = v[`repeating_defects_${i}_defaut`];
var c = v[`repeating_defects_${i}_defaut-cout`];
var id = generateRowID();
var r = {};
r[`repeating_pc-faults_${id}_pcFault`] = n;
r[`repeating_pc-faults_${id}_pcFaultCost`] = c;
setAttrs(r);
setAttrs({'pcFaultsConverted': 1});
});
});
}
});
} else { setAttrs({'pcFaultsConverted': 1}); }
});
getAttrs(['tenebre', 'pcDarkness'], function(v) {
var o = v['tenebre'];
var n = v['pcDarkness'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'pcDarkness': o}); }
});
getAttrs(['perfidie', 'pcPerfidy'], function(v) {
var o = v['perfidie'];
var n = v['pcPerfidy'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'pcPerfidy': o}); }
});
getAttrs(['diablotin-farceur', 'pcTrickster'], function(v) {
var o = v['diablotin-farceur'];
var n = v['pcTrickster'];
if (o != 0) { setAttrs({'pcTrickster': o}); }
});
getAttrs(['cauchemars', 'pcNightmares'], function(v) {
var o = v['cauchemars'];
var n = v['pcNightmares'];
if (o != 0) { setAttrs({'pcNightmares': o}); }
});
getAttrs(['demon-facetieux', 'pcMischeviousDemon'], function(v) {
var o = v['demon-facetieux'];
var n = v['pcMischeviousDemon'];
if (o != 0) { setAttrs({'pcMischeviousDemon': o}); }
});
getAttrs(['somnambule', 'pcSleepWalking'], function(v) {
var o = v['somnambule'];
var n = v['pcSleepWalking'];
if (o != 0) { setAttrs({'pcSleepWalking': o}); }
});
getAttrs(['insomniaque', 'pcInsomnia'], function(v) {
var o = v['insomniaque'];
var n = v['pcInsomnia'];
if (o != 0) { setAttrs({'pcInsomnia': o}); }
});
getAttrs(['mepris', 'pcContempt'], function(v) {
var o = v['mepris'];
var n = v['pcContempt'];
if (o != 0) { setAttrs({'pcContempt': o}); }
});
getAttrs(['deviance-sexuelle', 'pcSexualPerversion'], function(v) {
var o = v['deviance-sexuelle'];
var n = v['pcSexualPerversion'];
if (o != 0) { setAttrs({'pcSexualPerversion': o}); }
});
getAttrs(['scarifications-lunaires', 'pcLunarScarifications'], function(v) {
var o = v['scarifications-lunaires'];
var n = v['pcLunarScarifications'];
if (o != 0) { setAttrs({'pcLunarScarifications': o}); }
});
getAttrs(['jumeau-demoniaque', 'pcDemonicTwin'], function(v) {
var o = v['jumeau-demoniaque'];
var n = v['pcDemonicTwin'];
if (o != 0) { setAttrs({'pcDemonicTwin': o}); }
});
getAttrs(['obsession-de-l-ombre', 'pcObsessedByShadow'], function(v) {
var o = v['obsession-de-l-ombre'];
var n = v['pcObsessedByShadow'];
if (o != 0) { setAttrs({'pcObsessedByShadow': o}); }
});
getAttrs(['presence-oppressante', 'pcOppressivePresence'], function(v) {
var o = v['presence-oppressante'];
var n = v['pcOppressivePresence'];
if (o != 0) { setAttrs({'pcOppressivePresence': o}); }
});
getAttrs(['alteration-des-sens', 'pcAlterationOfTheSenses'], function(v) {
var o = v['alteration-des-sens'];
var n = v['pcAlterationOfTheSenses'];
if (o != 0) { setAttrs({'pcAlterationOfTheSenses': o}); }
});
getAttrs(['apparence-demoniaque', 'pcDemonicAppearance'], function(v) {
var o = v['apparence-demoniaque'];
var n = v['pcDemonicAppearance'];
if (o != 0) { setAttrs({'pcDemonicAppearance': o}); }
});
getAttrs(['ombre-de-la-perfidie', 'pcShadowOfPerfidy'], function(v) {
var o = v['ombre-de-la-perfidie'];
var n = v['pcShadowOfPerfidy'];
if (o != 0) { setAttrs({'pcShadowOfPerfidy': o}); }
});
getAttrs(['siamois-de-tenebre', 'pcSiameseOfDarkness'], function(v) {
var o = v['siamois-de-tenebre'];
var n = v['pcSiameseOfDarkness'];
if (o != 0) { setAttrs({'pcSiameseOfDarkness': o}); }
});
getAttrs(['ombre-vivante', 'pcLivingShadow'], function(v) {
var o = v['ombre-vivante'];
var n = v['pcLivingShadow'];
if (o != 0) { setAttrs({'pcLivingShadow': o}); }
});
getAttrs(['portail-interieur', 'pcInnerPortal'], function(v) {
var o = v['portail-interieur'];
var n = v['pcInnerPortal'];
if (o != 0) { setAttrs({'pcInnerPortal': o}); }
});
getAttrs(['marque-des-hauts-diables', 'pcTouchOfHighDevils'], function(v) {
var o = v['marque-des-hauts-diables'];
var n = v['pcTouchOfHighDevils'];
if (o != 0) { setAttrs({'pcTouchOfHighDevils': o}); }
});
getAttrs(['dechu', 'pcFinalMetamorphosis'], function(v) {
var o = v['dechu'];
var n = v['pcFinalMetamorphosis'];
if (o != 0) { setAttrs({'pcFinalMetamorphosis': o}); }
});
getAttrs(['pcGiftsConverted'], function(v) {
if (v['pcGiftsConverted'] == undefined) {
getSectionIDs(['repeating_benefaction'], function(c) {
if (c.length > 0) {
_.each(c, function(i) {
getAttrs([`repeating_benefaction_${i}_bienfait`], function (v) {
var n = v[`repeating_benefaction_${i}_bienfait`];
var id = generateRowID();
var r = {};
r[`repeating_pc-gifts_${id}_pcGift`] = n;
setAttrs(r);
setAttrs({'pcGiftsConverted': 1});
});
});
}
});
} else { setAttrs({'pcGiftsConverted': 1}); }
});
getAttrs(['pcSorrowsConverted'], function(v) {
if (v['pcSorrowsConverted'] == undefined) {
getSectionIDs(['repeating_grief'], function(c) {
if (c.length > 0) {
_.each(c, function(i) {
getAttrs([`repeating_grief_${i}_peine`], function (v) {
var n = v[`repeating_grief_${i}_peine`];
var id = generateRowID();
var r = {};
r[`repeating_pc-sorrows_${id}_pcSorrow`] = n;
setAttrs(r);
setAttrs({'pcSorrowsConverted': 1});
});
});
}
});
} else { setAttrs({'pcSorrowsConverted': 1}); }
});
getAttrs(['pcPowersConverted'], function(v) {
if (v['pcPowersConverted'] == undefined) {
getSectionIDs(['repeating_powers'], function(c) {
if (c.length > 0) {
_.each(c, function(i) {
getAttrs([`repeating_powers_${i}_pouvoir`], function (v) {
var n = v[`repeating_powers_${i}_pouvoir`];
var id = generateRowID();
var r = {};
r[`repeating_pc-powers_${id}_pcPower`] = n;
setAttrs(r);
setAttrs({'pcPowersConverted': 1});
});
});
}
});
} else { setAttrs({'pcPowersConverted': 1}); }
});
getAttrs(['aiglon', 'pcAiglet'], function(v) {
var o = v['aiglon'];
var n = v['pcAiglet'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'pcAiglet': o}); }
});
getAttrs(['sastre', 'pcSastre'], function(v) {
var o = v['sastre'];
var n = v['pcSastre'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'pcSastre': o}); }
});
getAttrs(['pistole', 'pcPistol'], function(v) {
var o = v['pistole'];
var n = v['pcPistol'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'pcPistol': o}); }
});
getAttrs(['dirhem', 'pcDirhem'], function(v) {
var o = v['dirhem'];
var n = v['pcDirhem'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'pcDirhem': o}); }
});
getAttrs(['perle', 'pcPearl'], function(v) {
var o = v['perle'];
var n = v['pcPearl'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'pcPearl': o}); }
});
getAttrs(['cristal', 'pcCrystal'], function(v) {
var o = v['cristal'];
var n = v['pcCrystal'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'pcCrystal': o}); }
});
getAttrs(['pieces-d-or', 'pcGoldPiece'], function(v) {
var o = v['pieces-d-or'];
var n = v['pcGoldPiece'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'pcGoldPiece': o}); }
});
getAttrs(['sou', 'pcCoin'], function(v) {
var o = v['sou'];
var n = v['pcCoin'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'pcCoin': o}); }
});
getAttrs(['bribe', 'pcScrape'], function(v) {
var o = v['bribe'];
var n = v['pcScrape'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'pcScrape': o}); }
});
getAttrs(['pcStuffConverted'], function(v) {
if (v['pcStuffConverted'] == undefined) {
getSectionIDs(['repeating_stuff'], function(c) {
if (c.length > 0) {
_.each(c, function(i) {
getAttrs([`repeating_stuff_${i}_objet`, `repeating_stuff_${i}_objet-quantite`, `repeating_stuff_${i}_objet-masse`], function (v) {
var n = v[`repeating_stuff_${i}_objet`];
var q = v[`repeating_stuff_${i}_objet-quantite`];
var w = v[`repeating_stuff_${i}_objet-masse`];
var id = generateRowID();
var r = {};
r[`repeating_pc-stuff_${id}_pcStuff`] = n;
if (q != undefined) { r[`repeating_pc-stuff_${id}_pcStuffQuantity`] = q; }
if (w != undefined) { r[`repeating_pc-stuff_${id}_pcStuffWeight`] = w; }
setAttrs(r);
setAttrs({'pcStuffConverted': 1});
});
});
}
});
} else { setAttrs({'pcStuffConverted': 1}); }
});
getAttrs(['pcManeuversConverted'], function(v) {
if (v['pcManeuversConverted'] == undefined) {
getSectionIDs(['repeating_maneuvers'], function(c) {
if (c.length > 0) {
_.each(c, function(i) {
getAttrs([`repeating_maneuvers_${i}_manoeuvre`], function (v) {
var n = v[`repeating_maneuvers_${i}_manoeuvre`];
var id = generateRowID();
var r = {};
r[`repeating_pc-maneuvers_${id}_pcManeuver`] = n;
setAttrs(r);
setAttrs({'pcManeuversConverted': 1});
});
});
}
});
} else { setAttrs({'pcManeuversConverted': 1}); }
});
getAttrs(['armure', 'pcArmor'], function(v) {
var o = v['armure'];
var n = v['pcArmor'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'pcArmor': o}); }
});
getAttrs(['protection', 'pcArmorProtection'], function(v) {
var o = v['protection'];
var n = v['pcArmorProtection'];
if (o != n) { setAttrs({'pcArmorProtection': o}); }
});
getAttrs(['malus', 'pcArmorAgilityPenalty'], function(v) {
var o = v['malus'];
var n = v['pcArmorAgilityPenalty'];
if (o != n) { setAttrs({'pcArmorAgilityPenalty': o}); }
});
getAttrs(['blessures-graves', 'pcSeriousWound'], function(v) {
var o = v['blessures-graves'];
var n = v['pcSeriousWound'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'pcSeriousWound': o}); }
});
getAttrs(['total-esquive', 'pcDodgeTotal'], function(v) {
var o = v['total-esquive'];
var n = v['pcDodgeTotal'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'pcDodgeTotal': o}); }
});
getAttrs(['pcWeaponsConverted'], function(v) {
if (v['pcWeaponsConverted'] == undefined) {
getSectionIDs(['repeating_weapons'], function(c) {
if (c.length > 0) {
_.each(c, function(i) {
getAttrs([`repeating_weapons_${i}_arme-nom`, `repeating_weapons_${i}_arme-tai`, `repeating_weapons_${i}_arme-ini`, `repeating_weapons_${i}_arme-att`, `repeating_weapons_${i}_arme-def`, `repeating_weapons_${i}_arme-dom`, `repeating_weapons_${i}_arme-type-degats`, `repeating_weapons_${i}_arme-style`, `repeating_weapons_${i}_armes-competence`, `repeating_weapons_${i}_arme-description`], function (v) {
var n = v[`repeating_weapons_${i}_arme-nom`];
var s = v[`repeating_weapons_${i}_arme-tai`];
var ini = v[`repeating_weapons_${i}_arme-ini`];
var a = v[`repeating_weapons_${i}_arme-att`];
var def = v[`repeating_weapons_${i}_arme-def`];
var d = v[`repeating_weapons_${i}_arme-dom`];
var t = v[`repeating_weapons_${i}_arme-type-degats`];
var ws = v[`repeating_weapons_${i}_arme-style`];
if (v[`repeating_weapons_${i}_armes-competence`] != undefined) { var skill = v[`repeating_weapons_${i}_armes-competence`].replace('armes-competence', 'pcWeaponSkill'); }
else { var skill = '@{pcWeaponSkill-1}' };
var desc = v[`repeating_weapons_${i}_arme-description`];
var id = generateRowID();
var r = {};
r[`repeating_pc-weapons_${id}_pcWeaponName`] = n;
if (s != undefined) { r[`repeating_pc-weapons_${id}_pcWeaponSIZ`] = s; }
if (i != undefined) { r[`repeating_pc-weapons_${id}_pcWeaponInit`] = ini; }
if (a != undefined) { r[`repeating_pc-weapons_${id}_pcWeaponAttack`] = a; }
if (def != undefined) { r[`repeating_pc-weapons_${id}_pcWeaponDefense`] = def; }
if (d != undefined) { r[`repeating_pc-weapons_${id}_pcWeaponDamage`] = d; }
if (t != undefined) { r[`repeating_pc-weapons_${id}_pcWeaponType`] = t; }
if (ws == 'jet') { r[`repeating_pc-weapons_${id}_pcWeaponStyle`] = 'thrown'; }
else if (ws == 'trait') { r[`repeating_pc-weapons_${id}_pcWeaponStyle`] = 'missile'; }
else { r[`repeating_pc-weapons_${id}_pcWeaponStyle`] = 'melee'; }
if (skill != undefined) { r[`repeating_pc-weapons_${id}_pcWeaponSkill`] = skill; }
if (desc != undefined) { r[`repeating_pc-weapons_${id}_pcWeaponDescription`] = desc; }
setAttrs(r);
setAttrs({'pcWeaponsConverted': 1});
});
});
}
});
} else { setAttrs({'pcWeaponsConverted': 1}); }
});
getAttrs(['pcAscendancyConverted'], function(v) {
if (v['pcAscendancyConverted'] == undefined) {
getSectionIDs(['repeating_emprise'], function(c) {
if (c.length > 0) {
_.each(c, function(i) {
getAttrs([`repeating_emprise_${i}_danseur`, `repeating_emprise_${i}_danseur-experience`, `repeating_emprise_${i}_danseur-memoire`, `repeating_emprise_${i}_danseur-memoire_max`, `repeating_emprise_${i}_danseur-bonus-emprise`, `repeating_emprise_${i}_danseur-empathie`, `repeating_emprise_${i}_danseur-endurance`, `repeating_emprise_${i}_danseur-endurance_max`, `repeating_emprise_${i}_potentiel-emprise`, `repeating_emprise_${i}_potentiel-impro-emprise`], function (v) {
var n = v[`repeating_emprise_${i}_danseur`];
var e = v[`repeating_emprise_${i}_danseur-experience`];
var m = v[`repeating_emprise_${i}_danseur-memoire`];
var mm = v[`repeating_emprise_${i}_danseur-memoire_max`];
var ab = v[`repeating_emprise_${i}_danseur-bonus-emprise`];
var em = v[`repeating_emprise_${i}_danseur-empathie`];
var end = v[`repeating_emprise_${i}_danseur-endurance`];
var mend = v[`repeating_emprise_${i}_danseur-endurance_max`];
var aa = v[`repeating_emprise_${i}_potentiel-emprise`];
var aia = v[`repeating_emprise_${i}_potentiel-impro-emprise`];
var id = generateRowID();
var r = {};
if (n != undefined) { r[`repeating_pc-ascendancies_${id}_pcDancer`] = n; }
if (e != undefined) { r[`repeating_pc-ascendancies_${id}_pcDancerExp`] = e; }
if (m != undefined) { r[`repeating_pc-ascendancies_${id}_pcDancerMemory`] = m; }
if (mm != undefined) { r[`repeating_pc-ascendancies_${id}_pcDancerMemory_max`] = mm; }
if (ab != undefined) { r[`repeating_pc-ascendancies_${id}_pcDancerASCBonus`] = ab; }
if (em != undefined) { r[`repeating_pc-ascendancies_${id}_pcDancerEmpathy`] = em; }
if (end != undefined) { r[`repeating_pc-ascendancies_${id}_pcDancerEndurance`] = end; }
if (mend != undefined) { r[`repeating_pc-ascendancies_${id}_pcDancerEndurance_max`] = mend; }
if (aa != undefined) { r[`repeating_pc-ascendancies_${id}_pcAscendancyAptitude`] = aa; }
if (aia != undefined) { r[`repeating_pc-ascendancies_${id}_pcASCImproAptitude`] = aia; }
setAttrs(r);
setAttrs({'pcAscendancyConverted': 1});
});
});
}
});
} else { setAttrs({'pcAscendancyConverted': 1}); }
});
getAttrs(['pcArtsConverted'], function(v) {
if (v['pcArtsConverted'] == undefined) {
getSectionIDs(['repeating_art'], function(c) {
if (c.length > 0) {
_.each(c, function(i) {
getAttrs([`repeating_art_${i}_art`, `repeating_art_${i}_potentiel-art`, `repeating_art_${i}_potentiel-impro-art`], function (v) {
var n = v[`repeating_art_${i}_art`];
var aa = v[`repeating_art_${i}_potentiel-art`];
var aia = v[`repeating_art_${i}_potentiel-impro-art`];
var id = generateRowID();
var r = {};
if (n != undefined) { r[`repeating_pc-arts_${id}_pcArtName`] = n; }
if (aa != undefined) { r[`repeating_pc-arts_${id}_pcArtAptitude`] = aa; }
if (aia != undefined) { r[`repeating_pc-arts_${id}_pcArtImproAptitude`] = aia; }
setAttrs(r);
setAttrs({'pcArtsConverted': 1});
});
});
}
});
} else { setAttrs({'pcArtsConverted': 1}); }
});
getAttrs(['pcSpellsConverted'], function(v) {
if (v['pcSpellsConverted'] == undefined) {
getSectionIDs(['repeating_spells'], function(c) {
if (c.length > 0) {
_.each(c, function(i) {
getAttrs([`repeating_spells_${i}_magie-nom`, `repeating_spells_${i}_magie-type`, `repeating_spells_${i}_magie-seuil`, `repeating_spells_${i}_magie-portee`, `repeating_spells_${i}_magie-temps`, `repeating_spells_${i}_magie-duree`, `repeating_spells_${i}_magie-danseur`, `repeating_spells_${i}_sort-description`], function (v) {
var n = v[`repeating_spells_${i}_magie-nom`];
var t = v[`repeating_spells_${i}_magie-type`];
var tr = v[`repeating_spells_${i}_magie-seuil`];
var ra = v[`repeating_spells_${i}_magie-portee`];
var e = v[`repeating_spells_${i}_magie-temps`];
var d = v[`repeating_spells_${i}_magie-duree`];
var dan = v[`repeating_spells_${i}_magie-danseur`];
var desc = v[`repeating_spells_${i}_sort-description`];
var id = generateRowID();
var r = {};
if (n != undefined) { r[`repeating_pc-spells_${id}_pcSpellName`] = n; }
if (t != undefined) { r[`repeating_pc-spells_${id}_pcSpellBranch`] = t; }
if (tr != undefined) { r[`repeating_pc-spells_${id}_pcSpellThreshold`] = tr; }
if (ra != undefined) { r[`repeating_pc-spells_${id}_pcSpellRange`] = ra; }
if (e != undefined) { r[`repeating_pc-spells_${id}_pcSpellExec`] = e; }
if (d != undefined) { r[`repeating_pc-spells_${id}_pcSpellDuration`] = d; }
if (dan != undefined) { r[`repeating_pc-spells_${id}_pcSpellDancer`] = dan; }
if (desc != undefined) { r[`repeating_pc-spells_${id}_pcSpellDescription`] = desc; }
setAttrs(r);
setAttrs({'pcSpellsConverted': 1});
});
});
}
});
} else { setAttrs({'pcSpellsConverted': 1}); }
});
getAttrs(['encre-i', 'pcInkI'], function(v) {
var o = v['encre-i'];
var n = v['pcInkI'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'pcInkI': o}); }
});
getAttrs(['encre-ii', 'pcInkII'], function(v) {
var o = v['encre-ii'];
var n = v['pcInkII'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'pcInkII': o}); }
});
getAttrs(['encre-iii', 'pcInkIII'], function(v) {
var o = v['encre-iii'];
var n = v['pcInkIII'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'pcInkIII': o}); }
});
getAttrs(['encre-iv', 'pcInkIV'], function(v) {
var o = v['encre-iv'];
var n = v['pcInkIV'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'pcInkIV': o}); }
});
getAttrs(['encre-v', 'pcInkV'], function(v) {
var o = v['encre-v'];
var n = v['pcInkV'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'pcInkV': o}); }
});
getAttrs(['pcInvokingConverted'], function(v) {
if (v['pcInvokingConverted'] == undefined) {
getSectionIDs(['repeating_conjuration'], function(c) {
if (c.length > 0) {
_.each(c, function(i) {
getAttrs([`repeating_conjuration_${i}_connivence`], function (v) {
var n = v[`repeating_conjuration_${i}_connivence`];
var id = generateRowID();
var r = {};
r[`repeating_pc-invoking_${id}_pcConnivance`] = n;
setAttrs(r);
setAttrs({'pcInvokingConverted': 1});
});
});
}
});
} else { setAttrs({'pcInvokingConverted': 1}); }
});
getAttrs(['pcADConverted'], function(v) {
if (v['pcADConverted'] == undefined) {
getSectionIDs(['repeating_advocatus-diaboli'], function(c) {
if (c.length > 0) {
_.each(c, function(i) {
getAttrs([`repeating_advocatus-diaboli_${i}_advocatus-diaboli`], function (v) {
var n = v[`repeating_advocatus-diaboli_${i}_advocatus-diaboli`];
var id = generateRowID();
var r = {};
r[`repeating_pc-advocatus-diaboli_${id}_pcAdvocatusDiaboli`] = n;
setAttrs(r);
setAttrs({'pcADConverted': 1});
});
});
}
});
} else { setAttrs({'pcADConverted': 1}); }
});
getAttrs(['compagnon-age', 'companionAge'], function(v) {
var o = v['compagnon-age'];
var n = v['companionAge'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'companionAge': o}); }
});
getAttrs(['compagnon-experience', 'companionExp'], function(v) {
var o = v['compagnon-experience'];
var n = v['companionExp'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'companionExp': o}); }
});
getAttrs(['compagnon-taille', 'companionSize'], function(v) {
var o = v['compagnon-taille'];
var n = v['companionSize'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'companionSize': o}); }
});
getAttrs(['compagnon-masse', 'companionWeight'], function(v) {
var o = v['compagnon-masse'];
var n = v['companionWeight'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'companionWeight': o}); }
});
getAttrs(['compagnon-description', 'companionDescription'], function(v) {
var o = v['compagnon-description'];
var n = v['companionDescription'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'companionDescription': o}); }
});
getAttrs(['compagnon-agi', 'companionAgility'], function(v) {
var o = v['compagnon-agi'];
var n = v['companionAgility'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'companionAgility': o}); }
});
getAttrs(['compagnon-for', 'companionStrength'], function(v) {
var o = v['compagnon-for'];
var n = v['companionStrength'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'companionStrength': o}); }
});
getAttrs(['compagnon-per', 'companionPerception'], function(v) {
var o = v['compagnon-per'];
var n = v['companionPerception'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'companionPerception': o}); }
});
getAttrs(['compagnon-res', 'companionStamina'], function(v) {
var o = v['compagnon-res'];
var n = v['companionStamina'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'companionStamina': o}); }
});
getAttrs(['compagnon-int', 'companionIntelligence'], function(v) {
var o = v['compagnon-int'];
var n = v['companionIntelligence'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'companionIntelligence': o}); }
});
getAttrs(['compagnon-vol', 'companionWill'], function(v) {
var o = v['compagnon-vol'];
var n = v['companionWill'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'companionWill': o}); }
});
getAttrs(['compagnon-cha', 'companionCharisma'], function(v) {
var o = v['compagnon-cha'];
var n = v['companionCharisma'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'companionCharisma': o}); }
});
getAttrs(['compagnon-cre', 'companionCreativity'], function(v) {
var o = v['compagnon-cre'];
var n = v['companionCreativity'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'companionCreativity': o}); }
});
getAttrs(['compagnon-charge-emp', 'companionAscendancy'], function(v) {
var o = v['compagnon-charge-emp'];
var n = v['companionAscendancy'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'companionAscendancy': o}); }
});
getAttrs(['compagnon-tai', 'companionSIZ'], function(v) {
var o = v['compagnon-tai'];
var n = v['companionSIZ'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'companionSIZ': o}); }
});
getAttrs(['compagnon-mv', 'companionMove'], function(v) {
var o = v['compagnon-mv'];
var n = v['companionMove'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'companionMove': o}); }
});
getAttrs(['compagnon-bd', 'companionDamageBonus'], function(v) {
var o = v['compagnon-bd'];
var n = v['companionDamageBonus'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'companionDamageBonus': o}); }
});
getAttrs(['compagnon-pdv_max', 'companionHP_max'], function(v) {
var o = v['compagnon-pdv_max'];
var n = v['companionHP_max'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'companionHP_max': o}); }
});
getAttrs(['compagnon-charge-max', 'companionMaxLoad'], function(v) {
var o = v['compagnon-charge-max'];
var n = v['companionMaxLoad'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'companionMaxLoad': o}); }
});
getAttrs(['compagnon-pdv', 'companionHP'], function(v) {
var o = v['compagnon-pdv'];
var n = v['companionHP'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'companionHP': o}); }
});
getAttrs(['companionSkillsConverted'], function(v) {
if (v['companionSkillsConverted'] == undefined) {
getSectionIDs(['repeating_compagnon-competences'], function(c) {
if (c.length > 0) {
_.each(c, function(i) {
getAttrs([`repeating_compagnon-competences_${i}_nom`, `repeating_compagnon-competences_${i}_domaine`, `repeating_compagnon-competences_${i}_specialite`, `repeating_compagnon-competences_${i}_competence`, `repeating_compagnon-competences_${i}_experience`], function(v) {
var n = v[`repeating_compagnon-competences_${i}_nom`];
var b = v[`repeating_compagnon-competences_${i}_domaine`];
var sp = v[`repeating_compagnon-competences_${i}_specialite`];
var s = v[`repeating_compagnon-competences_${i}_competence`];
var e = v[`repeating_compagnon-competences_${i}_experience`];
if (b == undefined) { b = n; }
else if (sp == undefined) { sp = n; }
else { b = 'Nom : '+n+' ; domaine : '+b; }
var id = generateRowID();
var r = {};
r[`repeating_companion-skills_${id}_companionSkillName`] = 'Acrobatie (Maraude)';
r[`repeating_companion-skills_${id}_companionSkillBranch`] = b;
if (sp != undefined) { r[`repeating_companion-skills_${id}_companionSkillSpecialty`] = sp; }
r[`repeating_companion-skills_${id}_companionSkillScore`] = s;
if (e != undefined) { r[`repeating_companion-skills_${id}_companionSkillExp`] = e; }
else { r[`repeating_companion-skills_${id}_companionSkillExp`] = 0; }
setAttrs(r);
setAttrs({'companionSkillsConverted': 1});
});
});
}
});
} else { setAttrs({'companionSkillsConverted': 1}); }
});
getAttrs(['compagnon-esquive', 'companionDodge'], function(v) {
var o = v['compagnon-esquive'];
var n = v['companionDodge'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'companionDodge': o}); }
});
getAttrs(['compagnon-defense-naturelle', 'companionNaturalDefense'], function(v) {
var o = v['compagnon-defense-naturelle'];
var n = v['companionNaturalDefense'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'companionNaturalDefense': o}); }
});
getAttrs(['companionWeaponsConverted'], function(v) {
if (v['companionWeaponsConverted'] == undefined) {
getSectionIDs(['repeating_compagnon-weapons'], function(c) {
if (c.length > 0) {
_.each(c, function(i) {
getAttrs([`repeating_compagnon-weapons_${i}_nom`, `repeating_compagnon-weapons_${i}_arme-tai`, `repeating_compagnon-weapons_${i}_arme-ini`, `repeating_compagnon-weapons_${i}_arme-att`, `repeating_compagnon-weapons_${i}_arme-def`, `repeating_compagnon-weapons_${i}_arme-dom`, `repeating_compagnon-weapons_${i}_arme-type-degats`, `repeating_compagnon-weapons_${i}_arme-style`, `repeating_compagnon-weapons_${i}_compagnon-armes-competence`], function (v) {
var n = v[`repeating_compagnon-weapons_${i}_nom`];
var s = v[`repeating_compagnon-weapons_${i}_arme-tai`];
var ini = v[`repeating_compagnon-weapons_${i}_arme-ini`];
var a = v[`repeating_compagnon-weapons_${i}_arme-att`];
var def = v[`repeating_compagnon-weapons_${i}_arme-def`];
var d = v[`repeating_compagnon-weapons_${i}_arme-dom`];
var t = v[`repeating_compagnon-weapons_${i}_arme-type-degats`];
var ws = v[`repeating_compagnon-weapons_${i}_arme-style`];
if (v[`repeating_compagnon-weapons_${i}_compagnon-armes-competence`] != undefined) { var skill = v[`repeating_compagnon-weapons_${i}_compagnon-armes-competence`].replace('compagnon-armes-competence', 'companionWeaponSkill'); }
else { var skill = '@{companionWeaponSkill-1}' };
var id = generateRowID();
var r = {};
r[`repeating_companion-weapons_${id}_companionWeaponName`] = n;
if (s != undefined) { r[`repeating_companion-weapons_${id}_companionWeaponSIZ`] = s; }
if (i != undefined) { r[`repeating_companion-weapons_${id}_companionWeaponInit`] = ini; }
if (a != undefined) { r[`repeating_companion-weapons_${id}_companionWeaponAttack`] = a; }
if (def != undefined) { r[`repeating_companion-weapons_${id}_companionWeaponDefense`] = def; }
if (d != undefined) { r[`repeating_companion-weapons_${id}_companionWeaponDamage`] = d; }
if (t != undefined) { r[`repeating_companion-weapons_${id}_companionWeaponType`] = t; }
if (ws == 'jet') { r[`repeating_companion-weapons_${id}_companionWeaponStyle`] = 'thrown'; }
else if (ws == 'trait') { r[`repeating_companion-weapons_${id}_companionWeaponStyle`] = 'missile'; }
else { r[`repeating_companion-weapons_${id}_companionWeaponStyle`] = 'melee'; }
if (skill != undefined) { r[`repeating_companion-weapons_${id}_companionWeaponSkill`] = skill; }
setAttrs(r);
setAttrs({'companionWeaponsConverted': 1});
});
});
}
});
} else { setAttrs({'companionWeaponsConverted': 1}); }
});
getAttrs(['demon-sexe', 'demonSex'], function(v) {
var o = v['demon-sexe'];
var n = v['demonSex'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'demonSex': o}); }
});
getAttrs(['demon-taille', 'demonSize'], function(v) {
var o = v['demon-taille'];
var n = v['demonSize'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'demonSize': o}); }
});
getAttrs(['demon-masse', 'demonWeight'], function(v) {
var o = v['demon-masse'];
var n = v['demonWeight'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'demonWeight': o}); }
});
getAttrs(['demon-age', 'demonAge'], function(v) {
var o = v['demon-age'];
var n = v['demonAge'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'demonAge': o}); }
});
getAttrs(['demon-tai', 'demonSIZ'], function(v) {
var o = v['demon-tai'];
var n = v['demonSIZ'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'demonSIZ': o}); }
});
getAttrs(['demon-mv-sol', 'demonGroundMove'], function(v) {
var o = v['demon-mv-sol'];
var n = v['demonGroundMove'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'demonGroundMove': o}); }
});
getAttrs(['demon-mv-vol', 'demonFlightMove'], function(v) {
var o = v['demon-mv-vol'];
var n = v['demonFlightMove'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'demonFlightMove': o}); }
});
getAttrs(['demon-bd', 'demonDamageBonus'], function(v) {
var o = v['demon-bd'];
var n = v['demonDamageBonus'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'demonDamageBonus': o}); }
});
getAttrs(['demon-dif', 'demonDIF'], function(v) {
var o = v['demon-dif'];
var n = v['demonDIF'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'demonDIF': o}); }
});
getAttrs(['demon-agi', 'demonAgility'], function(v) {
var o = v['demon-agi'];
var n = v['demonAgility'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'demonAgility': o}); }
});
getAttrs(['demon-for', 'demonStrength'], function(v) {
var o = v['demon-for'];
var n = v['demonStrength'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'demonStrength': o}); }
});
getAttrs(['demon-per', 'demonPerception'], function(v) {
var o = v['demon-per'];
var n = v['demonPerception'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'demonPerception': o}); }
});
getAttrs(['demon-opacite', 'demonOpacity'], function(v) {
var o = v['demon-opacite'];
var n = v['demonOpacity'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'demonOpacity': o}); }
});
getAttrs(['demon-densite-totale', 'demonDensity_max'], function(v) {
var o = v['demon-densite-totale'];
var n = v['demonDensity_max'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'demonDensity_max': o}); }
});
getAttrs(['demon-densite', 'demonDensity'], function(v) {
var o = v['demon-densite'];
var n = v['demonDensity'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'demonDensity': o}); }
});
getAttrs(['demon-int', 'demonIntelligence'], function(v) {
var o = v['demon-int'];
var n = v['demonIntelligence'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'demonIntelligence': o}); }
});
getAttrs(['demon-vol', 'demonWill'], function(v) {
var o = v['demon-vol'];
var n = v['demonWill'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'demonWill': o}); }
});
getAttrs(['demon-cha', 'demonCharisma'], function(v) {
var o = v['demon-cha'];
var n = v['demonCharisma'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'demonCharisma': o}); }
});
getAttrs(['demon-cre', 'demonCreativity'], function(v) {
var o = v['demon-cre'];
var n = v['demonCreativity'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'demonCreativity': o}); }
});
getAttrs(['demon-charge-max', 'demonMaxLoad'], function(v) {
var o = v['demon-charge-max'];
var n = v['demonMaxLoad'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'demonMaxLoad': o}); }
});
getAttrs(['demonSkillsConverted'], function(v) {
if (v['demonSkillsConverted'] == undefined) {
getSectionIDs(['repeating_demon-competences'], function(c) {
if (c.length > 0) {
_.each(c, function(i) {
getAttrs([`repeating_demon-competences_${i}_nom`, `repeating_demon-competences_${i}_domaine`, `repeating_demon-competences_${i}_specialite`, `repeating_demon-competences_${i}_competence`], function(v) {
var n = v[`repeating_demon-competences_${i}_nom`];
var b = v[`repeating_demon-competences_${i}_domaine`];
var sp = v[`repeating_demon-competences_${i}_specialite`];
var s = v[`repeating_demon-competences_${i}_competence`];
if (b == undefined) { b = n; }
else if (sp == undefined) { sp = n; }
else { b = 'Nom : '+n+' ; domaine : '+b; }
var id = generateRowID();
var r = {};
r[`repeating_demon-skills_${id}_demonSkillName`] = 'Acrobatie (Maraude)';
r[`repeating_demon-skills_${id}_demonSkillBranch`] = b;
if (sp != undefined) { r[`repeating_demon-skills_${id}_demonSkillSpecialty`] = sp; }
r[`repeating_demon-skills_${id}_demonSkillScore`] = s;
setAttrs(r);
setAttrs({'demonSkillsConverted': 1});
});
});
}
});
} else { setAttrs({'demonSkillsConverted': 1}); }
});
getAttrs(['demon-malus-armure', 'demonArmorAgilityPenalty'], function(v) {
var o = v['demon-malus-armure'];
var n = v['demonArmorAgilityPenalty'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'demonArmorAgilityPenalty': o}); }
});
getAttrs(['demon-armure', 'demonArmor'], function(v) {
var o = v['demon-armure'];
var n = v['demonArmor'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'demonArmor': o}); }
});
getAttrs(['demon-total-esquive', 'demonDodgeTotal'], function(v) {
var o = v['demon-total-esquive'];
var n = v['demonDodgeTotal'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'demonDodgeTotal': o}); }
});
getAttrs(['demon-defense-naturelle', 'demonNaturalDefense'], function(v) {
var o = v['demon-defense-naturelle'];
var n = v['demonNaturalDefense'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'demonNaturalDefense': o}); }
});
getAttrs(['demon-esquive-distance', 'demonDistanceDodge'], function(v) {
var o = v['demon-esquive-distance'];
var n = v['demonDistanceDodge'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'demonDistanceDodge': o}); }
});
getAttrs(['demonWeaponsConverted'], function(v) {
if (v['demonWeaponsConverted'] == undefined) {
getSectionIDs(['repeating_demon-weapons'], function(c) {
if (c.length > 0) {
_.each(c, function(i) {
getAttrs([`repeating_demon-weapons_${i}_nom`, `repeating_demon-weapons_${i}_arme-tai`, `repeating_demon-weapons_${i}_arme-ini`, `repeating_demon-weapons_${i}_arme-att`, `repeating_demon-weapons_${i}_arme-def`, `repeating_demon-weapons_${i}_arme-dom`, `repeating_demon-weapons_${i}_arme-type-degats`, `repeating_demon-weapons_${i}_arme-style`, `repeating_demon-weapons_${i}_demon-armes-competence`], function (v) {
var n = v[`repeating_demon-weapons_${i}_nom`];
var s = v[`repeating_demon-weapons_${i}_arme-tai`];
var ini = v[`repeating_demon-weapons_${i}_arme-ini`];
var a = v[`repeating_demon-weapons_${i}_arme-att`];
var def = v[`repeating_demon-weapons_${i}_arme-def`];
var d = v[`repeating_demon-weapons_${i}_arme-dom`];
var t = v[`repeating_demon-weapons_${i}_arme-type-degats`];
var ws = v[`repeating_demon-weapons_${i}_arme-style`];
if (v[`repeating_demon-weapons_${i}_demon-armes-competence`] != undefined) { var skill = v[`repeating_demon-weapons_${i}_demon-armes-competence`].replace('demon-armes-competence', 'demonWeaponSkill'); }
else { var skill = '@{demonWeaponSkill-1}' };
var id = generateRowID();
var r = {};
r[`repeating_demon-weapons_${id}_demonWeaponName`] = n;
if (s != undefined) { r[`repeating_demon-weapons_${id}_demonWeaponSIZ`] = s; }
if (i != undefined) { r[`repeating_demon-weapons_${id}_demonWeaponInit`] = ini; }
if (a != undefined) { r[`repeating_demon-weapons_${id}_demonWeaponAttack`] = a; }
if (def != undefined) { r[`repeating_demon-weapons_${id}_demonWeaponDefense`] = def; }
if (d != undefined) { r[`repeating_demon-weapons_${id}_demonWeaponDamage`] = d; }
if (t != undefined) { r[`repeating_demon-weapons_${id}_demonWeaponType`] = t; }
if (ws == 'jet') { r[`repeating_demon-weapons_${id}_demonWeaponStyle`] = 'thrown'; }
else if (ws == 'trait') { r[`repeating_demon-weapons_${id}_demonWeaponStyle`] = 'missile'; }
else { r[`repeating_demon-weapons_${id}_demonWeaponStyle`] = 'melee'; }
if (skill != undefined) { r[`repeating_demon-weapons_${id}_demonWeaponSkill`] = skill; }
setAttrs(r);
setAttrs({'demonWeaponsConverted': 1});
});
});
}
});
} else { setAttrs({'demonWeaponsConverted': 1}); }
});
getAttrs(['npc-age', 'npcAge'], function(v) {
var o = v['npc-age'];
var n = v['npcAge'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'npcAge': o}); }
});
getAttrs(['npc-taille', 'npcSize'], function(v) {
var o = v['npc-taille'];
var n = v['npcSize'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'npcSize': o}); }
});
getAttrs(['npc-masse', 'npcWeight'], function(v) {
var o = v['npc-masse'];
var n = v['npcWeight'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'npcWeight': o}); }
});
getAttrs(['npc-tai', 'npcSIZ'], function(v) {
var o = v['npc-tai'];
var n = v['npcSIZ'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'npcSIZ': o}); }
});
getAttrs(['npc-mv', 'npcMove'], function(v) {
var o = v['npc-mv'];
var n = v['npcMove'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'npcMove': o}); }
});
getAttrs(['npc-description', 'npcDescription'], function(v) {
var o = v['npc-description'];
var n = v['npcDescription'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'npcDescription': o}); }
});
getAttrs(['npc-tenebre', 'npcDarkness'], function(v) {
var o = v['npc-tenebre'];
var n = v['npcDarkness'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'npcDarkness': o}); }
});
getAttrs(['npc-perfidie', 'npcPerfidy'], function(v) {
var o = v['npc-perfidie'];
var n = v['npcPerfidy'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'npcPerfidy': o}); }
});
getAttrs(['npc-corps', 'npcBody'], function(v) {
var o = v['npc-corps'];
var n = v['npcBody'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'npcBody': o}); }
});
getAttrs(['npc-corps-noir', 'npcDarkBody'], function(v) {
var o = v['npc-corps-noir'];
var n = v['npcDarkBody'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'npcDarkBody': o}); }
});
getAttrs(['npc-esprit', 'npcSpirit'], function(v) {
var o = v['npc-esprit'];
var n = v['npcSpirit'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'npcSpirit': o}); }
});
getAttrs(['npc-esprit-noir', 'npcDarkSpirit'], function(v) {
var o = v['npc-esprit-noir'];
var n = v['npcDarkSpirit'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'npcDarkSpirit': o}); }
});
getAttrs(['npc-ame', 'npcSoul'], function(v) {
var o = v['npc-ame'];
var n = v['npcSoul'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'npcSoul': o}); }
});
getAttrs(['npc-ame-noire', 'npcDarkSoul'], function(v) {
var o = v['npc-ame-noire'];
var n = v['npcDarkSoul'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'npcDarkSoul': o}); }
});
getAttrs(['npc-agilite', 'npcAgility'], function(v) {
var o = v['npc-agilite'];
var n = v['npcAgility'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'npcAgility': o}); }
});
getAttrs(['npc-force', 'npcStrength'], function(v) {
var o = v['npc-force'];
var n = v['npcStrength'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'npcStrength': o}); }
});
getAttrs(['npc-intelligence', 'npcIntelligence'], function(v) {
var o = v['npc-intelligence'];
var n = v['npcIntelligence'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'npcIntelligence': o}); }
});
getAttrs(['npc-volonte', 'npcWill'], function(v) {
var o = v['npc-volonte'];
var n = v['npcWill'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'npcWill': o}); }
});
getAttrs(['npc-charisme', 'npcCharisma'], function(v) {
var o = v['npc-charisme'];
var n = v['npcCharisma'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'npcCharisma': o}); }
});
getAttrs(['npc-perception', 'npcPerception'], function(v) {
var o = v['npc-perception'];
var n = v['npcPerception'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'npcPerception': o}); }
});
getAttrs(['npc-resistance', 'npcStamina'], function(v) {
var o = v['npc-resistance'];
var n = v['npcStamina'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'npcStamina': o}); }
});
getAttrs(['npc-creativite', 'npcCreativity'], function(v) {
var o = v['npc-creativite'];
var n = v['npcCreativity'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'npcCreativity': o}); }
});
getAttrs(['npc-pdv', 'npcHP'], function(v) {
var o = v['npc-pdv'];
var n = v['npcHP'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'npcHP': o}); }
});
getAttrs(['npc-pdv_max', 'npcHP_max'], function(v) {
var o = v['npc-pdv_max'];
var n = v['npcHP_max'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'npcHP_max': o}); }
});
getAttrs(['npc-heroisme', 'npcFP'], function(v) {
var o = v['npc-heroisme'];
var n = v['npcFP'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'npcFP': o}); }
});
getAttrs(['npc-heroisme_max', 'npcFP_max'], function(v) {
var o = v['npc-heroisme_max'];
var n = v['npcFP_max'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'npcFP_max': o}); }
});
getAttrs(['npc-bd', 'npcDamageBonus'], function(v) {
var o = v['npc-bd'];
var n = v['npcDamageBonus'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'npcDamageBonus': o}); }
});
getAttrs(['npc-emprise', 'npcAscendancy'], function(v) {
var o = v['npc-emprise'];
var n = v['npcAscendancy'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'npcAscendancy': o}); }
});
getAttrs(['npc-charge-max', 'npcMaxLoad'], function(v) {
var o = v['npc-charge-max'];
var n = v['npcMaxLoad'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'npcMaxLoad': o}); }
});
getAttrs(['npc-art', 'npcArt'], function(v) {
var o = v['npc-art'];
var n = v['npcArt'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'npcArt': o}); }
});
getAttrs(['npcSkillsConverted'], function(v) {
if (v['npcSkillsConverted'] == undefined) {
getSectionIDs(['repeating_npc-competences'], function(c) {
if (c.length > 0) {
_.each(c, function(i) {
getAttrs([`repeating_npc-competences_${i}_nom`, `repeating_npc-competences_${i}_domaine`, `repeating_npc-competences_${i}_specialite`, `repeating_npc-competences_${i}_competence`], function(v) {
var n = v[`repeating_npc-competences_${i}_nom`];
var b = v[`repeating_npc-competences_${i}_domaine`];
var sp = v[`repeating_npc-competences_${i}_specialite`];
var s = v[`repeating_npc-competences_${i}_competence`];
if (b == undefined) { b = n; }
else if (sp == undefined) { sp = n; }
else { b = 'Nom : '+n+' ; domaine : '+b; }
var id = generateRowID();
var r = {};
r[`repeating_npc-skills_${id}_npcSkillName`] = 'Acrobatie (Maraude)';
r[`repeating_npc-skills_${id}_npcSkillBranch`] = b;
if (sp != undefined) { r[`repeating_npc-skills_${id}_npcSkillSpecialty`] = sp; }
r[`repeating_npc-skills_${id}_npcSkillScore`] = s;
setAttrs(r);
setAttrs({'npcSkillsConverted': 1});
});
});
}
});
} else { setAttrs({'npcSkillsConverted': 1}); }
});
getAttrs(['npc-total-esquive', 'npcDodgeTotal'], function(v) {
var o = v['npc-total-esquive'];
var n = v['npcDodgeTotal'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'npcDodgeTotal': o}); }
});
getAttrs(['npc-defense-naturelle', 'npcNaturalDefense'], function(v) {
var o = v['npc-defense-naturelle'];
var n = v['npcNaturalDefense'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'npcNaturalDefense': o}); }
});
getAttrs(['npc-esquive-distance', 'npcDistanceDodge'], function(v) {
var o = v['npc-esquive-distance'];
var n = v['npcDistanceDodge'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'npcDistanceDodge': o}); }
});
getAttrs(['npc-malus-armure', 'npcArmorAgilityPenalty'], function(v) {
var o = v['npc-malus-armure'];
var n = v['npcArmorAgilityPenalty'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'npcArmorAgilityPenalty': o}); }
});
getAttrs(['npc-armure', 'npcArmor'], function(v) {
var o = v['npc-armure'];
var n = v['npcArmor'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'npcArmor': o}); }
});
getAttrs(['npcWeaponsConverted'], function(v) {
if (v['npcWeaponsConverted'] == undefined) {
getSectionIDs(['repeating_npc-weapons'], function(c) {
if (c.length > 0) {
_.each(c, function(i) {
getAttrs([`repeating_npc-weapons_${i}_arme-nom`, `repeating_npc-weapons_${i}_arme-tai`, `repeating_npc-weapons_${i}_arme-ini`, `repeating_npc-weapons_${i}_arme-att`, `repeating_npc-weapons_${i}_arme-def`, `repeating_npc-weapons_${i}_arme-dom`, `repeating_npc-weapons_${i}_arme-type-degats`, `repeating_npc-weapons_${i}_arme-style`, `repeating_npc-weapons_${i}_npc-armes-competence`], function (v) {
var n = v[`repeating_npc-weapons_${i}_arme-nom`];
var s = v[`repeating_npc-weapons_${i}_arme-tai`];
var ini = v[`repeating_npc-weapons_${i}_arme-ini`];
var a = v[`repeating_npc-weapons_${i}_arme-att`];
var def = v[`repeating_npc-weapons_${i}_arme-def`];
var d = v[`repeating_npc-weapons_${i}_arme-dom`];
var t = v[`repeating_npc-weapons_${i}_arme-type-degats`];
var ws = v[`repeating_npc-weapons_${i}_arme-style`];
if (v[`repeating_npc-weapons_${i}_npc-armes-competence`] != undefined) { var skill = v[`repeating_npc-weapons_${i}_npc-armes-competence`].replace('npc-armes-competence', 'npcWeaponSkill'); }
else { var skill = '@{npcWeaponSkill-1}' };
var id = generateRowID();
var r = {};
r[`repeating_npc-weapons_${id}_npcWeaponName`] = n;
if (s != undefined) { r[`repeating_npc-weapons_${id}_npcWeaponSIZ`] = s; }
if (i != undefined) { r[`repeating_npc-weapons_${id}_npcWeaponInit`] = ini; }
if (a != undefined) { r[`repeating_npc-weapons_${id}_npcWeaponAttack`] = a; }
if (def != undefined) { r[`repeating_npc-weapons_${id}_npcWeaponDefense`] = def; }
if (d != undefined) { r[`repeating_npc-weapons_${id}_npcWeaponDamage`] = d; }
if (t != undefined) { r[`repeating_npc-weapons_${id}_npcWeaponType`] = t; }
if (ws == 'jet') { r[`repeating_npc-weapons_${id}_npcWeaponStyle`] = 'thrown'; }
else if (ws == 'trait') { r[`repeating_npc-weapons_${id}_npcWeaponStyle`] = 'missile'; }
else { r[`repeating_npc-weapons_${id}_npcWeaponStyle`] = 'melee'; }
if (skill != undefined) { r[`repeating_npc-weapons_${id}_npcWeaponSkill`] = skill; }
setAttrs(r);
setAttrs({'npcWeaponsConverted': 1});
});
});
}
});
} else { setAttrs({'npcWeaponsConverted': 1}); }
});
getAttrs(['npc-equipement', 'npcStuff'], function(v) {
var o = v['npc-equipement'];
var n = v['npcStuff'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'npcStuff': o}); }
});
getAttrs(['npc-potentiel-emprise', 'npcAscendancyAptitude'], function(v) {
var o = v['npc-potentiel-emprise'];
var n = v['npcAscendancyAptitude'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'npcAscendancyAptitude': o}); }
});
getAttrs(['npc-potentiel-impro-emprise', 'npcASCImproAptitude'], function(v) {
var o = v['npc-potentiel-impro-emprise'];
var n = v['npcASCImproAptitude'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'npcASCImproAptitude': o}); }
});
getAttrs(['npc-potentiel-art', 'npcArtAptitude'], function(v) {
var o = v['npc-potentiel-art'];
var n = v['npcArtAptitude'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'npcArtAptitude': o}); }
});
getAttrs(['npc-potentiel-impro-art', 'npcArtImproAptitude'], function(v) {
var o = v['npc-potentiel-impro-art'];
var n = v['npcArtImproAptitude'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'npcArtImproAptitude': o}); }
});
getAttrs(['npc-sorts', 'npcSpells'], function(v) {
var o = v['npc-sorts'];
var n = v['npcSpells'];
if ((o != undefined) && (n == undefined || n == '')) { setAttrs({'npcSpells': o}); }
});
});
</script>