mirror of
https://github.com/Foundryborne/daggerheart.git
synced 2026-04-21 23:13:39 +02:00
55 lines
2 KiB
JavaScript
55 lines
2 KiB
JavaScript
import DhAppearance from './Appearance.mjs';
|
|
|
|
/**
|
|
* A setting to handle cases where we want to allow the GM to set a global default for client settings.
|
|
*/
|
|
export default class DhGlobalOverrides extends foundry.abstract.DataModel {
|
|
static defineSchema() {
|
|
const fields = foundry.data.fields;
|
|
return {
|
|
diceSoNice: new fields.SchemaField({
|
|
sfx: new fields.SchemaField({
|
|
overrideEnabled: new fields.BooleanField(),
|
|
global: new fields.SchemaField({
|
|
critical: DhAppearance.sfxSchema()
|
|
}),
|
|
hope: new fields.SchemaField({
|
|
higher: DhAppearance.sfxSchema()
|
|
}),
|
|
fear: new fields.SchemaField({
|
|
higher: DhAppearance.sfxSchema()
|
|
})
|
|
})
|
|
})
|
|
};
|
|
}
|
|
|
|
async diceSoNiceSFXUpdate(appearanceSettings, enabled) {
|
|
if (!game.user.isGM) return;
|
|
|
|
const newEnabled = enabled !== undefined ? enabled : this.diceSoNice.sfx.overrideEnabled;
|
|
if (newEnabled) {
|
|
const newOverrides = foundry.utils.mergeObject(this.toObject(), {
|
|
diceSoNice: {
|
|
sfx: {
|
|
overrideEnabled: true,
|
|
global: appearanceSettings.diceSoNice.sfx,
|
|
hope: appearanceSettings.diceSoNice.hope.sfx,
|
|
fear: appearanceSettings.diceSoNice.fear.sfx
|
|
}
|
|
}
|
|
});
|
|
await game.settings.set(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.GlobalOverrides, newOverrides);
|
|
} else {
|
|
const newOverrides = {
|
|
...this.toObject(),
|
|
diceSoNice: {
|
|
sfx: {
|
|
overrideEnabled: false
|
|
}
|
|
}
|
|
};
|
|
await game.settings.set(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.GlobalOverrides, newOverrides);
|
|
}
|
|
}
|
|
}
|