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
+4 -4
View File
@@ -63,7 +63,7 @@ export default class EcrymeAnnencySheet extends EcrymeBaseActorSheet {
img: actor.img,
name: actor.name,
isEditable: this.isEditable,
config: game.system.ecryme.config,
config: game.ecryme.config,
hasCephaly: EcrymeUtility.hasCephaly(),
hasBoheme: EcrymeUtility.hasBoheme(),
characters: actor.buildAnnencyActorList(),
@@ -85,7 +85,7 @@ export default class EcrymeAnnencySheet extends EcrymeBaseActorSheet {
/** @override */
async _onDrop(event) {
const data = foundry.applications.ux.TextEditor.implementation.getDragEventData(event)
if (data.type === "Actor") {
if (data?.type === "Actor") {
const actor = await fromUuid(data.uuid)
if (actor) {
this.actor.addAnnencyActor(actor.id)
@@ -118,9 +118,9 @@ export default class EcrymeAnnencySheet extends EcrymeBaseActorSheet {
EcrymeUtility.confirmDelete(this, $(li)).catch(() => {})
}
static #onItemCreate(event, target) {
static async #onItemCreate(event, target) {
const dataType = target.dataset.type
this.document.createEmbeddedDocuments("Item", [{ name: "NewItem", type: dataType }], { renderSheet: true })
await this.document.createEmbeddedDocuments("Item", [{ name: "NewItem", type: dataType }], { renderSheet: true })
}
// #endregion