ripcrypt/module/settings/metaSettings.mjs
2025-04-30 13:27:51 -06:00

61 lines
1.3 KiB
JavaScript

import { gameTerms } from "../gameTerms.mjs";
const { StringField } = foundry.data.fields;
const { FatePath } = gameTerms;
export function registerMetaSettings() {
game.settings.register(`ripcrypt`, `dc`, {
scope: `world`,
type: Number,
default: 5,
config: false,
requiresReload: false,
onChange: () => {
ui.delveDice.render({ parts: [`difficulty`] });
},
});
game.settings.register(`ripcrypt`, `sandsOfFate`, {
scope: `world`,
type: Number,
default: 8,
config: false,
requiresReload: false,
onChange: async () => {
ui.delveDice.animate({ parts: [`sandsOfFate`] });
},
});
game.settings.register(`ripcrypt`, `currentFate`, {
scope: `world`,
type: new StringField({
blank: false,
nullable: false,
initial: FatePath.NORTH,
}),
config: false,
requiresReload: false,
onChange: async () => {
ui.delveDice.animate({ parts: [`fateCompass`] });
},
});
game.settings.register(`ripcrypt`, `whoFirst`, {
scope: `world`,
type: String,
config: false,
requiresReload: false,
default: `friendly`,
onChange: async () => {
await game.combat.setupTurns();
await ui.combat.render({ parts: [ `tracker` ] });
},
});
game.settings.register(`ripcrypt`, `firstLoadFinished`, {
scope: `world`,
type: Boolean,
default: false,
requiresReload: false,
});
};