feat: separate skill value/max (transcendence pool vs level)
Release Creation / build (release) Successful in 58s

- skill.value = spendable transcendence pool (editable select)
- skill.max = max level (locked by default, unlock btn)
- computeRollFormula/computeResults/confront use skill.max
- clamp transcendence spend to skill.value
- resetTranscendence button in Bio&Notes
- v14 compat: duplicate→deepClone, mergeObject→spread, socket fixes
- Dialog v1 removed, DragDrop dedup, await fixes
This commit is contained in:
2026-07-24 09:00:26 +02:00
parent 8c79e6f0ba
commit 31e2561797
63 changed files with 385 additions and 340 deletions
+39 -5
View File
@@ -116,11 +116,18 @@
<i class="fa-solid fa-dice-d6"></i>
{{localize skill.name}}
</a></span>
<select class="item-field-label-short" type="text"
name="system.skills.{{categkey}}.skilllist.{{skillkey}}.value" value="{{skill.value}}"
data-dtype="Number">
<select class="item-field-skill-level"
name="system.skills.{{categkey}}.skilllist.{{skillkey}}.value"
title="{{localize "ECRY.ui.transcendenceCurrent"}}">
{{selectOptions @root.config.skillLevel selected=skill.value}}
</select>
<span class="skill-separator">/</span>
<select class="item-field-skill-level"
name="system.skills.{{categkey}}.skilllist.{{skillkey}}.max"
title="{{localize "ECRY.ui.transcendenceMax"}}"
{{#unless editScore}}disabled{{/unless}}>
{{selectOptions @root.config.skillLevel selected=skill.max}}
</select>
</li>
<li class="item flexrow list-item">
<ul class="ul-level1">
@@ -147,6 +154,13 @@
{{/each}}
</div>
<div class="skill-toolbar">
<a class="lock-unlock-sheet" title="{{localize "ECRY.ui.toggleEditMax"}}">
<i class="fas {{#if editScore}}fa-lock-open{{else}}fa-lock{{/if}}"></i>
{{localize "ECRY.ui.toggleEditMax"}}
</a>
</div>
</div>
{{#if hasCephaly}}
@@ -166,10 +180,18 @@
<i class="fa-solid fa-dice-d6"></i>
{{localize skill.name}}
</a></span>
<select class="item-field-label-short" type="text" name="system.cephaly.skilllist.{{skillkey}}.value"
value="{{skill.value}}" data-dtype="Number">
<select class="item-field-skill-level"
name="system.cephaly.skilllist.{{skillkey}}.value"
title="{{localize "ECRY.ui.transcendenceCurrent"}}">
{{selectOptions @root.config.skillLevel selected=skill.value}}
</select>
<span class="skill-separator">/</span>
<select class="item-field-skill-level"
name="system.cephaly.skilllist.{{skillkey}}.max"
title="{{localize "ECRY.ui.transcendenceMax"}}"
{{#unless editScore}}disabled{{/unless}}>
{{selectOptions @root.config.skillLevel selected=skill.max}}
</select>
</li>
{{/each}}
</ul>
@@ -193,6 +215,13 @@
</div>
<div class="skill-toolbar">
<a class="lock-unlock-sheet" title="{{localize "ECRY.ui.toggleEditMax"}}">
<i class="fas {{#if editScore}}fa-lock-open{{else}}fa-lock{{/if}}"></i>
{{localize "ECRY.ui.toggleEditMax"}}
</a>
</div>
</div>
{{/if}}
@@ -399,6 +428,11 @@
{{editor notes target="system.biodata.notes" button=true owner=owner editable=editable}}
</div>
<hr>
<div class="form-group">
<button type="button" class="reset-transcendence" title="{{localize "ECRY.ui.resetTranscendence"}}">
<i class="fas fa-undo-alt"></i> {{localize "ECRY.ui.resetTranscendence"}}
</button>
</div>
</div>