diff --git a/system/scripts/actors/base-sheet.js b/system/scripts/actors/base-sheet.js
index f31cabe..bb604c3 100644
--- a/system/scripts/actors/base-sheet.js
+++ b/system/scripts/actors/base-sheet.js
@@ -118,6 +118,13 @@ export class BaseSheetL5r5e extends ActorSheet {
* @override
*/
async _updateObject(event, formData) {
+ // Remove autocomplete list name/index if exist
+ if (formData["autoCompleteListName"] || formData["autoCompleteListSelectedIndex"]) {
+ delete formData["autoCompleteListName"];
+ delete formData["autoCompleteListSelectedIndex"];
+ }
+
+ // Symbols
["data.notes", "data.description"].forEach((name) => {
if (!formData[name]) {
return;
diff --git a/system/scripts/actors/npc-sheet.js b/system/scripts/actors/npc-sheet.js
index cf35343..1569063 100644
--- a/system/scripts/actors/npc-sheet.js
+++ b/system/scripts/actors/npc-sheet.js
@@ -70,7 +70,7 @@ export class NpcSheetL5r5e extends BaseCharacterSheetL5r5e {
html,
"data.attitude",
CONFIG.l5r5e.demeanors.map((e) => {
- let modifiers = [];
+ const modifiers = [];
Object.entries(e.mod).forEach(([k, v]) => {
modifiers.push(`${game.i18n.localize(`l5r5e.rings.${k}`)} ${v}`);
});
@@ -78,4 +78,27 @@ export class NpcSheetL5r5e extends BaseCharacterSheetL5r5e {
})
);
}
+
+ /**
+ * Update the actor.
+ * @param event
+ * @param formData
+ */
+ _updateObject(event, formData) {
+ // Redo the demeanor to set the rings data
+ if (formData["autoCompleteListName"] === "data.attitude" && formData["autoCompleteListSelectedIndex"] >= 0) {
+ const demeanor = CONFIG.l5r5e.demeanors[formData["autoCompleteListSelectedIndex"]] || null;
+ if (demeanor) {
+ formData["data.attitude"] = game.i18n.localize(`l5r5e.demeanor.${demeanor.id}`);
+ CONFIG.l5r5e.stances.forEach((ring) => {
+ formData[`data.rings_affinities.${ring}`] = 0;
+ });
+ Object.entries(demeanor.mod).forEach(([k, v]) => {
+ formData[`data.rings_affinities.${k}`] = v;
+ });
+ }
+ }
+
+ return super._updateObject(event, formData);
+ }
}
diff --git a/system/scripts/helpers.js b/system/scripts/helpers.js
index e5f4990..759f188 100644
--- a/system/scripts/helpers.js
+++ b/system/scripts/helpers.js
@@ -780,6 +780,12 @@ export class HelpersL5r5e {
inp.addEventListener("change", (e) => {
if (e.doSubmit) {
closeAllLists();
+ if (e.autoCompleteSelectedIndex) {
+ $(inp).prepend(
+ `` +
+ ``
+ );
+ }
$(inp).parent().submit();
return true;
}
@@ -836,6 +842,7 @@ export class HelpersL5r5e {
const changeEvt = new Event("change");
changeEvt.doSubmit = true;
+ changeEvt.autoCompleteSelectedIndex = selectedIndex;
inp.dispatchEvent(changeEvt);
});
listDiv.appendChild(choiceDiv);