feat: gestion de l'expérience (XP)
- Schéma xp dans CelestopolCharacter : actuel (éditable), log[] ({montant, raison, date}), depense (calculé dans prepareDerivedData)
- Bouton 'Dépenser XP' → DialogV2 (montant + raison) : décrémente actuel, logge l'entrée
- Suppression d'entrée de log avec remboursement des points (mode édition)
- Section XP en haut de l'onglet Biographie : compteurs, tableau du log, référentiel des coûts
- i18n : section CELESTOPOL.XP.* complète
- CSS : .xp-section avec compteurs, tableau de log et accordéon de référence
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
@@ -18,18 +18,13 @@
|
||||
<span class="skill-name">{{localize skill.label}}</span>
|
||||
<div class="skill-checkboxes-container">
|
||||
<div class="skill-checkboxes">
|
||||
{{#each (array 1 2 3 4 5 6 7 8) as |level|}}
|
||||
<label class="skill-checkbox-wrapper">
|
||||
<input type="checkbox" name="system.stats.{{statId}}.{{skillId}}.level{{level}}"
|
||||
{{#if (lookup (lookup (lookup @root.system.stats statId) skillId) (concat 'level' level))}}checked{{/if}}
|
||||
class="skill-level-checkbox">
|
||||
</label>
|
||||
{{#each (range 8) as |lvl|}}
|
||||
<span class="skill-level-dot {{#if (lte lvl (lookup @root.system.stats statId skillId 'value'))}}filled{{/if}}"
|
||||
data-action="skillLevel" data-stat-id="{{statId}}" data-skill-id="{{skillId}}" data-index="{{lvl}}"></span>
|
||||
{{/each}}
|
||||
</div>
|
||||
</div>
|
||||
<input type="number" name="system.stats.{{statId}}.{{skillId}}.value"
|
||||
value="{{lookup (lookup @root.system.stats statId) skillId 'value'}}"
|
||||
min="0" max="8" class="skill-value-input">
|
||||
<span class="skill-value">{{lookup @root.system.stats statId skillId 'value'}}</span>
|
||||
</div>
|
||||
{{else}}
|
||||
<div class="skill-row rollable" data-stat-id="{{statId}}" data-skill-id="{{skillId}}"
|
||||
@@ -37,16 +32,12 @@
|
||||
<span class="skill-name">{{localize skill.label}}</span>
|
||||
<div class="skill-checkboxes-container">
|
||||
<div class="skill-checkboxes">
|
||||
{{#each (array 1 2 3 4 5 6 7 8) as |level|}}
|
||||
<label class="skill-checkbox-wrapper">
|
||||
<input type="checkbox"
|
||||
{{#if (lookup (lookup (lookup @root.system.stats statId) skillId) (concat 'level' level))}}checked{{/if}}
|
||||
disabled class="skill-level-checkbox">
|
||||
</label>
|
||||
{{#each (range 8) as |lvl|}}
|
||||
<span class="skill-level-dot {{#if (lte lvl (lookup @root.system.stats statId skillId 'value'))}}filled{{/if}}"></span>
|
||||
{{/each}}
|
||||
</div>
|
||||
</div>
|
||||
<span class="skill-value">{{lookup (lookup @root.system.stats statId) skillId 'value'}}</span>
|
||||
<span class="skill-value">{{lookup @root.system.stats statId skillId 'value'}}</span>
|
||||
</div>
|
||||
{{/if}}
|
||||
{{/each}}
|
||||
|
||||
Reference in New Issue
Block a user