This commit is contained in:
TheGiddyLimit
2024-01-01 19:34:49 +00:00
parent 332769043f
commit 8117ebddc5
1748 changed files with 2544409 additions and 1 deletions

View File

@@ -0,0 +1,37 @@
import {EncounterBuilderComponent} from "../encounterbuilder/encounterbuilder-component.js";
export class EncounterBuilderComponentBestiary extends EncounterBuilderComponent {
getSublistPluginState () {
return {
// region Special handling for `creatureMetas`
items: this._state.creatureMetas
.map(creatureMeta => ({
h: creatureMeta.getHash(),
c: creatureMeta.count,
customHashId: creatureMeta.customHashId || undefined,
l: creatureMeta.isLocked,
})),
sources: this._state.creatureMetas
.map(creatureMeta => creatureMeta.creature.source)
.unique(),
// endregion
...Object.fromEntries(
Object.entries(this._state)
.filter(([k]) => k !== "creatureMetas")
.map(([k, v]) => [k, MiscUtil.copyFast(v)]),
),
};
}
/** Get a generic representation of the encounter, which can be used elsewhere. */
static getStateFromExportedSublist ({exportedSublist}) {
exportedSublist = MiscUtil.copyFast(exportedSublist);
const out = this._getDefaultState();
Object.keys(out)
.filter(k => exportedSublist[k] != null)
.forEach(k => out[k] = exportedSublist[k]);
return out;
}
}