mirror of
https://github.com/Foundryborne/daggerheart.git
synced 2026-04-25 00:43:38 +02:00
Compare commits
No commits in common. "97636fa134c1ddd40e58ce73352253fc302694dc" and "9bea8d6a979003039c3b8d8355cc603d106c3b5c" have entirely different histories.
97636fa134
...
9bea8d6a97
4 changed files with 122 additions and 8 deletions
|
|
@ -137,8 +137,6 @@ 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,6 +5,10 @@ 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,
|
||||||
|
|
@ -15,6 +19,122 @@ 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,10 +57,6 @@ 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,
|
||||||
|
|
|
||||||
|
|
@ -4,8 +4,8 @@
|
||||||
"description": "An unofficial implementation of the Daggerheart system",
|
"description": "An unofficial implementation of the Daggerheart system",
|
||||||
"version": "2.0.3",
|
"version": "2.0.3",
|
||||||
"compatibility": {
|
"compatibility": {
|
||||||
"minimum": "14.360",
|
"minimum": "14.359",
|
||||||
"verified": "14.360",
|
"verified": "14.359",
|
||||||
"maximum": "14"
|
"maximum": "14"
|
||||||
},
|
},
|
||||||
"authors": [
|
"authors": [
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue