Get the delve tour incrementer changes working and affecting fate as well

This commit is contained in:
Oliver-Akins 2025-03-01 23:40:39 -07:00
parent 7639962130
commit 110823a26b
9 changed files with 174 additions and 14 deletions

View file

@ -1,3 +1,8 @@
import { gameTerms } from "../gameTerms.mjs";
const { StringField } = foundry.data.fields;
const { FatePath } = gameTerms;
export function registerMetaSettings() {
game.settings.register(`ripcrypt`, `dc`, {
scope: `world`,
@ -15,15 +20,23 @@ export function registerMetaSettings() {
initial: 8,
config: false,
requiresReload: false,
onChange: async () => {},
onChange: async () => {
ui.delveDice.animate({ parts: [`sandsOfFate`] });
},
});
game.settings.register(`ripcrypt`, `currentFate`, {
scope: `world`,
type: String,
type: new StringField({
blank: false,
nullable: false,
initial: FatePath.NORTH,
}),
config: false,
requiresReload: false,
onChange: async () => {},
onChange: async () => {
ui.delveDice.animate({ parts: [`fateCompass`] });
},
});
game.settings.register(`ripcrypt`, `whoFirst`, {

View file

@ -1,10 +1,51 @@
const { NumberField, StringField } = foundry.data.fields;
export function registerWorldSettings() {
game.settings.register(`ripcrypt`, `showDelveTour`, {
name: `Delve Tour Popup`,
scope: `world`,
type: Boolean,
config: true,
config: false,
default: true,
requiresReload: false,
});
game.settings.register(`ripcrypt`, `sandsOfFateInitial`, {
name: `RipCrypt.setting.sandsOfFateInitial.name`,
hint: `RipCrypt.setting.sandsOfFateInitial.hint`,
scope: `world`,
config: true,
requiresReload: false,
type: new NumberField({
required: true,
min: 1,
step: 1,
max: 10,
initial: 8,
}),
onChange: async (newInitialSands) => {
const currentSands = game.settings.get(`ripcrypt`, `sandsOfFate`);
if (newInitialSands <= currentSands) {
game.settings.set(`ripcrypt`, `sandsOfFate`, newInitialSands);
};
},
});
game.settings.register(`ripcrypt`, `onCrypticEvent`, {
name: `RipCrypt.setting.onCrypticEvent.name`,
hint: `RipCrypt.setting.onCrypticEvent.hint`,
scope: `world`,
config: true,
requiresReload: false,
type: new StringField({
required: true,
initial: `notif`,
choices: {
"notif": `RipCrypt.setting.onCrypticEvent.options.notif`,
"pause": `RipCrypt.setting.onCrypticEvent.options.pause`,
"both": `RipCrypt.setting.onCrypticEvent.options.both`,
"nothing": `RipCrypt.setting.onCrypticEvent.options.nothing`,
},
}),
});
};