mirror of
https://github.com/Nighthawk42/roll20-character-sheets.git
synced 2026-08-30 03:40:32 +00:00
222 lines
9.3 KiB
HTML
222 lines
9.3 KiB
HTML
|
||
<!-- capacités-->
|
||
<main>
|
||
<section>
|
||
<h1>Vade † Mecum</h1>
|
||
<div class="capacites">
|
||
<h3>Capacités</h3>
|
||
<fieldset class="repeating_capacites">
|
||
<details class="capacite">
|
||
<summary>
|
||
<input class="capacite_name" name="attr_name" placeholder="Capacité" type="text" value=""/>
|
||
</summary>
|
||
<textarea class="capacite_description" name="attr_description" placeholder="Description"></textarea>
|
||
</details>
|
||
</fieldset>
|
||
</div>
|
||
<div class="contacts">
|
||
<h3>Contacts</h3>
|
||
<textarea class="contacts" name="attr_contacts"></textarea>
|
||
</div>
|
||
<div class="materiel">
|
||
<h3>Matériel</h3>
|
||
<textarea class="materiel" name="attr_materiel"></textarea>
|
||
</div>
|
||
</section>
|
||
<!-- personnage-->
|
||
<section>
|
||
<h1>Vade † Mecum</h1>
|
||
<input name="attr_character_name" type="text" value=""/>
|
||
<div class="row" id="statsBlock">
|
||
<div class="col2">
|
||
<div class="statLine"><span>Niveau</span>
|
||
<div>
|
||
<input name="attr_niveau" type="number" value="0"/>
|
||
</div>
|
||
</div>
|
||
<div class="statLine"><span>Attaque</span>
|
||
<div>
|
||
<button name="roll_Attaque" type="roll" value="&{template:attack} {{jet=[[2d6 + @{attaque} + ?{Bonus/Malus ?|0}]]}} {{character=@{character_name}}}"></button>
|
||
<input name="attr_attaque" type="number" value="0"/>
|
||
</div>
|
||
</div>
|
||
<div class="statLine"><span>Blessures max</span>
|
||
<div>
|
||
<input name="attr_blessures_max" type="number" value="0"/>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="col2">
|
||
<div class="statLine"><span>Anima</span>
|
||
<div>
|
||
<button name="roll_Anima" type="roll" value="&{template:anima} {{jet=[[2d6 + @{anima} + ?{Bonus/Malus ?|0}]]}} {{character=@{character_name}}}"></button>
|
||
<input name="attr_anima" type="number" value="0"/>
|
||
</div>
|
||
</div>
|
||
<div class="statLine"><span>Défense</span>
|
||
<div>
|
||
<button name="roll_Défense" type="roll" value="&{template:defense} {{jet=[[2d6 + @{defense} + ?{Bonus/Malus ?|0}]]}} {{character=@{character_name}}}"></button>
|
||
<input name="attr_defense" type="number" value="0"/>
|
||
</div>
|
||
</div>
|
||
<div class="statLine"><span>Aegis</span>
|
||
<div>
|
||
<input name="attr_aegis" type="number" value="0"/>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="row" id="hurtsBlock">
|
||
<div class="col2 frame">
|
||
<div class="frameTitle"><span>Blessures</span>
|
||
<input name="attr_blessures" type="number" value="0"/>
|
||
</div>
|
||
<textarea name="attr_blessuresDescription"></textarea>
|
||
</div>
|
||
<div class="col2 frame">
|
||
<div class="frameTitle"><span>Souffrances</span>
|
||
<input name="attr_souffrances" type="number" value="0"/>
|
||
</div>
|
||
<textarea name="attr_souffrancesDescription"></textarea>
|
||
</div>
|
||
</div>
|
||
<div class="row" id="equipmentBlock">
|
||
<div class="col2 frame rptFrame" id="weapons">
|
||
<div class="frameTitle"><span>Armes</span><span title="Portée">Pt</span><span title="Bonus attaque">Atq</span><span></span></div>
|
||
<fieldset class="repeating_weapons">
|
||
<input name="attr_wpn_name" placeholder="Arme" type="text" value=""/>
|
||
<input name="attr_wpn_range" placeholder="Portée" type="text" value=""/>
|
||
<input name="attr_wpn_atk" placeholder="Attaque" type="text" value=""/>
|
||
<button name="roll_Arme" type="roll" value="&{template:attack} {{jet=[[2d6 + @{attaque} + @{wpn_atk} + ?{Bonus/Malus ?|0} + @{wpn_atk}]]}} {{character=@{character_name}}} {{equipment=@{wpn_name}}}"></button>
|
||
</fieldset>
|
||
</div>
|
||
<div class="col2 frame rptFrame" id="armours">
|
||
<div class="frameTitle"><span>Protections</span><span title="Bonus défense">Def</span><span title="Bonus Aegis">Aeg</span><span></span></div>
|
||
<fieldset class="repeating_armours">
|
||
<input name="attr_arm_name" placeholder="Protection" type="text" value=""/>
|
||
<input name="attr_arm_def" placeholder="+Défense" type="number" value=""/>
|
||
<input name="attr_arm_aeg" placeholder="+Aegis" type="number" value=""/>
|
||
<button name="roll_Protection" type="roll" value="&{template:defense} {{jet=[[2d6 + @{defense} + @{arm_def} + ?{Bonus/Malus ?|0} + @{arm_def}]]}} {{character=@{character_name}}} {{equipment=@{arm_name}}}"></button>
|
||
</fieldset>
|
||
</div>
|
||
</div>
|
||
<div class="row" id="bottomBlock">
|
||
<div class="col2" id="xp">
|
||
<div class="statLine"><span>Expérience</span>
|
||
<div>
|
||
<input name="attr_xp" type="number" value="0"/>
|
||
</div>
|
||
</div>
|
||
<div class="statLine"><span>Jet libre</span>
|
||
<div>
|
||
<button name="roll_Libre" type="roll" value="&{template:base} {{jet=[[2d6 + ?{Bonus/Malus ?|0}]]}} {{character=@{character_name}}}"></button>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="col2 frame rptFrame" id="heal">
|
||
<div class="frameTitle"><span>Soins</span><span title="Nombre">Nb</span><span title="Blessures
|
||
Écrire 'm-N' ou 'max - N' pour les Réveil">Bls</span><span title="Souffrance">Sfr</span><span></span></div>
|
||
<fieldset class="repeating_heal">
|
||
<input name="attr_heal-name" placeholder="Objet" type="text" value=""/>
|
||
<input name="attr_healnb" type="number" value="0"/>
|
||
<input name="attr_heal-blessure" type="text" value=""/>
|
||
<input name="attr_heal-souffrance" type="number" value=""/>
|
||
<button name="act_heal" type="action" value=""></button>
|
||
</fieldset>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
</main>
|
||
<footer><span>v 1.0 par Calmacil</span></footer>
|
||
<rolltemplate class="sheet-rolltemplate-base">
|
||
<div class="sheet-template-container">
|
||
<div class="sheet-template-header">{{#character}}<span class="sheet-template-character">{{character}}</span>{{/character}}
|
||
Fait appel au destin
|
||
</div>
|
||
<div class="sheet-template-body">{{#jet}}<span>{{jet}}</span>{{/jet}}</div>
|
||
</div>
|
||
</rolltemplate>
|
||
<rolltemplate class="sheet-rolltemplate-attack">
|
||
<div class="sheet-template-container">
|
||
<div class="sheet-template-header">{{#character}}<span class="sheet-template-character">{{character}}</span>{{/character}}
|
||
Attaque sauvagement
|
||
{{#equipment}}<span class="sheet-template-equipment">( {{equipment}} )</span>{{/equipment}}
|
||
</div>
|
||
<div class="sheet-template-body">{{#jet}}<span>{{jet}}</span>{{/jet}}</div>
|
||
</div>
|
||
</rolltemplate>
|
||
<rolltemplate class="sheet-rolltemplate-defense">
|
||
<div class="sheet-template-container">
|
||
<div class="sheet-template-header">{{#character}}<span class="sheet-template-character">{{character}}</span>{{/character}}
|
||
Se défend
|
||
{{#equipment}}<span class="sheet-template-equipment">( {{equipment}} )</span>{{/equipment}}
|
||
</div>
|
||
<div class="sheet-template-body">{{#jet}}<span>{{jet}}</span>{{/jet}}</div>
|
||
</div>
|
||
</rolltemplate>
|
||
<rolltemplate class="sheet-rolltemplate-anima">
|
||
<div class="sheet-template-container">
|
||
<div class="sheet-template-header">{{#character}}<span class="sheet-template-character">{{character}}</span>{{/character}}
|
||
Fait appel à son âme
|
||
</div>
|
||
<div class="sheet-template-body">{{#jet}}<span>{{jet}}</span>{{/jet}}</div>
|
||
</div>
|
||
</rolltemplate>
|
||
<script type="text/worker">/**
|
||
* Manage the Heal button action, including revive
|
||
*/
|
||
on('clicked:repeating_heal', function(ev)
|
||
{
|
||
let id = ev.sourceAttribute.split('_').pop();
|
||
let nb_id = 'repeating_heal_' + id + '_healnb';
|
||
let wound_id = 'repeating_heal_' + id + '_heal-blessure';
|
||
let pain_id = 'repeating_heal_' + id + '_heal-souffrance';
|
||
let name_id = 'repeating_heal_' + id + '_heal-name';
|
||
|
||
getAttrs([nb_id, wound_id, pain_id, name_id, 'blessures', 'blessures_max', 'souffrances'], function (values) {
|
||
let wounds = parseInt(values["blessures"])||0;
|
||
let max_wounds = parseInt(values["blessures_max"])||0;
|
||
let cur_pain = parseInt(values["souffrances"])||0;
|
||
let nb = parseInt(values[nb_id])||0;
|
||
let pain = parseInt(values[pain_id])||0;
|
||
console.log("Module de soins");
|
||
console.warn("Nb: " + values[nb_id] + " - " + nb);
|
||
if (nb) {
|
||
console.log("Je peux soigner !");
|
||
let revive = values[name_id].match(/[eé]veil/);
|
||
|
||
if (revive && wounds == max_wounds) {
|
||
console.log("Résurection");
|
||
if (values[wound_id].indexOf('-')) {
|
||
let amount = parseInt(values[wound_id].split('-').pop().trim())||0;
|
||
wounds = max(max_wounds - amount, 0);
|
||
nb--;
|
||
} else {
|
||
console.warn("Je sais pas combien je lui mets !")
|
||
}
|
||
} else if (wounds && !revive){
|
||
console.log("Soins");
|
||
let amount = parseInt(values[wound_id])||0;
|
||
wounds = Math.max(wounds - amount, 0);
|
||
cur_pain += pain;
|
||
nb--;
|
||
} else {
|
||
console.log('pas de soins');
|
||
}
|
||
|
||
setAttrs({
|
||
blessures: wounds,
|
||
repeating_heal_healnb: nb,
|
||
souffrances: cur_pain
|
||
});
|
||
}
|
||
})
|
||
|
||
})
|
||
|
||
</script>
|
||
|
||
|
||
|
||
|