This commit is contained in:
WBHarry 2025-07-26 19:05:56 +02:00
parent e6bfe08d83
commit e8c5cd8c9f
5 changed files with 45 additions and 8 deletions

View file

@ -1243,6 +1243,9 @@
"attack": {
"damage": {
"value": { "label": "Base Attack: Damage" }
},
"roll": {
"trait": { "label": "Base Attack: Trait" }
}
}
},
@ -1593,6 +1596,10 @@
"hint": "test"
}
}
},
"ResetSettings": {
"resetConfirmationTitle": "Reset Settings",
"resetConfirmationText": "Are you sure you want to reset the {settings}?"
}
},
"UI": {

View file

@ -136,10 +136,14 @@ export default class DhHomebrewSettings extends HandlebarsApplicationMixin(Appli
...move,
name: game.i18n.localize(move.name),
description: game.i18n.localize(move.description),
actions: move.actions.map(action => ({
...action,
name: game.i18n.localize(action.name)
}))
actions: Object.keys(move.actions).reduce((acc, key) => {
const action = move.actions[key];
acc[key] = {
...action,
name: game.i18n.localize(action.name)
};
return acc;
}, {})
};
return acc;
@ -165,8 +169,18 @@ export default class DhHomebrewSettings extends HandlebarsApplicationMixin(Appli
}
static async reset() {
const confirmed = await foundry.applications.api.DialogV2.confirm({
window: {
title: game.i18n.format('DAGGERHEART.SETTINGS.ResetSettings.resetConfirmationTitle')
},
content: game.i18n.format('DAGGERHEART.SETTINGS.ResetSettings.resetConfirmationText', {
settings: game.i18n.localize('DAGGERHEART.SETTINGS.Menu.homebrew.name')
})
});
if (!confirmed) return;
const resetSettings = new DhHomebrew();
let localizedSettings = this.localizeObject(resetSettings);
let localizedSettings = this.localizeObject(resetSettings.toObject());
this.settings.updateSource(localizedSettings);
this.render();
}

View file

@ -81,6 +81,7 @@ export default class BeastformSheet extends DHBaseItemSheet {
case 'effects':
context.effects.actives = context.effects.actives.map(effect => {
const data = effect.toObject();
data.uuid = effect.uuid;
data.id = effect.id;
if (effect.type === 'beastform') data.mandatory = true;

View file

@ -141,6 +141,7 @@ export const defaultRestOptions = {
actions: {
tendToWounds: {
type: 'healing',
systemPath: 'restMoves.shortRest.moves.tendToWounds.actions',
name: game.i18n.localize('DAGGERHEART.APPLICATIONS.Downtime.shortRest.tendToWounds.name'),
img: 'icons/magic/life/cross-worn-green.webp',
actionType: 'action',
@ -166,6 +167,7 @@ export const defaultRestOptions = {
actions: {
clearStress: {
type: 'healing',
systemPath: 'restMoves.shortRest.moves.clearStress.actions',
name: game.i18n.localize('DAGGERHEART.APPLICATIONS.Downtime.shortRest.clearStress.name'),
img: 'icons/magic/perception/eye-ringed-green.webp',
actionType: 'action',
@ -191,6 +193,7 @@ export const defaultRestOptions = {
actions: {
repairArmor: {
type: 'healing',
systemPath: 'restMoves.shortRest.moves.repairArmor.actions',
name: game.i18n.localize('DAGGERHEART.APPLICATIONS.Downtime.shortRest.repairArmor.name'),
img: 'icons/skills/trades/smithing-anvil-silver-red.webp',
actionType: 'action',
@ -226,6 +229,7 @@ export const defaultRestOptions = {
actions: {
tendToWounds: {
type: 'healing',
systemPath: 'restMoves.longRest.moves.tendToWounds.actions',
name: game.i18n.localize('DAGGERHEART.APPLICATIONS.Downtime.longRest.tendToWounds.name'),
img: 'icons/magic/life/cross-worn-green.webp',
actionType: 'action',
@ -251,6 +255,7 @@ export const defaultRestOptions = {
actions: {
clearStress: {
type: 'healing',
systemPath: 'restMoves.longRest.moves.clearStress.actions',
name: game.i18n.localize('DAGGERHEART.APPLICATIONS.Downtime.longRest.clearStress.name'),
img: 'icons/magic/perception/eye-ringed-green.webp',
actionType: 'action',
@ -276,6 +281,7 @@ export const defaultRestOptions = {
actions: {
repairArmor: {
type: 'healing',
systemPath: 'restMoves.longRest.moves.repairArmor.actions',
name: game.i18n.localize('DAGGERHEART.APPLICATIONS.Downtime.longRest.repairArmor.name'),
img: 'icons/skills/trades/smithing-anvil-silver-red.webp',
actionType: 'action',

View file

@ -204,7 +204,7 @@ export default class DhCharacter extends BaseDataActor {
})
})
}),
maxLoadout : new fields.NumberField({
maxLoadout: new fields.NumberField({
integer: true,
initial: 0,
label: 'DAGGERHEART.GENERAL.Bonuses.maxLoadout.label'
@ -249,6 +249,13 @@ export default class DhCharacter extends BaseDataActor {
initial: '@profd4',
label: 'DAGGERHEART.GENERAL.Rules.attack.damage.value.label'
})
}),
roll: new fields.SchemaField({
trait: new fields.StringField({
required: true,
initial: CONFIG.DH.ACTOR.abilities.strength.id,
label: 'DAGGERHEART.GENERAL.Rules.attack.roll.trait.label'
})
})
}),
weapon: new fields.SchemaField({
@ -329,13 +336,15 @@ export default class DhCharacter extends BaseDataActor {
get loadoutSlot() {
const loadoutCount = this.domainCards.loadout?.length ?? 0,
max = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Homebrew).maxLoadout + this.bonuses.maxLoadout;
max =
game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Homebrew).maxLoadout +
this.bonuses.maxLoadout;
return {
current: loadoutCount,
available: Math.max(max - loadoutCount, 0),
max
}
};
}
get armor() {