feat: separate skill value/max (transcendence pool vs level)
Release Creation / build (release) Successful in 58s
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:
@@ -53,5 +53,10 @@
|
||||
value=system.biodata.gmnotes name="system.biodata.gmnotes" toggled=true}}
|
||||
</div>
|
||||
<hr>
|
||||
<div class="form-group">
|
||||
<button type="button" data-action="resetTranscendence" title="{{localize "ECRY.ui.resetTranscendence"}}">
|
||||
<i class="fas fa-undo-alt"></i> {{localize "ECRY.ui.resetTranscendence"}}
|
||||
</button>
|
||||
</div>
|
||||
|
||||
</section>
|
||||
|
||||
@@ -13,10 +13,18 @@
|
||||
{{localize skill.name}}
|
||||
</a>
|
||||
</span>
|
||||
<select class="item-field-label-short"
|
||||
name="system.cephaly.skilllist.{{skillkey}}.value">
|
||||
<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 @root.editScore}}disabled{{/unless}}>
|
||||
{{selectOptions @root.config.skillLevel selected=skill.max}}
|
||||
</select>
|
||||
</li>
|
||||
{{/each}}
|
||||
</ul>
|
||||
@@ -39,4 +47,11 @@
|
||||
|
||||
</div>
|
||||
|
||||
<div class="skill-toolbar">
|
||||
<a data-action="lockUnlock" title="{{localize "ECRY.ui.toggleEditMax"}}">
|
||||
<i class="fas {{#if @root.editScore}}fa-lock-open{{else}}fa-lock{{/if}}"></i>
|
||||
{{localize "ECRY.ui.toggleEditMax"}}
|
||||
</a>
|
||||
</div>
|
||||
|
||||
</section>
|
||||
|
||||
@@ -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>
|
||||
|
||||
|
||||
@@ -38,10 +38,18 @@
|
||||
{{localize skill.name}}
|
||||
</a>
|
||||
</span>
|
||||
<select class="item-field-label-short"
|
||||
name="system.skills.{{categkey}}.skilllist.{{skillkey}}.value">
|
||||
<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 @root.editScore}}disabled{{/unless}}>
|
||||
{{selectOptions @root.config.skillLevel selected=skill.max}}
|
||||
</select>
|
||||
</li>
|
||||
<li class="item flexrow list-item">
|
||||
<ul class="ul-level1">
|
||||
@@ -67,4 +75,11 @@
|
||||
|
||||
</div>
|
||||
|
||||
<div class="skill-toolbar">
|
||||
<a data-action="lockUnlock" title="{{localize "ECRY.ui.toggleEditMax"}}">
|
||||
<i class="fas {{#if @root.editScore}}fa-lock-open{{else}}fa-lock{{/if}}"></i>
|
||||
{{localize "ECRY.ui.toggleEditMax"}}
|
||||
</a>
|
||||
</div>
|
||||
|
||||
</section>
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
<li>Confrontation : <strong>{{alias}}</strong></li>
|
||||
{{/if}}
|
||||
|
||||
<li>{{localize skill.name}}: <strong>{{skill.value}}</strong></li>
|
||||
<li>{{localize skill.name}}: <strong>{{skill.max}} ({{skill.value}})</strong></li>
|
||||
{{#if spec}}
|
||||
<li>{{localize "ECRY.chat.specialization"}} {{spec.name}} (+{{spec.system.bonus}})</li>
|
||||
{{/if}}
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
|
||||
<ul>
|
||||
<li><strong>Confrontation</strong> : {{rollData1.alias}} vs {{rollData2.alias}}</li>
|
||||
<li>{{localize rollData1.skill.name}} ({{rollData1.skill.value}}) vs {{localize rollData2.skill.name}} ({{rollData2.skill.value}})</li>
|
||||
<li>{{localize rollData1.skill.name}} ({{rollData1.skill.max}}/{{rollData1.skill.value}}) vs {{localize rollData2.skill.name}} ({{rollData2.skill.max}}/{{rollData2.skill.value}})</li>
|
||||
<li>{{localize "ECRY.ui.execution"}} : {{rollData1.executionTotal}} vs {{rollData2.preservationTotal}} → <strong>{{marginExecution}}</strong></li>
|
||||
<li>{{localize "ECRY.ui.preservation"}} : {{rollData1.preservationTotal}} vs {{rollData2.executionTotal}} → <strong>{{marginPreservation}}</strong></li>
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
|
||||
<ul>
|
||||
{{#if skill}}
|
||||
<li>{{localize skill.name}}: <strong>{{skill.value}}</strong></li>
|
||||
<li>{{localize skill.name}}: <strong>{{skill.max}} ({{skill.value}})</strong></li>
|
||||
{{#if spec}}
|
||||
<li>{{localize "ECRY.chat.specialization"}} {{spec.name}} (+{{spec.system.bonus}})</li>
|
||||
{{/if}}
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
{{#if img}}
|
||||
<img class="actor-icon" src="{{img}}" title="{{name}}" />
|
||||
{{/if}}
|
||||
<h1 class="dialog-roll-title roll-dialog-header">{{title}} ({{skill.value}})</h1>
|
||||
<h1 class="dialog-roll-title roll-dialog-header">{{title}} ({{skill.max}})</h1>
|
||||
</header>
|
||||
|
||||
<div class="flexcol">
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{{#if skill}}
|
||||
<div class="flexrow">
|
||||
<span class="roll-dialog-label">{{localize skill.name}} : </span>
|
||||
<span class="roll-dialog-label">{{skill.value}}</span>
|
||||
<span class="roll-dialog-label">{{skill.max}} ({{skill.value}})</span>
|
||||
</div>
|
||||
|
||||
{{#if impactMalus}}
|
||||
|
||||
Reference in New Issue
Block a user