mirror of
https://github.com/Foundryborne/daggerheart.git
synced 2026-04-21 15:03:37 +02:00
Fixed Countdown Actions not actually setting their DefaultOwnership. Fixed GMs not always getting Ownership of a countdown
This commit is contained in:
parent
e7be2a7d2b
commit
97636fa134
3 changed files with 6 additions and 120 deletions
|
|
@ -137,6 +137,8 @@ export default class DhCountdowns extends HandlebarsApplicationMixin(Application
|
||||||
}
|
}
|
||||||
|
|
||||||
static #getPlayerOwnership(user, setting, countdown) {
|
static #getPlayerOwnership(user, setting, countdown) {
|
||||||
|
if (user.isGM) return CONST.DOCUMENT_OWNERSHIP_LEVELS.OWNER;
|
||||||
|
|
||||||
const playerOwnership = countdown.ownership[user.id];
|
const playerOwnership = countdown.ownership[user.id];
|
||||||
return playerOwnership === undefined || playerOwnership === CONST.DOCUMENT_OWNERSHIP_LEVELS.INHERIT
|
return playerOwnership === undefined || playerOwnership === CONST.DOCUMENT_OWNERSHIP_LEVELS.INHERIT
|
||||||
? setting.defaultOwnership
|
? setting.defaultOwnership
|
||||||
|
|
|
||||||
|
|
@ -5,10 +5,6 @@ export default class DhCountdowns extends foundry.abstract.DataModel {
|
||||||
const fields = foundry.data.fields;
|
const fields = foundry.data.fields;
|
||||||
|
|
||||||
return {
|
return {
|
||||||
/* Outdated and unused. Needed for migration. Remove in next minor version. (1.3) */
|
|
||||||
narrative: new fields.EmbeddedDataField(DhCountdownData),
|
|
||||||
encounter: new fields.EmbeddedDataField(DhCountdownData),
|
|
||||||
/**/
|
|
||||||
countdowns: new fields.TypedObjectField(new fields.EmbeddedDataField(DhCountdown)),
|
countdowns: new fields.TypedObjectField(new fields.EmbeddedDataField(DhCountdown)),
|
||||||
defaultOwnership: new fields.NumberField({
|
defaultOwnership: new fields.NumberField({
|
||||||
required: true,
|
required: true,
|
||||||
|
|
@ -19,122 +15,6 @@ export default class DhCountdowns extends foundry.abstract.DataModel {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Outdated and unused. Needed for migration. Remove in next minor version. (1.3) */
|
|
||||||
class DhCountdownData extends foundry.abstract.DataModel {
|
|
||||||
static defineSchema() {
|
|
||||||
const fields = foundry.data.fields;
|
|
||||||
return {
|
|
||||||
countdowns: new fields.TypedObjectField(new fields.EmbeddedDataField(DhOldCountdown)),
|
|
||||||
ownership: new fields.SchemaField({
|
|
||||||
default: new fields.NumberField({
|
|
||||||
required: true,
|
|
||||||
choices: Object.values(CONST.DOCUMENT_OWNERSHIP_LEVELS),
|
|
||||||
initial: CONST.DOCUMENT_OWNERSHIP_LEVELS.NONE
|
|
||||||
}),
|
|
||||||
players: new fields.TypedObjectField(
|
|
||||||
new fields.SchemaField({
|
|
||||||
type: new fields.NumberField({
|
|
||||||
required: true,
|
|
||||||
choices: Object.values(CONST.DOCUMENT_OWNERSHIP_LEVELS),
|
|
||||||
initial: CONST.DOCUMENT_OWNERSHIP_LEVELS.INHERIT
|
|
||||||
})
|
|
||||||
})
|
|
||||||
)
|
|
||||||
}),
|
|
||||||
window: new fields.SchemaField({})
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
get playerOwnership() {
|
|
||||||
return Array.from(game.users).reduce((acc, user) => {
|
|
||||||
acc[user.id] = {
|
|
||||||
value: user.isGM
|
|
||||||
? CONST.DOCUMENT_OWNERSHIP_LEVELS.OWNER
|
|
||||||
: this.ownership.players[user.id] && this.ownership.players[user.id].type !== -1
|
|
||||||
? this.ownership.players[user.id].type
|
|
||||||
: this.ownership.default,
|
|
||||||
isGM: user.isGM
|
|
||||||
};
|
|
||||||
|
|
||||||
return acc;
|
|
||||||
}, {});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Outdated and unused. Needed for migration. Remove in next minor version. (1.3) */
|
|
||||||
class DhOldCountdown extends foundry.abstract.DataModel {
|
|
||||||
static defineSchema() {
|
|
||||||
const fields = foundry.data.fields;
|
|
||||||
return {
|
|
||||||
name: new fields.StringField({
|
|
||||||
required: true,
|
|
||||||
label: 'DAGGERHEART.APPLICATIONS.Countdown.FIELDS.countdowns.element.name.label'
|
|
||||||
}),
|
|
||||||
img: new fields.FilePathField({
|
|
||||||
categories: ['IMAGE'],
|
|
||||||
base64: false,
|
|
||||||
initial: 'icons/magic/time/hourglass-yellow-green.webp'
|
|
||||||
}),
|
|
||||||
ownership: new fields.SchemaField({
|
|
||||||
default: new fields.NumberField({
|
|
||||||
required: true,
|
|
||||||
choices: Object.values(CONST.DOCUMENT_OWNERSHIP_LEVELS),
|
|
||||||
initial: CONST.DOCUMENT_OWNERSHIP_LEVELS.NONE
|
|
||||||
}),
|
|
||||||
players: new fields.TypedObjectField(
|
|
||||||
new fields.SchemaField({
|
|
||||||
type: new fields.NumberField({
|
|
||||||
required: true,
|
|
||||||
choices: Object.values(CONST.DOCUMENT_OWNERSHIP_LEVELS),
|
|
||||||
initial: CONST.DOCUMENT_OWNERSHIP_LEVELS.INHERIT
|
|
||||||
})
|
|
||||||
})
|
|
||||||
)
|
|
||||||
}),
|
|
||||||
progress: new fields.SchemaField({
|
|
||||||
current: new fields.NumberField({
|
|
||||||
required: true,
|
|
||||||
integer: true,
|
|
||||||
initial: 1,
|
|
||||||
label: 'DAGGERHEART.APPLICATIONS.Countdown.FIELDS.countdowns.element.progress.current.label'
|
|
||||||
}),
|
|
||||||
max: new fields.NumberField({
|
|
||||||
required: true,
|
|
||||||
integer: true,
|
|
||||||
initial: 1,
|
|
||||||
label: 'DAGGERHEART.APPLICATIONS.Countdown.FIELDS.countdowns.element.progress.max.label'
|
|
||||||
}),
|
|
||||||
type: new fields.SchemaField({
|
|
||||||
value: new fields.StringField({
|
|
||||||
required: true,
|
|
||||||
choices: CONFIG.DH.GENERAL.countdownProgressionTypes,
|
|
||||||
initial: CONFIG.DH.GENERAL.countdownProgressionTypes.custom.id,
|
|
||||||
label: 'DAGGERHEART.GENERAL.type'
|
|
||||||
}),
|
|
||||||
label: new fields.StringField({
|
|
||||||
label: 'DAGGERHEART.APPLICATIONS.Countdown.FIELDS.countdowns.element.progress.type.label.label'
|
|
||||||
})
|
|
||||||
})
|
|
||||||
})
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
get playerOwnership() {
|
|
||||||
return Array.from(game.users).reduce((acc, user) => {
|
|
||||||
acc[user.id] = {
|
|
||||||
value: user.isGM
|
|
||||||
? CONST.DOCUMENT_OWNERSHIP_LEVELS.OWNER
|
|
||||||
: this.ownership.players[user.id] && this.ownership.players[user.id].type !== -1
|
|
||||||
? this.ownership.players[user.id].type
|
|
||||||
: this.ownership.default,
|
|
||||||
isGM: user.isGM
|
|
||||||
};
|
|
||||||
|
|
||||||
return acc;
|
|
||||||
}, {});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
export class DhCountdown extends foundry.abstract.DataModel {
|
export class DhCountdown extends foundry.abstract.DataModel {
|
||||||
static defineSchema() {
|
static defineSchema() {
|
||||||
const fields = foundry.data.fields;
|
const fields = foundry.data.fields;
|
||||||
|
|
|
||||||
|
|
@ -57,6 +57,10 @@ export default class CountdownField extends fields.ArrayField {
|
||||||
|
|
||||||
data.countdowns[foundry.utils.randomID()] = {
|
data.countdowns[foundry.utils.randomID()] = {
|
||||||
...countdown,
|
...countdown,
|
||||||
|
ownership: game.users.reduce((acc, curr) => {
|
||||||
|
if (!curr.isGM) acc[curr.id] = countdown.defaultOwnership;
|
||||||
|
return acc;
|
||||||
|
}, {}),
|
||||||
progress: {
|
progress: {
|
||||||
...countdown.progress,
|
...countdown.progress,
|
||||||
current: countdownStart,
|
current: countdownStart,
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue