Language Organization (#281)

* Organized language

* Organized high level folders

* Some deeper organization

* More org. That's enough ._.

* Capitalized initial system localization categories
This commit is contained in:
WBHarry 2025-07-06 17:43:12 +02:00 committed by GitHub
parent 8a7ff2306a
commit 488844603a
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
149 changed files with 2130 additions and 2512 deletions

View file

@ -190,7 +190,7 @@ Hooks.on('chatMessage', (_, message) => {
if (message.startsWith('/dr')) { if (message.startsWith('/dr')) {
const rollCommand = rollCommandToJSON(message.replace(/\/dr\s?/, '')); const rollCommand = rollCommandToJSON(message.replace(/\/dr\s?/, ''));
if (!rollCommand) { if (!rollCommand) {
ui.notifications.error(game.i18n.localize('DAGGERHEART.Notification.Error.DualityParsing')); ui.notifications.error(game.i18n.localize('DAGGERHEART.UI.Notifications.dualityParsing'));
return false; return false;
} }
@ -203,16 +203,16 @@ Hooks.on('chatMessage', (_, message) => {
new Promise(async (resolve, reject) => { new Promise(async (resolve, reject) => {
const trait = target ? target.system.traits[traitValue] : undefined; const trait = target ? target.system.traits[traitValue] : undefined;
if (traitValue && !trait) { if (traitValue && !trait) {
ui.notifications.error(game.i18n.localize('DAGGERHEART.Notification.Error.AttributeFaulty')); ui.notifications.error(game.i18n.localize('DAGGERHEART.UI.Notifications.attributeFaulty'));
reject(); reject();
return; return;
} }
const title = traitValue const title = traitValue
? game.i18n.format('DAGGERHEART.Chat.DualityRoll.AbilityCheckTitle', { ? game.i18n.format('DAGGERHEART.UI.Chat.dualityRoll.abilitychecktitle', {
ability: game.i18n.localize(SYSTEM.ACTOR.abilities[traitValue].label) ability: game.i18n.localize(SYSTEM.ACTOR.abilities[traitValue].label)
}) })
: game.i18n.localize('DAGGERHEART.General.Duality'); : game.i18n.localize('DAGGERHEART.GENERAL.duality');
const config = { const config = {
title: title, title: title,
@ -247,8 +247,8 @@ Hooks.on('renderJournalDirectory', async (tab, html, _, options) => {
if (options.parts && !options.parts.includes('footer')) return; if (options.parts && !options.parts.includes('footer')) return;
const buttons = tab.element.querySelector('.directory-footer.action-buttons'); const buttons = tab.element.querySelector('.directory-footer.action-buttons');
const title = game.i18n.format('DAGGERHEART.Countdown.Title', { const title = game.i18n.format('DAGGERHEART.APPLICATIONS.Countdown.title', {
type: game.i18n.localize('DAGGERHEART.Countdown.Types.narrative') type: game.i18n.localize('DAGGERHEART.APPLICATIONS.Countdown.types.narrative')
}); });
buttons.insertAdjacentHTML( buttons.insertAdjacentHTML(
'afterbegin', 'afterbegin',

File diff suppressed because it is too large Load diff

View file

@ -41,7 +41,7 @@ export default class DhCharacterCreation extends HandlebarsApplicationMixin(Appl
} }
get title() { get title() {
return game.i18n.format('DAGGERHEART.CharacterCreation.Title', { actor: this.character.name }); return game.i18n.format('DAGGERHEART.APPLICATIONS.CharacterCreation.title', { actor: this.character.name });
} }
static DEFAULT_OPTIONS = { static DEFAULT_OPTIONS = {
@ -87,14 +87,14 @@ export default class DhCharacterCreation extends HandlebarsApplicationMixin(Appl
cssClass: '', cssClass: '',
group: 'primary', group: 'primary',
id: 'setup', id: 'setup',
label: 'DAGGERHEART.CharacterCreation.Tabs.Setup' label: 'DAGGERHEART.GENERAL.Tabs.setup'
}, },
equipment: { equipment: {
active: false, active: false,
cssClass: '', cssClass: '',
group: 'primary', group: 'primary',
id: 'equipment', id: 'equipment',
label: 'DAGGERHEART.CharacterCreation.Tabs.Equipment', label: 'DAGGERHEART.GENERAL.Tabs.equipment',
optional: true optional: true
} }
// story: { // story: {
@ -102,7 +102,7 @@ export default class DhCharacterCreation extends HandlebarsApplicationMixin(Appl
// cssClass: '', // cssClass: '',
// group: 'primary', // group: 'primary',
// id: 'story', // id: 'story',
// label: 'DAGGERHEART.CharacterCreation.Tabs.Story', // label: 'DAGGERHEART.GENERAL.Tabs.story',
// optional: true // optional: true
// } // }
}; };
@ -188,7 +188,7 @@ export default class DhCharacterCreation extends HandlebarsApplicationMixin(Appl
context.suggestedTraits = this.setup.class.system context.suggestedTraits = this.setup.class.system
? Object.keys(this.setup.class.system.characterGuide.suggestedTraits).map(traitKey => { ? Object.keys(this.setup.class.system.characterGuide.suggestedTraits).map(traitKey => {
const trait = this.setup.class.system.characterGuide.suggestedTraits[traitKey]; const trait = this.setup.class.system.characterGuide.suggestedTraits[traitKey];
return `${game.i18n.localize(`DAGGERHEART.Abilities.${traitKey}.short`)} ${trait > 0 ? `+${trait}` : trait}`; return `${game.i18n.localize(`DAGGERHEART.CONFIG.Traits.${traitKey}.short`)} ${trait > 0 ? `+${trait}` : trait}`;
}) })
: []; : [];
context.traits = { context.traits = {
@ -417,9 +417,7 @@ export default class DhCharacterCreation extends HandlebarsApplicationMixin(Appl
}; };
} else if (item.type === 'subclass' && event.target.closest('.subclass-card')) { } else if (item.type === 'subclass' && event.target.closest('.subclass-card')) {
if (this.setup.class.system.subclasses.every(subclass => subclass.uuid !== item.uuid)) { if (this.setup.class.system.subclasses.every(subclass => subclass.uuid !== item.uuid)) {
ui.notifications.error( ui.notifications.error(game.i18n.localize('DAGGERHEART.UI.Notifications.subclassNotInClass'));
game.i18n.localize('DAGGERHEART.CharacterCreation.Notifications.SubclassNotInClass')
);
return; return;
} }
@ -430,68 +428,58 @@ export default class DhCharacterCreation extends HandlebarsApplicationMixin(Appl
}; };
} else if (item.type === 'domainCard' && event.target.closest('.domain-card')) { } else if (item.type === 'domainCard' && event.target.closest('.domain-card')) {
if (!this.setup.class.uuid) { if (!this.setup.class.uuid) {
ui.notifications.error(game.i18n.localize('DAGGERHEART.CharacterCreation.Notifications.MissingClass')); ui.notifications.error(game.i18n.localize('DAGGERHEART.UI.Notifications.missingClass'));
return; return;
} }
if (!this.setup.class.system.domains.includes(item.system.domain)) { if (!this.setup.class.system.domains.includes(item.system.domain)) {
ui.notifications.error(game.i18n.localize('DAGGERHEART.CharacterCreation.Notifications.WrongDomain')); ui.notifications.error(game.i18n.localize('DAGGERHEART.UI.Notifications.wrongDomain'));
return; return;
} }
if (item.system.level > 1) { if (item.system.level > 1) {
ui.notifications.error( ui.notifications.error(game.i18n.localize('DAGGERHEART.UI.Notifications.cardTooHighLevel'));
game.i18n.localize('DAGGERHEART.CharacterCreation.Notifications.CardTooHighLevel')
);
return; return;
} }
if (Object.values(this.setup.domainCards).some(card => card.uuid === item.uuid)) { if (Object.values(this.setup.domainCards).some(card => card.uuid === item.uuid)) {
ui.notifications.error(game.i18n.localize('DAGGERHEART.CharacterCreation.Notifications.DuplicateCard')); ui.notifications.error(game.i18n.localize('DAGGERHEART.UI.Notifications.duplicateCard'));
return; return;
} }
this.setup.domainCards[event.target.closest('.domain-card').dataset.card] = { ...item, uuid: item.uuid }; this.setup.domainCards[event.target.closest('.domain-card').dataset.card] = { ...item, uuid: item.uuid };
} else if (item.type === 'armor' && event.target.closest('.armor-card')) { } else if (item.type === 'armor' && event.target.closest('.armor-card')) {
if (item.system.tier > 1) { if (item.system.tier > 1) {
ui.notifications.error( ui.notifications.error(game.i18n.localize('DAGGERHEART.UI.Notifications.itemTooHighTier'));
game.i18n.localize('DAGGERHEART.CharacterCreation.Notifications.ItemTooHighTier')
);
return; return;
} }
this.equipment.armor = { ...item, uuid: item.uuid }; this.equipment.armor = { ...item, uuid: item.uuid };
} else if (item.type === 'weapon' && event.target.closest('.primary-weapon-card')) { } else if (item.type === 'weapon' && event.target.closest('.primary-weapon-card')) {
if (item.system.secondary) { if (item.system.secondary) {
ui.notifications.error(game.i18n.localize('DAGGERHEART.CharacterCreation.Notifications.NotPrimary')); ui.notifications.error(game.i18n.localize('DAGGERHEART.UI.Notifications.notPrimary'));
return; return;
} }
if (item.system.tier > 1) { if (item.system.tier > 1) {
ui.notifications.error( ui.notifications.error(game.i18n.localize('DAGGERHEART.UI.Notifications.itemTooHighTier'));
game.i18n.localize('DAGGERHEART.CharacterCreation.Notifications.ItemTooHighTier')
);
return; return;
} }
this.equipment.primaryWeapon = { ...item, uuid: item.uuid }; this.equipment.primaryWeapon = { ...item, uuid: item.uuid };
} else if (item.type === 'weapon' && event.target.closest('.secondary-weapon-card')) { } else if (item.type === 'weapon' && event.target.closest('.secondary-weapon-card')) {
if (this.equipment.primaryWeapon?.system?.burden === burden.twoHanded.value) { if (this.equipment.primaryWeapon?.system?.burden === burden.twoHanded.value) {
ui.notifications.error( ui.notifications.error(game.i18n.localize('DAGGERHEART.UI.Notifications.primaryIsTwoHanded'));
game.i18n.localize('DAGGERHEART.CharacterCreation.Notifications.PrimaryIsTwoHanded')
);
return; return;
} }
if (!item.system.secondary) { if (!item.system.secondary) {
ui.notifications.error(game.i18n.localize('DAGGERHEART.CharacterCreation.Notifications.NotSecondary')); ui.notifications.error(game.i18n.localize('DAGGERHEART.UI.Notifications.notSecondary'));
return; return;
} }
if (item.system.tier > 1) { if (item.system.tier > 1) {
ui.notifications.error( ui.notifications.error(game.i18n.localize('DAGGERHEART.UI.Notifications.itemTooHighTier'));
game.i18n.localize('DAGGERHEART.CharacterCreation.Notifications.ItemTooHighTier')
);
return; return;
} }

View file

@ -27,7 +27,7 @@ export default class BeastformDialog extends HandlebarsApplicationMixin(Applicat
}; };
get title() { get title() {
return game.i18n.localize('DAGGERHEART.Sheets.Beastform.dialogTitle'); return game.i18n.localize('DAGGERHEART.ITEMS.Beastform.dialogTitle');
} }
/** @override */ /** @override */

View file

@ -45,7 +45,7 @@ export default class DamageReductionDialog extends HandlebarsApplicationMixin(Ap
} }
get title() { get title() {
return game.i18n.localize('DAGGERHEART.DamageReduction.Title'); return game.i18n.localize('DAGGERHEART.APPLICATIONS.DamageReduction.title');
} }
static DEFAULT_OPTIONS = { static DEFAULT_OPTIONS = {
@ -79,7 +79,7 @@ export default class DamageReductionDialog extends HandlebarsApplicationMixin(Ap
/** @inheritDoc */ /** @inheritDoc */
get title() { get title() {
return game.i18n.localize('DAGGERHEART.DamageReduction.Title'); return game.i18n.localize('DAGGERHEART.APPLICATIONS.DamageReduction.title');
} }
async _prepareContext(_options) { async _prepareContext(_options) {
@ -136,14 +136,12 @@ export default class DamageReductionDialog extends HandlebarsApplicationMixin(Ap
const currentMark = this.marks[target.dataset.type][target.dataset.key]; const currentMark = this.marks[target.dataset.type][target.dataset.key];
const { selectedStressMarks, stressReductions, currentMarks, currentDamage } = this.getDamageInfo(); const { selectedStressMarks, stressReductions, currentMarks, currentDamage } = this.getDamageInfo();
if (!currentMark.selected && currentDamage === 0) { if (!currentMark.selected && currentDamage === 0) {
ui.notifications.info(game.i18n.localize('DAGGERHEART.DamageReduction.Notifications.DamageAlreadyNone')); ui.notifications.info(game.i18n.localize('DAGGERHEART.UI.Notifications.damageAlreadyNone'));
return; return;
} }
if (!currentMark.selected && currentMarks === this.actor.system.armorScore) { if (!currentMark.selected && currentMarks === this.actor.system.armorScore) {
ui.notifications.info( ui.notifications.info(game.i18n.localize('DAGGERHEART.UI.Notifications.noAvailableArmorMarks'));
game.i18n.localize('DAGGERHEART.DamageReduction.Notifications.NoAvailableArmorMarks')
);
return; return;
} }
@ -187,7 +185,7 @@ export default class DamageReductionDialog extends HandlebarsApplicationMixin(Ap
const currentStress = const currentStress =
this.actor.system.resources.stress.value + selectedStressMarks.length + stressReductionStress; this.actor.system.resources.stress.value + selectedStressMarks.length + stressReductionStress;
if (currentStress + stressReduction.cost > this.actor.system.resources.stress.maxTotal) { if (currentStress + stressReduction.cost > this.actor.system.resources.stress.maxTotal) {
ui.notifications.info(game.i18n.localize('DAGGERHEART.DamageReduction.Notifications.NotEnoughStress')); ui.notifications.info(game.i18n.localize('DAGGERHEART.UI.Notifications.notEnoughStress'));
return; return;
} }

View file

@ -9,7 +9,7 @@ export default class DhpDeathMove extends HandlebarsApplicationMixin(Application
} }
get title() { get title() {
return game.i18n.format('DAGGERHEART.Application.DeathMove.Title', { actor: this.actor.name }); return game.i18n.format('DAGGERHEART.APPLICATIONS.DeathMove.title', { actor: this.actor.name });
} }
static DEFAULT_OPTIONS = { static DEFAULT_OPTIONS = {

View file

@ -54,7 +54,7 @@ export default class DhpDowntime extends HandlebarsApplicationMixin(ApplicationV
static selectMove(_, button) { static selectMove(_, button) {
const nrSelected = Object.values(this.moveData.moves).reduce((acc, x) => acc + (x.selected ?? 0), 0); const nrSelected = Object.values(this.moveData.moves).reduce((acc, x) => acc + (x.selected ?? 0), 0);
if (nrSelected === this.moveData.nrChoices) { if (nrSelected === this.moveData.nrChoices) {
ui.notifications.error(game.i18n.localize('DAGGERHEART.Downtime.Notifications.NoMoreMoves')); ui.notifications.error(game.i18n.localize('DAGGERHEART.UI.Notifications.noMoreMoves'));
return; return;
} }
@ -88,7 +88,7 @@ export default class DhpDowntime extends HandlebarsApplicationMixin(ApplicationV
content: await foundry.applications.handlebars.renderTemplate( content: await foundry.applications.handlebars.renderTemplate(
'systems/daggerheart/templates/ui/chat/downtime.hbs', 'systems/daggerheart/templates/ui/chat/downtime.hbs',
{ {
title: `${this.actor.name} - ${game.i18n.localize(`DAGGERHEART.Downtime.${this.shortRest ? 'ShortRest' : 'LongRest'}.title`)}`, title: `${this.actor.name} - ${game.i18n.localize(`DAGGERHEART.APPLICATIONS.Downtime.${this.shortRest ? 'shortRest' : 'longRest'}.title`)}`,
moves: moves moves: moves
} }
) )

View file

@ -27,7 +27,7 @@ export default class OwnershipSelection extends HandlebarsApplicationMixin(Appli
}; };
get title() { get title() {
return game.i18n.format('DAGGERHEART.OwnershipSelection.Title', { name: this.name }); return game.i18n.format('DAGGERHEART.APPLICATIONS.OwnershipSelection.title', { name: this.name });
} }
async _prepareContext(_options) { async _prepareContext(_options) {

View file

@ -112,7 +112,7 @@ export default class DhCharacterLevelUp extends LevelUpBase {
? Math.min(domainCard.secondaryData.limit, levelBase) ? Math.min(domainCard.secondaryData.limit, levelBase)
: levelBase; : levelBase;
return game.i18n.format('DAGGERHEART.Application.LevelUp.Selections.emptyDomainCardHint', { return game.i18n.format('DAGGERHEART.APPLICATIONS.Levelup.selections.emptyDomainCardHint', {
domain: game.i18n.localize(domains[domain.domain].label), domain: game.i18n.localize(domains[domain.domain].label),
level: levelMax level: levelMax
}); });

View file

@ -63,8 +63,8 @@ export default class DhCompanionLevelUp extends BaseLevelUp {
context.vicious = advancementChoices.vicious ? Object.values(advancementChoices.vicious) : null; context.vicious = advancementChoices.vicious ? Object.values(advancementChoices.vicious) : null;
context.viciousChoices = { context.viciousChoices = {
damage: game.i18n.localize('DAGGERHEART.Application.LevelUp.Selections.viciousDamage'), damage: game.i18n.localize('DAGGERHEART.APPLICATIONS.Levelup.selections.viciousDamage'),
range: game.i18n.localize('DAGGERHEART.Application.LevelUp.Selections.viciousRange') range: game.i18n.localize('DAGGERHEART.APPLICATIONS.Levelup.selections.viciousRange')
}; };
break; break;
@ -142,7 +142,7 @@ export default class DhCompanionLevelUp extends BaseLevelUp {
: null, : null,
range: advancement.vicious?.range range: advancement.vicious?.range
? { ? {
old: game.i18n.localize(`DAGGERHEART.Range.${actorRange}.name`), old: game.i18n.localize(`DAGGERHEART.CONFIG.Range.${actorRange}.name`),
new: game.i18n.localize(advancement.vicious.range.label) new: game.i18n.localize(advancement.vicious.range.label)
} }
: null : null

View file

@ -15,7 +15,7 @@ export default class DhlevelUp extends HandlebarsApplicationMixin(ApplicationV2)
} }
get title() { get title() {
return game.i18n.format('DAGGERHEART.Application.LevelUp.Title', { actor: this.actor.name }); return game.i18n.format('DAGGERHEART.APPLICATIONS.Levelup.title', { actor: this.actor.name });
} }
static DEFAULT_OPTIONS = { static DEFAULT_OPTIONS = {
@ -56,7 +56,7 @@ export default class DhlevelUp extends HandlebarsApplicationMixin(ApplicationV2)
group: 'primary', group: 'primary',
id: 'advancements', id: 'advancements',
icon: null, icon: null,
label: 'DAGGERHEART.Application.LevelUp.Tabs.advancement' label: 'DAGGERHEART.GENERAL.Tabs.advancement'
}, },
selections: { selections: {
active: false, active: false,
@ -64,7 +64,7 @@ export default class DhlevelUp extends HandlebarsApplicationMixin(ApplicationV2)
group: 'primary', group: 'primary',
id: 'selections', id: 'selections',
icon: null, icon: null,
label: 'DAGGERHEART.Application.LevelUp.Tabs.selections' label: 'DAGGERHEART.GENERAL.Tabs.selections'
}, },
summary: { summary: {
active: false, active: false,
@ -72,7 +72,7 @@ export default class DhlevelUp extends HandlebarsApplicationMixin(ApplicationV2)
group: 'primary', group: 'primary',
id: 'summary', id: 'summary',
icon: null, icon: null,
label: 'DAGGERHEART.Application.LevelUp.Tabs.summary' label: 'DAGGERHEART.GENERAL.Tabs.summary'
} }
}; };
@ -110,14 +110,14 @@ export default class DhlevelUp extends HandlebarsApplicationMixin(ApplicationV2)
previous: { previous: {
disabled: !previous, disabled: !previous,
label: previous label: previous
? game.i18n.format('DAGGERHEART.Application.LevelUp.navigateLevel', { level: previous }) ? game.i18n.format('DAGGERHEART.APPLICATIONS.Levelup.navigateLevel', { level: previous })
: '', : '',
fromSummary: this.tabGroups.primary === 'summary' fromSummary: this.tabGroups.primary === 'summary'
}, },
next: { next: {
disabled: !this.levelup.currentLevelFinished, disabled: !this.levelup.currentLevelFinished,
label: next label: next
? game.i18n.format('DAGGERHEART.Application.LevelUp.navigateLevel', { level: next }) ? game.i18n.format('DAGGERHEART.APPLICATIONS.Levelup.navigateLevel', { level: next })
: '', : '',
toSummary: !next, toSummary: !next,
show: this.tabGroups.primary !== 'summary' show: this.tabGroups.primary !== 'summary'
@ -384,9 +384,7 @@ export default class DhlevelUp extends HandlebarsApplicationMixin(ApplicationV2)
); );
if (!updatePath) { if (!updatePath) {
ui.notifications.error( ui.notifications.error(game.i18n.localize('DAGGERHEART.UI.Notifications.noSelectionsLeft'));
game.i18n.localize('DAGGERHEART.Application.LevelUp.notifications.error.noSelectionsLeft')
);
return; return;
} }
@ -414,18 +412,14 @@ export default class DhlevelUp extends HandlebarsApplicationMixin(ApplicationV2)
!this.actor.system.domains.includes(item.system.domain) && !this.actor.system.domains.includes(item.system.domain) &&
this.levelup.classUpgradeChoices?.multiclass?.domain !== item.system.domain this.levelup.classUpgradeChoices?.multiclass?.domain !== item.system.domain
) { ) {
ui.notifications.error( ui.notifications.error(game.i18n.localize('DAGGERHEART.UI.Notifications.domainCardWrongDomain'));
game.i18n.localize('DAGGERHEART.Application.LevelUp.notifications.error.domainCardWrongDomain')
);
return; return;
} }
const levelBase = isMulticlass ? Math.ceil(this.levelup.currentLevel / 2) : this.levelup.currentLevel; const levelBase = isMulticlass ? Math.ceil(this.levelup.currentLevel / 2) : this.levelup.currentLevel;
const levelMax = target.dataset.limit ? Math.min(Number(target.dataset.limit), levelBase) : levelBase; const levelMax = target.dataset.limit ? Math.min(Number(target.dataset.limit), levelBase) : levelBase;
if (levelMax < item.system.level) { if (levelMax < item.system.level) {
ui.notifications.error( ui.notifications.error(game.i18n.localize('DAGGERHEART.UI.Notifications.domainCardToHighLevel'));
game.i18n.localize('DAGGERHEART.Application.LevelUp.notifications.error.domainCardToHighLevel')
);
return; return;
} }
@ -443,9 +437,7 @@ export default class DhlevelUp extends HandlebarsApplicationMixin(ApplicationV2)
return achievementExists || advancementExists; return achievementExists || advancementExists;
}); });
if (cardExistsInCharacter || cardExistsInLevelup) { if (cardExistsInCharacter || cardExistsInLevelup) {
ui.notifications.error( ui.notifications.error(game.i18n.localize('DAGGERHEART.UI.Notifications.domainCardDuplicate'));
game.i18n.localize('DAGGERHEART.Application.LevelUp.notifications.error.domainCardDuplicate')
);
return; return;
} }
@ -456,9 +448,7 @@ export default class DhlevelUp extends HandlebarsApplicationMixin(ApplicationV2)
const target = event.target.closest('.multiclass-cards'); const target = event.target.closest('.multiclass-cards');
if (item.type === 'class') { if (item.type === 'class') {
if (item.name === this.actor.system.class.value.name) { if (item.name === this.actor.system.class.value.name) {
ui.notifications.error( ui.notifications.error(game.i18n.localize('DAGGERHEART.UI.Notifications.alreadySelectedClass'));
game.i18n.localize('DAGGERHEART.Application.LevelUp.notifications.error.alreadySelectedClass')
);
return; return;
} }
@ -498,9 +488,7 @@ export default class DhlevelUp extends HandlebarsApplicationMixin(ApplicationV2)
} }
} else { } else {
if (this.levelup.levels[this.levelup.currentLevel].nrSelections.available < Number(button.dataset.cost)) { if (this.levelup.levels[this.levelup.currentLevel].nrSelections.available < Number(button.dataset.cost)) {
ui.notifications.info( ui.notifications.info(game.i18n.localize('DAGGERHEART.UI.Notifications.insufficentAdvancements'));
game.i18n.localize('DAGGERHEART.Application.LevelUp.notifications.info.insufficentAdvancements')
);
this.render(); this.render();
return; return;
} }
@ -571,9 +559,9 @@ export default class DhlevelUp extends HandlebarsApplicationMixin(ApplicationV2)
if (!button.dataset.forward) { if (!button.dataset.forward) {
const confirmed = await foundry.applications.api.DialogV2.confirm({ const confirmed = await foundry.applications.api.DialogV2.confirm({
window: { window: {
title: game.i18n.localize('DAGGERHEART.Application.LevelUp.Delevel.title') title: game.i18n.localize('DAGGERHEART.APPLICATIONS.Levelup.delevel.title')
}, },
content: game.i18n.format('DAGGERHEART.Application.LevelUp.Delevel.content') content: game.i18n.format('DAGGERHEART.APPLICATIONS.Levelup.delevel.content')
}); });
if (!confirmed) return; if (!confirmed) return;

View file

@ -12,7 +12,7 @@ export default class DHAppearanceSettings extends HandlebarsApplicationMixin(App
} }
get title() { get title() {
return game.i18n.localize('DAGGERHEART.Settings.Menu.Appearance.name'); return game.i18n.localize('DAGGERHEART.SETTINGS.Menu.appearance.name');
} }
static DEFAULT_OPTIONS = { static DEFAULT_OPTIONS = {

View file

@ -12,7 +12,7 @@ export default class DhAutomationSettings extends HandlebarsApplicationMixin(App
} }
get title() { get title() {
return game.i18n.localize('DAGGERHEART.Settings.Menu.Automation.Name'); return game.i18n.localize('DAGGERHEART.SETTINGS.Menu.automation.name');
} }
static DEFAULT_OPTIONS = { static DEFAULT_OPTIONS = {

View file

@ -13,7 +13,7 @@ export default class DhHomebrewSettings extends HandlebarsApplicationMixin(Appli
} }
get title() { get title() {
return game.i18n.localize('DAGGERHEART.Settings.Menu.Homebrew.Name'); return game.i18n.localize('DAGGERHEART.SETTINGS.Menu.homebrew.name');
} }
static DEFAULT_OPTIONS = { static DEFAULT_OPTIONS = {
@ -59,7 +59,7 @@ export default class DhHomebrewSettings extends HandlebarsApplicationMixin(Appli
static async addItem(_, target) { static async addItem(_, target) {
await this.settings.updateSource({ await this.settings.updateSource({
[`restMoves.${target.dataset.type}.moves.${foundry.utils.randomID()}`]: { [`restMoves.${target.dataset.type}.moves.${foundry.utils.randomID()}`]: {
name: game.i18n.localize('DAGGERHEART.Settings.Homebrew.NewDowntimeMove'), name: game.i18n.localize('DAGGERHEART.SETTINGS.Homebrew.newDowntimeMove'),
img: 'icons/magic/life/cross-worn-green.webp', img: 'icons/magic/life/cross-worn-green.webp',
description: '', description: '',
actions: [] actions: []
@ -74,7 +74,7 @@ export default class DhHomebrewSettings extends HandlebarsApplicationMixin(Appli
new DhSettingsActionView( new DhSettingsActionView(
resolve, resolve,
reject, reject,
game.i18n.localize('DAGGERHEART.Settings.Homebrew.DowntimeMoves'), game.i18n.localize('DAGGERHEART.SETTINGS.Homebrew.downtimeMoves'),
move.name, move.name,
move.img, move.img,
move.description, move.description,
@ -104,13 +104,13 @@ export default class DhHomebrewSettings extends HandlebarsApplicationMixin(Appli
static async resetMoves(_, target) { static async resetMoves(_, target) {
const confirmed = await foundry.applications.api.DialogV2.confirm({ const confirmed = await foundry.applications.api.DialogV2.confirm({
window: { window: {
title: game.i18n.format('DAGGERHEART.Settings.Homebrew.ResetMovesTitle', { title: game.i18n.format('DAGGERHEART.SETTINGS.Homebrew.resetMovesTitle', {
type: game.i18n.localize( type: game.i18n.localize(
`DAGGERHEART.Downtime.${target.dataset.type === 'shortRest' ? 'ShortRest' : 'LongRest'}.title` `DAGGERHEART.APPLICATIONS.Downtime.${target.dataset.type === 'shortRest' ? 'shortRest' : 'longRest'}.title`
) )
}) })
}, },
content: game.i18n.localize('DAGGERHEART.Settings.Homebrew.ResetMovesText') content: game.i18n.localize('DAGGERHEART.SETTINGS.Homebrew.resetMovesText')
}); });
if (!confirmed) return; if (!confirmed) return;

View file

@ -12,7 +12,7 @@ export default class DhRangeMeasurementSettings extends HandlebarsApplicationMix
} }
get title() { get title() {
return game.i18n.localize('DAGGERHEART.Settings.Menu.Automation.Name'); return game.i18n.localize('DAGGERHEART.SETTINGS.Menu.automation.name');
} }
static DEFAULT_OPTIONS = { static DEFAULT_OPTIONS = {

View file

@ -12,7 +12,7 @@ export default class DHVariantRuleSettings extends HandlebarsApplicationMixin(Ap
} }
get title() { get title() {
return game.i18n.localize('DAGGERHEART.Settings.Menu.VariantRules.name'); return game.i18n.localize('DAGGERHEART.SETTINGS.Menu.variantRules.name');
} }
static DEFAULT_OPTIONS = { static DEFAULT_OPTIONS = {

View file

@ -10,7 +10,7 @@ export default class DHActionConfig extends DaggerheartSheet(ApplicationV2) {
} }
get title() { get title() {
return `${game.i18n.localize('DAGGERHEART.Sheets.TABS.settings')}: ${this.action.name}`; return `${game.i18n.localize('DAGGERHEART.GENERAL.Tabs.settings')}: ${this.action.name}`;
} }
static DEFAULT_OPTIONS = { static DEFAULT_OPTIONS = {
@ -117,7 +117,7 @@ export default class DHActionConfig extends DaggerheartSheet(ApplicationV2) {
const settingsTiers = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.LevelTiers).tiers; const settingsTiers = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.LevelTiers).tiers;
context.tierOptions = [ context.tierOptions = [
{ key: 1, label: game.i18n.localize('DAGGERHEART.Tiers.tier1') }, { key: 1, label: game.i18n.localize('DAGGERHEART.GENERAL.Tiers.tier1') },
...Object.values(settingsTiers).map(x => ({ key: x.tier, label: x.name })) ...Object.values(settingsTiers).map(x => ({ key: x.tier, label: x.name }))
]; ];

View file

@ -9,7 +9,7 @@ export default class DHAdversarySettings extends HandlebarsApplicationMixin(Appl
} }
get title() { get title() {
return `${game.i18n.localize('DAGGERHEART.Sheets.TABS.settings')}`; return `${game.i18n.localize('DAGGERHEART.GENERAL.Tabs.settings')}`;
} }
static DEFAULT_OPTIONS = { static DEFAULT_OPTIONS = {
@ -69,7 +69,7 @@ export default class DHAdversarySettings extends HandlebarsApplicationMixin(Appl
group: 'primary', group: 'primary',
id: 'details', id: 'details',
icon: null, icon: null,
label: 'DAGGERHEART.General.tabs.details' label: 'DAGGERHEART.GENERAL.Tabs.details'
}, },
attack: { attack: {
active: false, active: false,
@ -77,7 +77,7 @@ export default class DHAdversarySettings extends HandlebarsApplicationMixin(Appl
group: 'primary', group: 'primary',
id: 'attack', id: 'attack',
icon: null, icon: null,
label: 'DAGGERHEART.General.tabs.attack' label: 'DAGGERHEART.GENERAL.Tabs.attack'
}, },
experiences: { experiences: {
active: false, active: false,
@ -85,7 +85,7 @@ export default class DHAdversarySettings extends HandlebarsApplicationMixin(Appl
group: 'primary', group: 'primary',
id: 'experiences', id: 'experiences',
icon: null, icon: null,
label: 'DAGGERHEART.General.tabs.experiences' label: 'DAGGERHEART.GENERAL.Tabs.experiences'
}, },
features: { features: {
active: false, active: false,
@ -93,7 +93,7 @@ export default class DHAdversarySettings extends HandlebarsApplicationMixin(Appl
group: 'primary', group: 'primary',
id: 'features', id: 'features',
icon: null, icon: null,
label: 'DAGGERHEART.General.tabs.features' label: 'DAGGERHEART.GENERAL.Tabs.features'
} }
}; };

View file

@ -11,7 +11,7 @@ export default class DHCompanionSettings extends HandlebarsApplicationMixin(Appl
} }
get title() { get title() {
return `${game.i18n.localize('DAGGERHEART.Sheets.TABS.settings')}`; return `${game.i18n.localize('DAGGERHEART.GENERAL.Tabs.settings')}`;
} }
static DEFAULT_OPTIONS = { static DEFAULT_OPTIONS = {
@ -59,7 +59,7 @@ export default class DHCompanionSettings extends HandlebarsApplicationMixin(Appl
group: 'primary', group: 'primary',
id: 'details', id: 'details',
icon: null, icon: null,
label: 'DAGGERHEART.General.tabs.details' label: 'DAGGERHEART.GENERAL.Tabs.details'
}, },
experiences: { experiences: {
active: false, active: false,
@ -67,7 +67,7 @@ export default class DHCompanionSettings extends HandlebarsApplicationMixin(Appl
group: 'primary', group: 'primary',
id: 'experiences', id: 'experiences',
icon: null, icon: null,
label: 'DAGGERHEART.General.tabs.experiences' label: 'DAGGERHEART.GENERAL.Tabs.experiences'
}, },
attack: { attack: {
active: false, active: false,
@ -75,7 +75,7 @@ export default class DHCompanionSettings extends HandlebarsApplicationMixin(Appl
group: 'primary', group: 'primary',
id: 'attack', id: 'attack',
icon: null, icon: null,
label: 'DAGGERHEART.General.tabs.attack' label: 'DAGGERHEART.GENERAL.Tabs.attack'
} }
}; };

View file

@ -9,7 +9,7 @@ export default class DHEnvironmentSettings extends HandlebarsApplicationMixin(Ap
} }
get title() { get title() {
return `${game.i18n.localize('DAGGERHEART.Sheets.TABS.settings')}`; return `${game.i18n.localize('DAGGERHEART.GENERAL.Tabs.settings')}`;
} }
static DEFAULT_OPTIONS = { static DEFAULT_OPTIONS = {
@ -68,7 +68,7 @@ export default class DHEnvironmentSettings extends HandlebarsApplicationMixin(Ap
group: 'primary', group: 'primary',
id: 'details', id: 'details',
icon: null, icon: null,
label: 'DAGGERHEART.General.tabs.details' label: 'DAGGERHEART.GENERAL.Tabs.details'
}, },
features: { features: {
active: false, active: false,
@ -76,7 +76,7 @@ export default class DHEnvironmentSettings extends HandlebarsApplicationMixin(Ap
group: 'primary', group: 'primary',
id: 'features', id: 'features',
icon: null, icon: null,
label: 'DAGGERHEART.General.tabs.features' label: 'DAGGERHEART.GENERAL.Tabs.features'
}, },
adversaries: { adversaries: {
active: false, active: false,
@ -84,7 +84,7 @@ export default class DHEnvironmentSettings extends HandlebarsApplicationMixin(Ap
group: 'primary', group: 'primary',
id: 'adversaries', id: 'adversaries',
icon: null, icon: null,
label: 'DAGGERHEART.General.tabs.adversaries' label: 'DAGGERHEART.GENERAL.Tabs.adversaries'
} }
}; };
@ -146,7 +146,7 @@ export default class DHEnvironmentSettings extends HandlebarsApplicationMixin(Ap
static async #addCategory() { static async #addCategory() {
await this.actor.update({ await this.actor.update({
[`system.potentialAdversaries.${foundry.utils.randomID()}.label`]: game.i18n.localize( [`system.potentialAdversaries.${foundry.utils.randomID()}.label`]: game.i18n.localize(
'DAGGERHEART.Sheets.Environment.newAdversary' 'DAGGERHEART.ACTORS.Environment.newAdversary'
) )
}); });
this.render(); this.render();
@ -160,7 +160,7 @@ export default class DHEnvironmentSettings extends HandlebarsApplicationMixin(Ap
static async #viewAdversary(_, button) { static async #viewAdversary(_, button) {
const adversary = await foundry.utils.fromUuid(button.dataset.adversary); const adversary = await foundry.utils.fromUuid(button.dataset.adversary);
if (!adversary) { if (!adversary) {
ui.notifications.warn(game.i18n.localize('DAGGERHEART.UI.notifications.adversaryMissing')); ui.notifications.warn(game.i18n.localize('DAGGERHEART.UI.Notifications.adversaryMissing'));
return; return;
} }

View file

@ -41,7 +41,7 @@ export default class AdversarySheet extends DaggerheartSheet(ActorSheetV2) {
group: 'primary', group: 'primary',
id: 'features', id: 'features',
icon: null, icon: null,
label: 'DAGGERHEART.General.tabs.features' label: 'DAGGERHEART.GENERAL.Tabs.features'
}, },
notes: { notes: {
active: false, active: false,
@ -49,7 +49,7 @@ export default class AdversarySheet extends DaggerheartSheet(ActorSheetV2) {
group: 'primary', group: 'primary',
id: 'notes', id: 'notes',
icon: null, icon: null,
label: 'DAGGERHEART.Sheets.Adversary.Tabs.notes' label: 'DAGGERHEART.GENERAL.Tabs.notes'
}, },
effects: { effects: {
active: false, active: false,
@ -57,7 +57,7 @@ export default class AdversarySheet extends DaggerheartSheet(ActorSheetV2) {
group: 'primary', group: 'primary',
id: 'effects', id: 'effects',
icon: null, icon: null,
label: 'DAGGERHEART.Sheets.Adversary.Tabs.effects' label: 'DAGGERHEART.GENERAL.Tabs.effects'
} }
}; };
@ -118,7 +118,7 @@ export default class AdversarySheet extends DaggerheartSheet(ActorSheetV2) {
const experience = this.document.system.experiences[button.dataset.uuid]; const experience = this.document.system.experiences[button.dataset.uuid];
const cls = getDocumentClass('ChatMessage'); const cls = getDocumentClass('ChatMessage');
const systemData = { const systemData = {
name: game.i18n.localize('DAGGERHEART.General.Experience.Single'), name: game.i18n.localize('DAGGERHEART.GENERAL.Experience.single'),
description: `${experience.name} ${ description: `${experience.name} ${
experience.modifier < 0 ? experience.modifier : `+${experience.modifier}` experience.modifier < 0 ? experience.modifier : `+${experience.modifier}`
}` }`

View file

@ -38,7 +38,6 @@ export default class CharacterSheet extends DaggerheartSheet(ActorSheetV2) {
takeShortRest: this.takeShortRest, takeShortRest: this.takeShortRest,
takeLongRest: this.takeLongRest, takeLongRest: this.takeLongRest,
deleteItem: this.deleteItem, deleteItem: this.deleteItem,
addScar: this.addScar,
deleteScar: this.deleteScar, deleteScar: this.deleteScar,
makeDeathMove: this.makeDeathMove, makeDeathMove: this.makeDeathMove,
itemQuantityDecrease: (_, button) => this.setItemQuantity(button, -1), itemQuantityDecrease: (_, button) => this.setItemQuantity(button, -1),
@ -100,7 +99,7 @@ export default class CharacterSheet extends DaggerheartSheet(ActorSheetV2) {
group: 'primary', group: 'primary',
id: 'features', id: 'features',
icon: null, icon: null,
label: 'DAGGERHEART.Sheets.PC.Tabs.Features' label: 'DAGGERHEART.GENERAL.Tabs.features'
}, },
loadout: { loadout: {
active: false, active: false,
@ -108,7 +107,7 @@ export default class CharacterSheet extends DaggerheartSheet(ActorSheetV2) {
group: 'primary', group: 'primary',
id: 'loadout', id: 'loadout',
icon: null, icon: null,
label: 'DAGGERHEART.Sheets.PC.Tabs.Loadout' label: 'DAGGERHEART.GENERAL.Tabs.loadout'
}, },
inventory: { inventory: {
active: false, active: false,
@ -116,7 +115,7 @@ export default class CharacterSheet extends DaggerheartSheet(ActorSheetV2) {
group: 'primary', group: 'primary',
id: 'inventory', id: 'inventory',
icon: null, icon: null,
label: 'DAGGERHEART.Sheets.PC.Tabs.Inventory' label: 'DAGGERHEART.GENERAL.Tabs.inventory'
}, },
biography: { biography: {
active: false, active: false,
@ -124,7 +123,7 @@ export default class CharacterSheet extends DaggerheartSheet(ActorSheetV2) {
group: 'primary', group: 'primary',
id: 'biography', id: 'biography',
icon: null, icon: null,
label: 'DAGGERHEART.Sheets.PC.Tabs.biography' label: 'DAGGERHEART.GENERAL.Tabs.biography'
}, },
effects: { effects: {
active: false, active: false,
@ -132,7 +131,7 @@ export default class CharacterSheet extends DaggerheartSheet(ActorSheetV2) {
group: 'primary', group: 'primary',
id: 'effects', id: 'effects',
icon: null, icon: null,
label: 'DAGGERHEART.Sheets.PC.Tabs.effects' label: 'DAGGERHEART.GENERAL.Tabs.effects'
} }
}; };
@ -151,7 +150,7 @@ export default class CharacterSheet extends DaggerheartSheet(ActorSheetV2) {
group: 'primary', group: 'primary',
id: 'features', id: 'features',
icon: null, icon: null,
label: game.i18n.localize('DAGGERHEART.Sheets.PC.Tabs.Features') label: game.i18n.localize('DAGGERHEART.GENERAL.Tabs.features')
}, },
loadout: { loadout: {
active: false, active: false,
@ -159,7 +158,7 @@ export default class CharacterSheet extends DaggerheartSheet(ActorSheetV2) {
group: 'primary', group: 'primary',
id: 'loadout', id: 'loadout',
icon: null, icon: null,
label: game.i18n.localize('DAGGERHEART.Sheets.PC.Tabs.Loadout') label: game.i18n.localize('DAGGERHEART.GENERAL.Tabs.loadout')
}, },
inventory: { inventory: {
active: false, active: false,
@ -167,7 +166,7 @@ export default class CharacterSheet extends DaggerheartSheet(ActorSheetV2) {
group: 'primary', group: 'primary',
id: 'inventory', id: 'inventory',
icon: null, icon: null,
label: game.i18n.localize('DAGGERHEART.Sheets.PC.Tabs.Inventory') label: game.i18n.localize('DAGGERHEART.GENERAL.Tabs.inventory')
}, },
story: { story: {
active: false, active: false,
@ -175,7 +174,7 @@ export default class CharacterSheet extends DaggerheartSheet(ActorSheetV2) {
group: 'primary', group: 'primary',
id: 'story', id: 'story',
icon: null, icon: null,
label: game.i18n.localize('DAGGERHEART.Sheets.PC.Tabs.Story') label: game.i18n.localize('DAGGERHEART.GENERAL.Tabs.story')
} }
}; };
const secondaryTabs = { const secondaryTabs = {
@ -185,7 +184,7 @@ export default class CharacterSheet extends DaggerheartSheet(ActorSheetV2) {
group: 'secondary', group: 'secondary',
id: 'foundation', id: 'foundation',
icon: null, icon: null,
label: game.i18n.localize('DAGGERHEART.Sheets.PC.Tabs.Foundation') label: game.i18n.localize('DAGGERHEART.GENERAL.Tabs.foundation')
}, },
loadout: { loadout: {
active: false, active: false,
@ -193,7 +192,7 @@ export default class CharacterSheet extends DaggerheartSheet(ActorSheetV2) {
group: 'secondary', group: 'secondary',
id: 'loadout', id: 'loadout',
icon: null, icon: null,
label: game.i18n.localize('DAGGERHEART.Sheets.PC.Tabs.Loadout') label: game.i18n.localize('DAGGERHEART.GENERAL.Tabs.loadout')
}, },
vault: { vault: {
active: false, active: false,
@ -201,7 +200,7 @@ export default class CharacterSheet extends DaggerheartSheet(ActorSheetV2) {
group: 'secondary', group: 'secondary',
id: 'vault', id: 'vault',
icon: null, icon: null,
label: game.i18n.localize('DAGGERHEART.Sheets.PC.Tabs.Vault') label: game.i18n.localize('DAGGERHEART.GENERAL.Tabs.vault')
} }
}; };
@ -231,7 +230,7 @@ export default class CharacterSheet extends DaggerheartSheet(ActorSheetV2) {
_createContextMenues() { _createContextMenues() {
const allOptions = { const allOptions = {
useItem: { useItem: {
name: 'DAGGERHEART.Sheets.PC.ContextMenu.UseItem', name: 'DAGGERHEART.GENERAL.use',
icon: '<i class="fa-solid fa-burst"></i>', icon: '<i class="fa-solid fa-burst"></i>',
condition: el => { condition: el => {
const item = this.getItem(el); const item = this.getItem(el);
@ -240,7 +239,7 @@ export default class CharacterSheet extends DaggerheartSheet(ActorSheetV2) {
callback: (button, event) => this.constructor.useItem.bind(this)(event, button) callback: (button, event) => this.constructor.useItem.bind(this)(event, button)
}, },
equip: { equip: {
name: 'DAGGERHEART.Sheets.PC.ContextMenu.Equip', name: 'DAGGERHEART.ACTORS.Character.contextMenu.equip',
icon: '<i class="fa-solid fa-hands"></i>', icon: '<i class="fa-solid fa-hands"></i>',
condition: el => { condition: el => {
const item = this.getItem(el); const item = this.getItem(el);
@ -249,7 +248,7 @@ export default class CharacterSheet extends DaggerheartSheet(ActorSheetV2) {
callback: this.constructor.toggleEquipItem.bind(this) callback: this.constructor.toggleEquipItem.bind(this)
}, },
unequip: { unequip: {
name: 'DAGGERHEART.Sheets.PC.ContextMenu.Unequip', name: 'DAGGERHEART.ACTORS.Character.contextMenu.unequip',
icon: '<i class="fa-solid fa-hands"></i>', icon: '<i class="fa-solid fa-hands"></i>',
condition: el => { condition: el => {
const item = this.getItem(el); const item = this.getItem(el);
@ -258,7 +257,7 @@ export default class CharacterSheet extends DaggerheartSheet(ActorSheetV2) {
callback: this.constructor.toggleEquipItem.bind(this) callback: this.constructor.toggleEquipItem.bind(this)
}, },
sendToLoadout: { sendToLoadout: {
name: 'DAGGERHEART.Sheets.PC.ContextMenu.ToLoadout', name: 'DAGGERHEART.ACTORS.Character.contextMenu.toLoadout',
icon: '<i class="fa-solid fa-arrow-up"></i>', icon: '<i class="fa-solid fa-arrow-up"></i>',
condition: el => { condition: el => {
const item = this.getItem(el); const item = this.getItem(el);
@ -267,7 +266,7 @@ export default class CharacterSheet extends DaggerheartSheet(ActorSheetV2) {
callback: this.constructor.toggleVault.bind(this) callback: this.constructor.toggleVault.bind(this)
}, },
sendToVault: { sendToVault: {
name: 'DAGGERHEART.Sheets.PC.ContextMenu.ToVault', name: 'DAGGERHEART.ACTORS.Character.contextMenu.toVault',
icon: '<i class="fa-solid fa-arrow-down"></i>', icon: '<i class="fa-solid fa-arrow-down"></i>',
condition: el => { condition: el => {
const item = this.getItem(el); const item = this.getItem(el);
@ -276,17 +275,17 @@ export default class CharacterSheet extends DaggerheartSheet(ActorSheetV2) {
callback: this.constructor.toggleVault.bind(this) callback: this.constructor.toggleVault.bind(this)
}, },
sendToChat: { sendToChat: {
name: 'DAGGERHEART.Sheets.PC.ContextMenu.SendToChat', name: 'DAGGERHEART.ACTORS.Character.contextMenu.sendToChat',
icon: '<i class="fa-regular fa-message"></i>', icon: '<i class="fa-regular fa-message"></i>',
callback: this.constructor.toChat.bind(this) callback: this.constructor.toChat.bind(this)
}, },
edit: { edit: {
name: 'DAGGERHEART.Sheets.PC.ContextMenu.Edit', name: 'CONTROLS.CommonEdit',
icon: '<i class="fa-solid fa-pen-to-square"></i>', icon: '<i class="fa-solid fa-pen-to-square"></i>',
callback: this.constructor.viewObject.bind(this) callback: this.constructor.viewObject.bind(this)
}, },
delete: { delete: {
name: 'DAGGERHEART.Sheets.PC.ContextMenu.Delete', name: 'CONTROLS.CommonDelete',
icon: '<i class="fa-solid fa-trash"></i>', icon: '<i class="fa-solid fa-trash"></i>',
callback: this.constructor.deleteItem.bind(this) callback: this.constructor.deleteItem.bind(this)
} }
@ -350,11 +349,11 @@ export default class CharacterSheet extends DaggerheartSheet(ActorSheetV2) {
context.inventory = { context.inventory = {
currency: { currency: {
title: game.i18n.localize('DAGGERHEART.Sheets.PC.Gold.Title'), title: game.i18n.localize('DAGGERHEART.CONFIG.Gold.title'),
coins: game.i18n.localize('DAGGERHEART.Sheets.PC.Gold.Coins'), coins: game.i18n.localize('DAGGERHEART.CONFIG.Gold.coins'),
handfulls: game.i18n.localize('DAGGERHEART.Sheets.PC.Gold.Handfulls'), handfulls: game.i18n.localize('DAGGERHEART.CONFIG.Gold.handfulls'),
bags: game.i18n.localize('DAGGERHEART.Sheets.PC.Gold.Bags'), bags: game.i18n.localize('DAGGERHEART.CONFIG.Gold.bags'),
chests: game.i18n.localize('DAGGERHEART.Sheets.PC.Gold.Chests') chests: game.i18n.localize('DAGGERHEART.CONFIG.Gold.chests')
} }
}; };
@ -494,8 +493,10 @@ export default class CharacterSheet extends DaggerheartSheet(ActorSheetV2) {
const abilityLabel = game.i18n.localize(abilities[button.dataset.attribute].label); const abilityLabel = game.i18n.localize(abilities[button.dataset.attribute].label);
const config = { const config = {
event: event, event: event,
title: `${game.i18n.localize('DAGGERHEART.General.dualityRoll')}: ${this.actor.name}`, title: `${game.i18n.localize('DAGGERHEART.GENERAL.dualityRoll')}: ${this.actor.name}`,
headerTitle: game.i18n.format('DAGGERHEART.Chat.DualityRoll.AbilityCheckTitle', { ability: abilityLabel }), headerTitle: game.i18n.format('DAGGERHEART.UI.Chat.dualityRoll.abilitychecktitle', {
ability: abilityLabel
}),
roll: { roll: {
trait: button.dataset.attribute trait: button.dataset.attribute
} }
@ -604,7 +605,7 @@ export default class CharacterSheet extends DaggerheartSheet(ActorSheetV2) {
const abilityLabel = game.i18n.localize(abilities[button.dataset.attribute].label); const abilityLabel = game.i18n.localize(abilities[button.dataset.attribute].label);
const config = { const config = {
event: event, event: event,
title: game.i18n.format('DAGGERHEART.Chat.DualityRoll.AbilityCheckTitle', { ability: abilityLabel }), title: game.i18n.format('DAGGERHEART.UI.Chat.dualityRoll.abilitychecktitle', { ability: abilityLabel }),
roll: { roll: {
trait: button.dataset.attribute trait: button.dataset.attribute
} }
@ -681,7 +682,7 @@ export default class CharacterSheet extends DaggerheartSheet(ActorSheetV2) {
openLevelUp() { openLevelUp() {
if (!this.document.system.class.value || !this.document.system.class.subclass) { if (!this.document.system.class.value || !this.document.system.class.subclass) {
ui.notifications.error(game.i18n.localize('DAGGERHEART.Sheets.PC.Errors.missingClassOrSubclass')); ui.notifications.error(game.i18n.localize('DAGGERHEART.UI.Notifications.missingClassOrSubclass'));
return; return;
} }
@ -694,7 +695,7 @@ export default class CharacterSheet extends DaggerheartSheet(ActorSheetV2) {
const cls = getDocumentClass('ChatMessage'); const cls = getDocumentClass('ChatMessage');
const systemData = { const systemData = {
title: `${game.i18n.localize('DAGGERHEART.Chat.DomainCard.Title')} - ${capitalize(button.dataset.domain)}`, title: `${game.i18n.localize('DAGGERHEART.UI.Chat.domainCard.title')} - ${capitalize(button.dataset.domain)}`,
origin: this.document.id, origin: this.document.id,
img: card.img, img: card.img,
name: card.name, name: card.name,
@ -773,17 +774,6 @@ export default class CharacterSheet extends DaggerheartSheet(ActorSheetV2) {
await this.minimize(); await this.minimize();
} }
static async addScar() {
if (this.document.system.story.scars.length === 5) return;
await this.document.update({
'system.story.scars': [
...this.document.system.story.scars,
{ name: game.i18n.localize('DAGGERHEART.Sheets.PC.NewScar'), description: '' }
]
});
}
static async deleteScar(event, button) { static async deleteScar(event, button) {
event.stopPropagation(); event.stopPropagation();
await this.document.update({ await this.document.update({
@ -823,7 +813,7 @@ export default class CharacterSheet extends DaggerheartSheet(ActorSheetV2) {
const cls = getDocumentClass('ChatMessage'); const cls = getDocumentClass('ChatMessage');
const systemData = { const systemData = {
title: game.i18n.localize('DAGGERHEART.Chat.FeatureTitle'), title: game.i18n.localize('DAGGERHEART.UI.Chat.featureTitle'),
origin: this.document.id, origin: this.document.id,
img: item.img, img: item.img,
name: item.name, name: item.name,
@ -848,7 +838,7 @@ export default class CharacterSheet extends DaggerheartSheet(ActorSheetV2) {
const experience = this.document.system.experiences[button.dataset.uuid]; const experience = this.document.system.experiences[button.dataset.uuid];
const cls = getDocumentClass('ChatMessage'); const cls = getDocumentClass('ChatMessage');
const systemData = { const systemData = {
name: game.i18n.localize('DAGGERHEART.General.Experience.Single'), name: game.i18n.localize('DAGGERHEART.GENERAL.Experience.single'),
description: `${experience.name} ${experience.total < 0 ? experience.total : `+${experience.total}`}` description: `${experience.name} ${experience.total < 0 ? experience.total : `+${experience.total}`}`
}; };
const msg = new cls({ const msg = new cls({
@ -876,12 +866,12 @@ export default class CharacterSheet extends DaggerheartSheet(ActorSheetV2) {
: this.document.system.class.subclass; : this.document.system.class.subclass;
const ability = item.system[`${button.dataset.key}Feature`]; const ability = item.system[`${button.dataset.key}Feature`];
const title = `${item.name} - ${game.i18n.localize( const title = `${item.name} - ${game.i18n.localize(
`DAGGERHEART.Sheets.PC.DomainCard.${capitalize(button.dataset.key)}Title` `DAGGERHEART.ITEMS.DomainCard.${capitalize(button.dataset.key)}Title`
)}`; )}`;
const cls = getDocumentClass('ChatMessage'); const cls = getDocumentClass('ChatMessage');
const systemData = { const systemData = {
title: game.i18n.localize('DAGGERHEART.Chat.FoundationCard.SubclassFeatureTitle'), title: game.i18n.localize('DAGGERHEART.UI.Chat.foundationCard.subclassFeatureTitle'),
origin: this.document.id, origin: this.document.id,
name: title, name: title,
img: item.img, img: item.img,
@ -905,7 +895,7 @@ export default class CharacterSheet extends DaggerheartSheet(ActorSheetV2) {
const cls = getDocumentClass('ChatMessage'); const cls = getDocumentClass('ChatMessage');
const systemData = { const systemData = {
title: game.i18n.localize('DAGGERHEART.Chat.FoundationCard.SubclassFeatureTitle'), title: game.i18n.localize('DAGGERHEART.UI.Chat.foundationCard.subclassFeatureTitle'),
origin: this.document.id, origin: this.document.id,
name: item.name, name: item.name,
img: item.img, img: item.img,

View file

@ -33,7 +33,7 @@ export default class DhCompanionSheet extends DaggerheartSheet(ActorSheetV2) {
group: 'primary', group: 'primary',
id: 'details', id: 'details',
icon: null, icon: null,
label: 'DAGGERHEART.General.tabs.details' label: 'DAGGERHEART.GENERAL.Tabs.details'
}, },
effects: { effects: {
active: false, active: false,
@ -41,7 +41,7 @@ export default class DhCompanionSheet extends DaggerheartSheet(ActorSheetV2) {
group: 'primary', group: 'primary',
id: 'effects', id: 'effects',
icon: null, icon: null,
label: 'DAGGERHEART.Sheets.PC.Tabs.effects' label: 'DAGGERHEART.GENERAL.Tabs.effects'
} }
}; };
@ -82,7 +82,7 @@ export default class DhCompanionSheet extends DaggerheartSheet(ActorSheetV2) {
const experience = this.document.system.experiences[button.dataset.uuid]; const experience = this.document.system.experiences[button.dataset.uuid];
const cls = getDocumentClass('ChatMessage'); const cls = getDocumentClass('ChatMessage');
const systemData = { const systemData = {
name: game.i18n.localize('DAGGERHEART.General.Experience.Single'), name: game.i18n.localize('DAGGERHEART.GENERAL.Experience.single'),
description: `${experience.name} ${experience.total < 0 ? experience.total : `+${experience.total}`}` description: `${experience.name} ${experience.total < 0 ? experience.total : `+${experience.total}`}`
}; };
const msg = new cls({ const msg = new cls({

View file

@ -40,7 +40,7 @@ export default class DhpEnvironment extends DaggerheartSheet(ActorSheetV2) {
group: 'primary', group: 'primary',
id: 'features', id: 'features',
icon: null, icon: null,
label: 'DAGGERHEART.General.tabs.features' label: 'DAGGERHEART.GENERAL.Tabs.features'
}, },
potentialAdversaries: { potentialAdversaries: {
active: false, active: false,
@ -48,7 +48,7 @@ export default class DhpEnvironment extends DaggerheartSheet(ActorSheetV2) {
group: 'primary', group: 'primary',
id: 'potentialAdversaries', id: 'potentialAdversaries',
icon: null, icon: null,
label: 'DAGGERHEART.General.tabs.potentialAdversaries' label: 'DAGGERHEART.GENERAL.Tabs.potentialAdversaries'
}, },
notes: { notes: {
active: false, active: false,
@ -56,7 +56,7 @@ export default class DhpEnvironment extends DaggerheartSheet(ActorSheetV2) {
group: 'primary', group: 'primary',
id: 'notes', id: 'notes',
icon: null, icon: null,
label: 'DAGGERHEART.Sheets.Adversary.Tabs.notes' label: 'DAGGERHEART.GENERAL.Tabs.notes'
} }
}; };
@ -91,7 +91,7 @@ export default class DhpEnvironment extends DaggerheartSheet(ActorSheetV2) {
static async addAdversary() { static async addAdversary() {
await this.document.update({ await this.document.update({
[`system.potentialAdversaries.${foundry.utils.randomID()}.label`]: game.i18n.localize( [`system.potentialAdversaries.${foundry.utils.randomID()}.label`]: game.i18n.localize(
'DAGGERHEART.Sheets.Environment.newAdversary' 'DAGGERHEART.ACTORS.Environment.newAdversary'
) )
}); });
this.render(); this.render();
@ -106,7 +106,7 @@ export default class DhpEnvironment extends DaggerheartSheet(ActorSheetV2) {
const target = button.closest('[data-item-uuid]'); const target = button.closest('[data-item-uuid]');
const adversary = await foundry.utils.fromUuid(target.dataset.itemUuid); const adversary = await foundry.utils.fromUuid(target.dataset.itemUuid);
if (!adversary) { if (!adversary) {
ui.notifications.warn(game.i18n.localize('DAGGERHEART.UI.notifications.adversaryMissing')); ui.notifications.warn(game.i18n.localize('DAGGERHEART.UI.Notifications.adversaryMissing'));
return; return;
} }

View file

@ -37,7 +37,7 @@ export default class DHBaseItemSheet extends DHApplicationMixin(ItemSheetV2) {
primary: { primary: {
tabs: [{ id: 'description' }, { id: 'actions' }, { id: 'settings' }], tabs: [{ id: 'description' }, { id: 'actions' }, { id: 'settings' }],
initial: 'description', initial: 'description',
labelPrefix: 'DAGGERHEART.Sheets.TABS' labelPrefix: 'DAGGERHEART.GENERAL.Tabs'
} }
}; };

View file

@ -25,7 +25,7 @@ export default class DHHeritageSheet extends DHBaseItemSheet {
primary: { primary: {
tabs: [{ id: 'description' }, { id: 'features' }, { id: 'effects' }], tabs: [{ id: 'description' }, { id: 'features' }, { id: 'effects' }],
initial: 'description', initial: 'description',
labelPrefix: 'DAGGERHEART.Sheets.TABS' labelPrefix: 'DAGGERHEART.GENERAL.Tabs'
} }
}; };
} }

View file

@ -25,7 +25,7 @@ export default class BeastformSheet extends DHBaseItemSheet {
primary: { primary: {
tabs: [{ id: 'settings' }, { id: 'features' }, { id: 'effects' }], tabs: [{ id: 'settings' }, { id: 'features' }, { id: 'effects' }],
initial: 'settings', initial: 'settings',
labelPrefix: 'DAGGERHEART.Sheets.TABS' labelPrefix: 'DAGGERHEART.GENERAL.Tabs'
} }
}; };

View file

@ -54,7 +54,7 @@ export default class ClassSheet extends DHBaseItemSheet {
primary: { primary: {
tabs: [{ id: 'description' }, { id: 'features' }, { id: 'settings' }], tabs: [{ id: 'description' }, { id: 'features' }, { id: 'settings' }],
initial: 'description', initial: 'description',
labelPrefix: 'DAGGERHEART.Sheets.TABS' labelPrefix: 'DAGGERHEART.GENERAL.Tabs'
} }
}; };

View file

@ -12,7 +12,7 @@ export default class DomainCardSheet extends DHBaseItemSheet {
primary: { primary: {
tabs: [{ id: 'description' }, { id: 'actions' }, { id: 'settings' }, { id: 'effects' }], tabs: [{ id: 'description' }, { id: 'actions' }, { id: 'settings' }, { id: 'effects' }],
initial: 'description', initial: 'description',
labelPrefix: 'DAGGERHEART.Sheets.TABS' labelPrefix: 'DAGGERHEART.GENERAL.Tabs'
} }
}; };

View file

@ -36,7 +36,7 @@ export default class FeatureSheet extends DHBaseItemSheet {
primary: { primary: {
tabs: [{ id: 'description' }, { id: 'actions' }, { id: 'effects' }], tabs: [{ id: 'description' }, { id: 'actions' }, { id: 'effects' }],
initial: 'description', initial: 'description',
labelPrefix: 'DAGGERHEART.Sheets.TABS' labelPrefix: 'DAGGERHEART.GENERAL.Tabs'
} }
}; };

View file

@ -33,7 +33,7 @@ export default class SubclassSheet extends DHBaseItemSheet {
primary: { primary: {
tabs: [{ id: 'description' }, { id: 'features' }, { id: 'settings' }], tabs: [{ id: 'description' }, { id: 'features' }, { id: 'settings' }],
initial: 'description', initial: 'description',
labelPrefix: 'DAGGERHEART.Sheets.TABS' labelPrefix: 'DAGGERHEART.GENERAL.Tabs'
} }
}; };

View file

@ -137,7 +137,7 @@ export default class DhpChatLog extends foundry.applications.sidebar.tabs.ChatLo
if (!action || !action?.applyEffects) return; if (!action || !action?.applyEffects) return;
const { isHit, targets } = this.getTargetList(event, message); const { isHit, targets } = this.getTargetList(event, message);
if (targets.length === 0) if (targets.length === 0)
ui.notifications.info(game.i18n.localize('DAGGERHEART.Notification.Info.NoTargetsSelected')); ui.notifications.info(game.i18n.localize('DAGGERHEART.UI.Notifications.noTargetsSelected'));
await action.applyEffects(event, message, targets); await action.applyEffects(event, message, targets);
} }
}; };
@ -148,7 +148,7 @@ export default class DhpChatLog extends foundry.applications.sidebar.tabs.ChatLo
msg = ui.chat.collection.get(message._id); msg = ui.chat.collection.get(message._id);
if (msg.system.targetSelection === targetSelection) return; if (msg.system.targetSelection === targetSelection) return;
if (targetSelection !== true && !Array.from(game.user.targets).length) if (targetSelection !== true && !Array.from(game.user.targets).length)
return ui.notifications.info(game.i18n.localize('DAGGERHEART.Notification.Info.NoTargetsSelected')); return ui.notifications.info(game.i18n.localize('DAGGERHEART.UI.Notifications.noTargetsSelected'));
msg.system.targetSelection = targetSelection; msg.system.targetSelection = targetSelection;
msg.system.prepareDerivedData(); msg.system.prepareDerivedData();
ui.chat.updateMessage(msg); ui.chat.updateMessage(msg);
@ -182,7 +182,7 @@ export default class DhpChatLog extends foundry.applications.sidebar.tabs.ChatLo
event.stopPropagation(); event.stopPropagation();
const token = canvas.tokens.get(event.currentTarget.dataset.token); const token = canvas.tokens.get(event.currentTarget.dataset.token);
if (!token) { if (!token) {
ui.notifications.info(game.i18n.localize('DAGGERHEART.Notification.Info.AttackTargetDoesNotExist')); ui.notifications.info(game.i18n.localize('DAGGERHEART.UI.Notifications.attackTargetDoesNotExist'));
return; return;
} }
@ -207,7 +207,7 @@ export default class DhpChatLog extends foundry.applications.sidebar.tabs.ChatLo
} }
if (targets.length === 0) if (targets.length === 0)
ui.notifications.info(game.i18n.localize('DAGGERHEART.Notification.Info.NoTargetsSelected')); ui.notifications.info(game.i18n.localize('DAGGERHEART.UI.Notifications.noTargetsSelected'));
for (let target of targets) { for (let target of targets) {
let damage = message.system.roll.total; let damage = message.system.roll.total;
if (message.system.onSave && message.system.targets.find(t => t.id === target.id)?.saved?.success === true) if (message.system.onSave && message.system.targets.find(t => t.id === target.id)?.saved?.success === true)
@ -222,7 +222,7 @@ export default class DhpChatLog extends foundry.applications.sidebar.tabs.ChatLo
const targets = Array.from(game.user.targets); const targets = Array.from(game.user.targets);
if (targets.length === 0) if (targets.length === 0)
ui.notifications.info(game.i18n.localize('DAGGERHEART.Notification.Info.NoTargetsSelected')); ui.notifications.info(game.i18n.localize('DAGGERHEART.UI.Notifications.noTargetsSelected'));
for (var target of targets) { for (var target of targets) {
await target.actor.takeHealing([{ value: message.system.roll.total, type: message.system.roll.type }]); await target.actor.takeHealing([{ value: message.system.roll.total, type: message.system.roll.type }]);

View file

@ -13,8 +13,8 @@ class Countdowns extends HandlebarsApplicationMixin(ApplicationV2) {
} }
get title() { get title() {
return game.i18n.format('DAGGERHEART.Countdown.Title', { return game.i18n.format('DAGGERHEART.APPLICATIONS.Countdown.Title', {
type: game.i18n.localize(`DAGGERHEART.Countdown.Types.${this.basePath}`) type: game.i18n.localize(`DAGGERHEART.APPLICATIONS.Countdown.types.${this.basePath}`)
}); });
} }
@ -78,7 +78,7 @@ class Countdowns extends HandlebarsApplicationMixin(ApplicationV2) {
const button = constructHTMLButton({ const button = constructHTMLButton({
label: '', label: '',
classes: ['header-control', 'icon', 'fa-solid', 'fa-wrench'], classes: ['header-control', 'icon', 'fa-solid', 'fa-wrench'],
dataset: { action: 'toggleSimpleView', tooltip: 'DAGGERHEART.Countdown.ToggleSimple' } dataset: { action: 'toggleSimpleView', tooltip: 'DAGGERHEART.APPLICATIONS.Countdown.toggleSimple' }
}); });
this.window.controls.after(button); this.window.controls.after(button);
} }
@ -265,7 +265,7 @@ class Countdowns extends HandlebarsApplicationMixin(ApplicationV2) {
const countdownSetting = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Countdowns); const countdownSetting = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Countdowns);
await countdownSetting.updateSource({ await countdownSetting.updateSource({
[`${this.basePath}.countdowns.${foundry.utils.randomID()}`]: { [`${this.basePath}.countdowns.${foundry.utils.randomID()}`]: {
name: game.i18n.localize('DAGGERHEART.Countdown.NewCountdown'), name: game.i18n.localize('DAGGERHEART.APPLICATIONS.Countdown.newCountdown'),
ownership: game.user.isGM ownership: game.user.isGM
? {} ? {}
: { : {
@ -285,9 +285,9 @@ class Countdowns extends HandlebarsApplicationMixin(ApplicationV2) {
const confirmed = await foundry.applications.api.DialogV2.confirm({ const confirmed = await foundry.applications.api.DialogV2.confirm({
window: { window: {
title: game.i18n.localize('DAGGERHEART.Countdown.RemoveCountdownTitle') title: game.i18n.localize('DAGGERHEART.APPLICATIONS.Countdown.removeCountdownTitle')
}, },
content: game.i18n.format('DAGGERHEART.Countdown.RemoveCountdownText', { name: countdownName }) content: game.i18n.format('DAGGERHEART.APPLICATIONS.Countdown.removeCountdownText', { name: countdownName })
}); });
if (!confirmed) return; if (!confirmed) return;

View file

@ -178,7 +178,7 @@ export default class FilterMenu extends foundry.applications.ux.ContextMenu {
})); }));
const burdenFilter = Object.values(CONFIG.DH.GENERAL.burden).map(({ value, label }) => ({ const burdenFilter = Object.values(CONFIG.DH.GENERAL.burden).map(({ value, label }) => ({
group: game.i18n.localize('DAGGERHEART.Sheets.Weapon.Burden'), group: game.i18n.localize('DAGGERHEART.GENERAL.burden'),
name: game.i18n.localize(label), name: game.i18n.localize(label),
filter: { filter: {
field: 'system.burden', field: 'system.burden',
@ -220,7 +220,7 @@ export default class FilterMenu extends foundry.applications.ux.ContextMenu {
})); }));
const domainFilter = Object.values(CONFIG.DH.DOMAIN.domains).map(({ id, label }) => ({ const domainFilter = Object.values(CONFIG.DH.DOMAIN.domains).map(({ id, label }) => ({
group: game.i18n.localize('DAGGERHEART.Sheets.DomainCard.Domain'), group: game.i18n.localize('DAGGERHEART.GENERAL.Domain.single'),
name: game.i18n.localize(label), name: game.i18n.localize(label),
filter: { filter: {
field: 'system.domain', field: 'system.domain',

View file

@ -18,19 +18,19 @@ export default class DhMeasuredTemplate extends foundry.canvas.placeables.Measur
static getDistanceLabel(distance, settings) { static getDistanceLabel(distance, settings) {
if (distance <= settings.melee) { if (distance <= settings.melee) {
return game.i18n.localize('DAGGERHEART.Range.melee.name'); return game.i18n.localize('DAGGERHEART.CONFIG.Range.melee.name');
} }
if (distance <= settings.veryClose) { if (distance <= settings.veryClose) {
return game.i18n.localize('DAGGERHEART.Range.veryClose.name'); return game.i18n.localize('DAGGERHEART.CONFIG.Range.veryClose.name');
} }
if (distance <= settings.close) { if (distance <= settings.close) {
return game.i18n.localize('DAGGERHEART.Range.close.name'); return game.i18n.localize('DAGGERHEART.CONFIG.Range.close.name');
} }
if (distance <= settings.far) { if (distance <= settings.far) {
return game.i18n.localize('DAGGERHEART.Range.far.name'); return game.i18n.localize('DAGGERHEART.CONFIG.Range.far.name');
} }
if (distance <= settings.veryFar) { if (distance <= settings.veryFar) {
return game.i18n.localize('DAGGERHEART.Range.veryFar.name'); return game.i18n.localize('DAGGERHEART.CONFIG.Range.veryFar.name');
} }
return ''; return '';

View file

@ -1,47 +1,37 @@
export const actionTypes = { export const actionTypes = {
attack: { attack: {
id: 'attack', id: 'attack',
name: 'DAGGERHEART.Actions.Types.attack.name', name: 'DAGGERHEART.ACTIONS.TYPES.attack.name',
icon: 'fa-swords' icon: 'fa-swords'
}, },
// spellcast: {
// id: 'spellcast',
// name: 'DAGGERHEART.Actions.Types.spellcast.name',
// icon: 'fa-book-sparkles'
// },
healing: { healing: {
id: 'healing', id: 'healing',
name: 'DAGGERHEART.Actions.Types.healing.name', name: 'DAGGERHEART.ACTIONS.TYPES.healing.name',
icon: 'fa-kit-medical' icon: 'fa-kit-medical'
}, },
// resource: {
// id: 'resource',
// name: 'DAGGERHEART.Actions.Types.resource.name',
// icon: 'fa-honey-pot'
// },
damage: { damage: {
id: 'damage', id: 'damage',
name: 'DAGGERHEART.Actions.Types.damage.name', name: 'DAGGERHEART.ACTIONS.TYPES.damage.name',
icon: 'fa-bone-break' icon: 'fa-bone-break'
}, },
summon: { summon: {
id: 'summon', id: 'summon',
name: 'DAGGERHEART.Actions.Types.summon.name', name: 'DAGGERHEART.ACTIONS.TYPES.summon.name',
icon: 'fa-ghost' icon: 'fa-ghost'
}, },
effect: { effect: {
id: 'effect', id: 'effect',
name: 'DAGGERHEART.Actions.Types.effect.name', name: 'DAGGERHEART.ACTIONS.TYPES.effect.name',
icon: 'fa-person-rays' icon: 'fa-person-rays'
}, },
macro: { macro: {
id: 'macro', id: 'macro',
name: 'DAGGERHEART.Actions.Types.macro.name', name: 'DAGGERHEART.ACTIONS.TYPES.macro.name',
icon: 'fa-scroll' icon: 'fa-scroll'
}, },
beastform: { beastform: {
id: 'beastform', id: 'beastform',
name: 'DAGGERHEART.Actions.Types.beastform.name', name: 'DAGGERHEART.ACTIONS.TYPES.beastform.name',
icon: 'fa-paw' icon: 'fa-paw'
} }
}; };
@ -113,15 +103,15 @@ export const diceCompare = {
export const advandtageState = { export const advandtageState = {
disadvantage: { disadvantage: {
label: 'DAGGERHEART.General.Disadvantage.Full', label: 'DAGGERHEART.GENERAL.Disadvantage.full',
value: -1 value: -1
}, },
neutral: { neutral: {
label: 'DAGGERHEART.General.Neutral.Full', label: 'DAGGERHEART.GENERAL.Neutral.full',
value: 0 value: 0
}, },
advantage: { advantage: {
label: 'DAGGERHEART.General.Advantage.Full', label: 'DAGGERHEART.GENERAL.Advantage.full',
value: 1 value: 1
} }
}; };

View file

@ -1,77 +1,77 @@
export const abilities = { export const abilities = {
agility: { agility: {
label: 'DAGGERHEART.Abilities.agility.name', label: 'DAGGERHEART.CONFIG.Traits.agility.name',
verbs: [ verbs: [
'DAGGERHEART.Abilities.agility.verb.sprint', 'DAGGERHEART.CONFIG.Traits.agility.verb.sprint',
'DAGGERHEART.Abilities.agility.verb.leap', 'DAGGERHEART.CONFIG.Traits.agility.verb.leap',
'DAGGERHEART.Abilities.agility.verb.maneuver' 'DAGGERHEART.CONFIG.Traits.agility.verb.maneuver'
] ]
}, },
strength: { strength: {
label: 'DAGGERHEART.Abilities.strength.name', label: 'DAGGERHEART.CONFIG.Traits.strength.name',
verbs: [ verbs: [
'DAGGERHEART.Abilities.strength.verb.lift', 'DAGGERHEART.CONFIG.Traits.strength.verb.lift',
'DAGGERHEART.Abilities.strength.verb.smash', 'DAGGERHEART.CONFIG.Traits.strength.verb.smash',
'DAGGERHEART.Abilities.strength.verb.grapple' 'DAGGERHEART.CONFIG.Traits.strength.verb.grapple'
] ]
}, },
finesse: { finesse: {
label: 'DAGGERHEART.Abilities.finesse.name', label: 'DAGGERHEART.CONFIG.Traits.finesse.name',
verbs: [ verbs: [
'DAGGERHEART.Abilities.finesse.verb.control', 'DAGGERHEART.CONFIG.Traits.finesse.verb.control',
'DAGGERHEART.Abilities.finesse.verb.hide', 'DAGGERHEART.CONFIG.Traits.finesse.verb.hide',
'DAGGERHEART.Abilities.finesse.verb.tinker' 'DAGGERHEART.CONFIG.Traits.finesse.verb.tinker'
] ]
}, },
instinct: { instinct: {
label: 'DAGGERHEART.Abilities.instinct.name', label: 'DAGGERHEART.CONFIG.Traits.instinct.name',
verbs: [ verbs: [
'DAGGERHEART.Abilities.instinct.verb.perceive', 'DAGGERHEART.CONFIG.Traits.instinct.verb.perceive',
'DAGGERHEART.Abilities.instinct.verb.sense', 'DAGGERHEART.CONFIG.Traits.instinct.verb.sense',
'DAGGERHEART.Abilities.instinct.verb.navigate' 'DAGGERHEART.CONFIG.Traits.instinct.verb.navigate'
] ]
}, },
presence: { presence: {
label: 'DAGGERHEART.Abilities.presence.name', label: 'DAGGERHEART.CONFIG.Traits.presence.name',
verbs: [ verbs: [
'DAGGERHEART.Abilities.presence.verb.charm', 'DAGGERHEART.CONFIG.Traits.presence.verb.charm',
'DAGGERHEART.Abilities.presence.verb.perform', 'DAGGERHEART.CONFIG.Traits.presence.verb.perform',
'DAGGERHEART.Abilities.presence.verb.deceive' 'DAGGERHEART.CONFIG.Traits.presence.verb.deceive'
] ]
}, },
knowledge: { knowledge: {
label: 'DAGGERHEART.Abilities.knowledge.name', label: 'DAGGERHEART.CONFIG.Traits.knowledge.name',
verbs: [ verbs: [
'DAGGERHEART.Abilities.knowledge.verb.recall', 'DAGGERHEART.CONFIG.Traits.knowledge.verb.recall',
'DAGGERHEART.Abilities.knowledge.verb.analyze', 'DAGGERHEART.CONFIG.Traits.knowledge.verb.analyze',
'DAGGERHEART.Abilities.knowledge.verb.comprehend' 'DAGGERHEART.CONFIG.Traits.knowledge.verb.comprehend'
] ]
} }
}; };
export const featureProperties = { export const featureProperties = {
agility: { agility: {
name: 'DAGGERHEART.Abilities.agility.name', name: 'DAGGERHEART.CONFIG.Traits.agility.name',
path: actor => actor.system.traits.agility.data.value path: actor => actor.system.traits.agility.data.value
}, },
strength: { strength: {
name: 'DAGGERHEART.Abilities.strength.name', name: 'DAGGERHEART.CONFIG.Traits.strength.name',
path: actor => actor.system.traits.strength.data.value path: actor => actor.system.traits.strength.data.value
}, },
finesse: { finesse: {
name: 'DAGGERHEART.Abilities.finesse.name', name: 'DAGGERHEART.CONFIG.Traits.finesse.name',
path: actor => actor.system.traits.finesse.data.value path: actor => actor.system.traits.finesse.data.value
}, },
instinct: { instinct: {
name: 'DAGGERHEART.Abilities.instinct.name', name: 'DAGGERHEART.CONFIG.Traits.instinct.name',
path: actor => actor.system.traits.instinct.data.value path: actor => actor.system.traits.instinct.data.value
}, },
presence: { presence: {
name: 'DAGGERHEART.Abilities.presence.name', name: 'DAGGERHEART.CONFIG.Traits.presence.name',
path: actor => actor.system.traits.presence.data.value path: actor => actor.system.traits.presence.data.value
}, },
knowledge: { knowledge: {
name: 'DAGGERHEART.Abilities.knowledge.name', name: 'DAGGERHEART.CONFIG.Traits.knowledge.name',
path: actor => actor.system.traits.knowledge.data.value path: actor => actor.system.traits.knowledge.data.value
}, },
spellcastingTrait: { spellcastingTrait: {
@ -83,90 +83,90 @@ export const featureProperties = {
export const adversaryTypes = { export const adversaryTypes = {
bruiser: { bruiser: {
id: 'bruiser', id: 'bruiser',
label: 'DAGGERHEART.Adversary.Type.bruiser.label', label: 'DAGGERHEART.CONFIG.AdversaryType.bruiser.label',
description: 'DAGGERHEART.Adversary.bruiser.description' description: 'DAGGERHEART.ACTORS.Adversary.bruiser.description'
}, },
horde: { horde: {
id: 'horde', id: 'horde',
label: 'DAGGERHEART.Adversary.Type.horde.label', label: 'DAGGERHEART.CONFIG.AdversaryType.horde.label',
description: 'DAGGERHEART.Adversary.horde.description' description: 'DAGGERHEART.ACTORS.Adversary.horde.description'
}, },
leader: { leader: {
id: 'leader', id: 'leader',
label: 'DAGGERHEART.Adversary.Type.leader.label', label: 'DAGGERHEART.CONFIG.AdversaryType.leader.label',
description: 'DAGGERHEART.Adversary.leader.description' description: 'DAGGERHEART.ACTORS.Adversary.leader.description'
}, },
minion: { minion: {
id: 'minion', id: 'minion',
label: 'DAGGERHEART.Adversary.Type.minion.label', label: 'DAGGERHEART.CONFIG.AdversaryType.minion.label',
description: 'DAGGERHEART.Adversary.minion.description' description: 'DAGGERHEART.ACTORS.Adversary.minion.description'
}, },
ranged: { ranged: {
id: 'ranged', id: 'ranged',
label: 'DAGGERHEART.Adversary.Type.ranged.label', label: 'DAGGERHEART.CONFIG.AdversaryType.ranged.label',
description: 'DAGGERHEART.Adversary.ranged.description' description: 'DAGGERHEART.ACTORS.Adversary.ranged.description'
}, },
skulk: { skulk: {
id: 'skulk', id: 'skulk',
label: 'DAGGERHEART.Adversary.Type.skulk.label', label: 'DAGGERHEART.CONFIG.AdversaryType.skulk.label',
description: 'DAGGERHEART.Adversary.skulk.description' description: 'DAGGERHEART.ACTORS.Adversary.skulk.description'
}, },
social: { social: {
id: 'social', id: 'social',
label: 'DAGGERHEART.Adversary.Type.social.label', label: 'DAGGERHEART.CONFIG.AdversaryTypee.social.label',
description: 'DAGGERHEART.Adversary.social.description' description: 'DAGGERHEART.ACTORS.Adversary.social.description'
}, },
solo: { solo: {
id: 'solo', id: 'solo',
label: 'DAGGERHEART.Adversary.Type.solo.label', label: 'DAGGERHEART.CONFIG.AdversaryType.solo.label',
description: 'DAGGERHEART.Adversary.solo.description' description: 'DAGGERHEART.ACTORS.Adversary.solo.description'
}, },
standard: { standard: {
id: 'standard', id: 'standard',
label: 'DAGGERHEART.Adversary.Type.standard.label', label: 'DAGGERHEART.CONFIG.AdversaryType.standard.label',
description: 'DAGGERHEART.Adversary.standard.description' description: 'DAGGERHEART.ACTORS.Adversary.standard.description'
}, },
support: { support: {
id: 'support', id: 'support',
label: 'DAGGERHEART.Adversary.Type.support.label', label: 'DAGGERHEART.CONFIG.AdversaryType.support.label',
description: 'DAGGERHEART.Adversary.support.description' description: 'DAGGERHEART.ACTORS.Adversary.support.description'
} }
}; };
export const environmentTypes = { export const environmentTypes = {
exploration: { exploration: {
label: 'DAGGERHEART.Environment.Type.exploration.label', label: 'DAGGERHEART.CONFIG.EnvironmentType.exploration.label',
description: 'DAGGERHEART.Environment.Type.exploration.description' description: 'DAGGERHEART.CONFIG.EnvironmentType.exploration.description'
}, },
social: { social: {
label: 'DAGGERHEART.Environment.Type.social.label', label: 'DAGGERHEART.CONFIG.EnvironmentType.social.label',
description: 'DAGGERHEART.Environment.Type.social.description' description: 'DAGGERHEART.CONFIG.EnvironmentType.social.description'
}, },
traversal: { traversal: {
label: 'DAGGERHEART.Environment.Type.traversal.label', label: 'DAGGERHEART.CONFIG.EnvironmentType.traversal.label',
description: 'DAGGERHEART.Environment.Type.traversal.description' description: 'DAGGERHEART.CONFIG.EnvironmentType.traversal.description'
}, },
event: { event: {
label: 'DAGGERHEART.Environment.Type.event.label', label: 'DAGGERHEART.CONFIG.EnvironmentType.event.label',
description: 'DAGGERHEART.Environment.Type.event.description' description: 'DAGGERHEART.CONFIG.EnvironmentType.event.description'
} }
}; };
export const adversaryTraits = { export const adversaryTraits = {
relentless: { relentless: {
name: 'DAGGERHEART.Adversary.Trait..Name', name: 'DAGGERHEART.CONFIG.AdversaryTrait.relentless.name',
description: 'DAGGERHEART.Adversary.Trait..Description', description: 'DAGGERHEART.CONFIG.AdversaryTrait.relentless.description',
tip: 'DAGGERHEART.Adversary.Trait..Tip' tip: 'DAGGERHEART.CONFIG.AdversaryTrait.relentless.tip'
}, },
slow: { slow: {
name: 'DAGGERHEART.Adversary.Trait..Name', name: 'DAGGERHEART.CONFIG.AdversaryTrait.slow.name',
description: 'DAGGERHEART.Adversary.Trait..Description', description: 'DAGGERHEART.CONFIG.AdversaryTrait.slow.description',
tip: 'DAGGERHEART.Adversary.Trait..Tip' tip: 'DAGGERHEART.CONFIG.AdversaryTrait.slow.tip'
}, },
minion: { minion: {
name: 'DAGGERHEART.Adversary.Trait..Name', name: 'DAGGERHEART.CONFIG.AdversaryTrait.slow.name',
description: 'DAGGERHEART.Adversary.Trait..Description', description: 'DAGGERHEART.CONFIG.AdversaryTrait.slow.description',
tip: 'DAGGERHEART.Adversary.Trait..Tip' tip: 'DAGGERHEART.CONFIG.AdversaryTrait.slow.tip'
} }
}; };
@ -265,41 +265,41 @@ export const levelupData = {
id: '2_4', id: '2_4',
tier: 1, tier: 1,
levels: [2, 3, 4], levels: [2, 3, 4],
label: 'DAGGERHEART.LevelUp.Tier1.Label', label: 'DAGGERHEART.APPLICATIONS.Levelup.tier1.Label',
info: 'DAGGERHEART.LevelUp.Tier1.InfoLabel', info: 'DAGGERHEART.APPLICATIONS.Levelup.tier1.InfoLabel',
pretext: 'DAGGERHEART.LevelUp.Tier1.Pretext', pretext: 'DAGGERHEART.APPLICATIONS.Levelup.tier1.Pretext',
posttext: 'DAGGERHEART.LevelUp.Tier1.Posttext', posttext: 'DAGGERHEART.APPLICATIONS.Levelup.tier1.Posttext',
choices: { choices: {
[levelChoices.attributes.name]: { [levelChoices.attributes.name]: {
description: 'DAGGERHEART.LevelUp.ChoiceDescriptions.Attributes', description: 'DAGGERHEART.APPLICATIONS.Levelup.choiceDescriptions.attributes',
maxChoices: 3 maxChoices: 3
}, },
[levelChoices.hitPointSlots.name]: { [levelChoices.hitPointSlots.name]: {
description: 'DAGGERHEART.LevelUp.ChoiceDescriptions.HitPointSlots', description: 'DAGGERHEART.APPLICATIONS.Levelup.choiceDescriptions.hitPointSlots',
maxChoices: 1 maxChoices: 1
}, },
[levelChoices.stressSlots.name]: { [levelChoices.stressSlots.name]: {
description: 'DAGGERHEART.LevelUp.ChoiceDescriptions.StressSlots', description: 'DAGGERHEART.APPLICATIONS.Levelup.choiceDescriptions.stressSlots',
maxChoices: 1 maxChoices: 1
}, },
[levelChoices.experiences.name]: { [levelChoices.experiences.name]: {
description: 'DAGGERHEART.LevelUp.ChoiceDescriptions.Experiences', description: 'DAGGERHEART.APPLICATIONS.Levelup.choiceDescriptions.experiences',
maxChoices: 1 maxChoices: 1
}, },
[levelChoices.proficiency.name]: { [levelChoices.proficiency.name]: {
description: 'DAGGERHEART.LevelUp.ChoiceDescriptions.Proficiency', description: 'DAGGERHEART.APPLICATIONS.Levelup.choiceDescriptions.proficiency',
maxChoices: 1 maxChoices: 1
}, },
[levelChoices.armorOrEvasionSlot.name]: { [levelChoices.armorOrEvasionSlot.name]: {
description: 'DAGGERHEART.LevelUp.ChoiceDescriptions.ArmorOrEvasionSlot', description: 'DAGGERHEART.APPLICATIONS.Levelup.choiceDescriptions.armorOrEvasionSlot',
maxChoices: 1 maxChoices: 1
}, },
[levelChoices.majorDamageThreshold2.name]: { [levelChoices.majorDamageThreshold2.name]: {
description: 'DAGGERHEART.LevelUp.ChoiceDescriptions.MajorDamageThreshold2', description: 'DAGGERHEART.APPLICATIONS.Levelup.choiceDescriptions.majorDamageThreshold2',
maxChoices: 1 maxChoices: 1
}, },
[levelChoices.severeDamageThreshold2.name]: { [levelChoices.severeDamageThreshold2.name]: {
description: 'DAGGERHEART.LevelUp.ChoiceDescriptions.SevereDamageThreshold2', description: 'DAGGERHEART.APPLICATIONS.Levelup.choiceDescriptions.severeDamageThreshold2',
maxChoices: 1 maxChoices: 1
} }
} }
@ -308,49 +308,49 @@ export const levelupData = {
id: '5_7', id: '5_7',
tier: 2, tier: 2,
levels: [5, 6, 7], levels: [5, 6, 7],
label: 'DAGGERHEART.LevelUp.Tier2.Label', label: 'DAGGERHEART.APPLICATIONS.Levelup.tier2.Label',
info: 'DAGGERHEART.LevelUp.Tier2.InfoLabel', info: 'DAGGERHEART.APPLICATIONS.Levelup.tier2.InfoLabel',
pretext: 'DAGGERHEART.LevelUp.Tier2.Pretext', pretext: 'DAGGERHEART.APPLICATIONS.Levelup.tier2.Pretext',
posttext: 'DAGGERHEART.LevelUp.Tier2.Posttext', posttext: 'DAGGERHEART.APPLICATIONS.Levelup.tier2.Posttext',
choices: { choices: {
[levelChoices.attributes.name]: { [levelChoices.attributes.name]: {
description: 'DAGGERHEART.LevelUp.ChoiceDescriptions.Attributes', description: 'DAGGERHEART.APPLICATIONS.Levelup.choiceDescriptions.attributes',
maxChoices: 3 maxChoices: 3
}, },
[levelChoices.hitPointSlots.name]: { [levelChoices.hitPointSlots.name]: {
description: 'DAGGERHEART.LevelUp.ChoiceDescriptions.HitPointSlots', description: 'DAGGERHEART.APPLICATIONS.Levelup.choiceDescriptions.hitPointSlots',
maxChoices: 2 maxChoices: 2
}, },
[levelChoices.stressSlots.name]: { [levelChoices.stressSlots.name]: {
description: 'DAGGERHEART.LevelUp.ChoiceDescriptions.StressSlots', description: 'DAGGERHEART.APPLICATIONS.Levelup.choiceDescriptions.stressSlots',
maxChoices: 2 maxChoices: 2
}, },
[levelChoices.experiences.name]: { [levelChoices.experiences.name]: {
description: 'DAGGERHEART.LevelUp.ChoiceDescriptions.Experiences', description: 'DAGGERHEART.APPLICATIONS.Levelup.choiceDescriptions.experiences',
maxChoices: 1 maxChoices: 1
}, },
[levelChoices.proficiency.name]: { [levelChoices.proficiency.name]: {
description: 'DAGGERHEART.LevelUp.ChoiceDescriptions.Proficiency', description: 'DAGGERHEART.APPLICATIONS.Levelup.choiceDescriptions.proficiency',
maxChoices: 2 maxChoices: 2
}, },
[levelChoices.armorOrEvasionSlot.name]: { [levelChoices.armorOrEvasionSlot.name]: {
description: 'DAGGERHEART.LevelUp.ChoiceDescriptions.ArmorOrEvasionSlot', description: 'DAGGERHEART.APPLICATIONS.Levelup.choiceDescriptions.armorOrEvasionSlot',
maxChoices: 2 maxChoices: 2
}, },
[levelChoices.majorDamageThreshold2.name]: { [levelChoices.majorDamageThreshold2.name]: {
description: 'DAGGERHEART.LevelUp.ChoiceDescriptions.MajorDamageThreshold2', description: 'DAGGERHEART.APPLICATIONS.Levelup.choiceDescriptions.majorDamageThreshold2',
maxChoices: 1 maxChoices: 1
}, },
[levelChoices.severeDamageThreshold3.name]: { [levelChoices.severeDamageThreshold3.name]: {
description: 'DAGGERHEART.LevelUp.ChoiceDescriptions.SevereDamageThreshold3', description: 'DAGGERHEART.APPLICATIONS.Levelup.choiceDescriptions.severeDamageThreshold3',
maxChoices: 1 maxChoices: 1
}, },
[levelChoices.subclass.name]: { [levelChoices.subclass.name]: {
description: 'DAGGERHEART.LevelUp.ChoiceDescriptions.Subclass', description: 'DAGGERHEART.APPLICATIONS.Levelup.choiceDescriptions.subclass',
maxChoices: 1 maxChoices: 1
}, },
[levelChoices.multiclass.name]: { [levelChoices.multiclass.name]: {
description: 'DAGGERHEART.LevelUp.ChoiceDescriptions.Multiclass', description: 'DAGGERHEART.APPLICATIONS.Levelup.choiceDescriptions.multiclass',
maxChoices: 1, maxChoices: 1,
cost: 2 cost: 2
} }
@ -360,49 +360,49 @@ export const levelupData = {
id: '8_10', id: '8_10',
tier: 3, tier: 3,
levels: [8, 9, 10], levels: [8, 9, 10],
label: 'DAGGERHEART.LevelUp.Tier3.Label', label: 'DAGGERHEART.APPLICATIONS.Levelup.tier3.Label',
info: 'DAGGERHEART.LevelUp.Tier3.InfoLabel', info: 'DAGGERHEART.APPLICATIONS.Levelup.tier3.InfoLabel',
pretext: 'DAGGERHEART.LevelUp.Tier3.Pretext', pretext: 'DAGGERHEART.APPLICATIONS.Levelup.tier3.Pretext',
posttext: 'DAGGERHEART.LevelUp.Tier3.Posttext', posttext: 'DAGGERHEART.APPLICATIONS.Levelup.tier3.Posttext',
choices: { choices: {
[levelChoices.attributes.name]: { [levelChoices.attributes.name]: {
description: 'DAGGERHEART.LevelUp.ChoiceDescriptions.Attributes', description: 'DAGGERHEART.APPLICATIONS.Levelup.choiceDescriptions.attributes',
maxChoices: 3 maxChoices: 3
}, },
[levelChoices.hitPointSlots.name]: { [levelChoices.hitPointSlots.name]: {
description: 'DAGGERHEART.LevelUp.ChoiceDescriptions.HitPointSlots', description: 'DAGGERHEART.APPLICATIONS.Levelup.choiceDescriptions.hitPointSlots',
maxChoices: 2 maxChoices: 2
}, },
[levelChoices.stressSlots.name]: { [levelChoices.stressSlots.name]: {
description: 'DAGGERHEART.LevelUp.ChoiceDescriptions.StressSlots', description: 'DAGGERHEART.APPLICATIONS.Levelup.choiceDescriptions.stressSlots',
maxChoices: 2 maxChoices: 2
}, },
[levelChoices.experiences.name]: { [levelChoices.experiences.name]: {
description: 'DAGGERHEART.LevelUp.ChoiceDescriptions.Experiences', description: 'DAGGERHEART.APPLICATIONS.Levelup.choiceDescriptions.experiences',
maxChoices: 1 maxChoices: 1
}, },
[levelChoices.proficiency.name]: { [levelChoices.proficiency.name]: {
description: 'DAGGERHEART.LevelUp.ChoiceDescriptions.Proficiency', description: 'DAGGERHEART.APPLICATIONS.Levelup.choiceDescriptions.proficiency',
maxChoices: 2 maxChoices: 2
}, },
[levelChoices.armorOrEvasionSlot.name]: { [levelChoices.armorOrEvasionSlot.name]: {
description: 'DAGGERHEART.LevelUp.ChoiceDescriptions.ArmorOrEvasionSlot', description: 'DAGGERHEART.APPLICATIONS.Levelup.choiceDescriptions.armorOrEvasionSlot',
maxChoices: 2 maxChoices: 2
}, },
[levelChoices.majorDamageThreshold2.name]: { [levelChoices.majorDamageThreshold2.name]: {
description: 'DAGGERHEART.LevelUp.ChoiceDescriptions.MajorDamageThreshold2', description: 'DAGGERHEART.APPLICATIONS.Levelup.choiceDescriptions.majorDamageThreshold2',
maxChoices: 1 maxChoices: 1
}, },
[levelChoices.severeDamageThreshold4.name]: { [levelChoices.severeDamageThreshold4.name]: {
description: 'DAGGERHEART.LevelUp.ChoiceDescriptions.SevereDamageThreshold4', description: 'DAGGERHEART.APPLICATIONS.Levelup.choiceDescriptions.severeDamageThreshold4',
maxChoices: 1 maxChoices: 1
}, },
[levelChoices.subclass.name]: { [levelChoices.subclass.name]: {
description: 'DAGGERHEART.LevelUp.ChoiceDescriptions.Subclass', description: 'DAGGERHEART.APPLICATIONS.Levelup.choiceDescriptions.subclass',
maxChoices: 1 maxChoices: 1
}, },
[levelChoices.multiclass.name]: { [levelChoices.multiclass.name]: {
description: 'DAGGERHEART.LevelUp.ChoiceDescriptions.Multiclass', description: 'DAGGERHEART.APPLICATIONS.Levelup.choiceDescriptions.multiclass',
maxChoices: 1, maxChoices: 1,
cost: 2 cost: 2
} }
@ -411,7 +411,7 @@ export const levelupData = {
}; };
export const subclassFeatureLabels = { export const subclassFeatureLabels = {
1: 'DAGGERHEART.Sheets.PC.DomainCard.FoundationTitle', 1: 'DAGGERHEART.ITEMS.DomainCard.foundation',
2: 'DAGGERHEART.Sheets.PC.DomainCard.SpecializationTitle', 2: 'DAGGERHEART.ITEMS.DomainCard.specializationTitle',
3: 'DAGGERHEART.Sheets.PC.DomainCard.MasteryTitle' 3: 'DAGGERHEART.ITEMS.DomainCard.masteryTitle'
}; };

View file

@ -1,57 +1,57 @@
export const domains = { export const domains = {
arcana: { arcana: {
id: 'arcana', id: 'arcana',
label: 'DAGGERHEART.Domains.arcana.label', label: 'DAGGERHEART.GENERAL.Domain.arcana.label',
src: 'systems/daggerheart/assets/icons/domains/arcana.svg', src: 'systems/daggerheart/assets/icons/domains/arcana.svg',
description: 'DAGGERHEART.Domains.Arcana' description: 'DAGGERHEART.GENERAL.Domain.Arcana'
}, },
blade: { blade: {
id: 'blade', id: 'blade',
label: 'DAGGERHEART.Domains.blade.label', label: 'DAGGERHEART.GENERAL.Domain.blade.label',
src: 'systems/daggerheart/assets/icons/domains/blade.svg', src: 'systems/daggerheart/assets/icons/domains/blade.svg',
description: 'DAGGERHEART.Domains.Blade' description: 'DAGGERHEART.GENERAL.Domain.Blade'
}, },
bone: { bone: {
id: 'bone', id: 'bone',
label: 'DAGGERHEART.Domains.bone.label', label: 'DAGGERHEART.GENERAL.Domain.bone.label',
src: 'systems/daggerheart/assets/icons/domains/bone.svg', src: 'systems/daggerheart/assets/icons/domains/bone.svg',
description: 'DAGGERHEART.Domains.Bone' description: 'DAGGERHEART.GENERAL.Domain.Bone'
}, },
codex: { codex: {
id: 'codex', id: 'codex',
label: 'DAGGERHEART.Domains.codex.label', label: 'DAGGERHEART.GENERAL.Domain.codex.label',
src: 'systems/daggerheart/assets/icons/domains/codex.svg', src: 'systems/daggerheart/assets/icons/domains/codex.svg',
description: 'DAGGERHEART.Domains.Codex' description: 'DAGGERHEART.GENERAL.Domain.Codex'
}, },
grace: { grace: {
id: 'grace', id: 'grace',
label: 'DAGGERHEART.Domains.grace.label', label: 'DAGGERHEART.GENERAL.Domain.grace.label',
src: 'systems/daggerheart/assets/icons/domains/grace.svg', src: 'systems/daggerheart/assets/icons/domains/grace.svg',
description: 'DAGGERHEART.Domains.Grace' description: 'DAGGERHEART.GENERAL.Domain.Grace'
}, },
midnight: { midnight: {
id: 'midnight', id: 'midnight',
label: 'DAGGERHEART.Domains.midnight.label', label: 'DAGGERHEART.GENERAL.Domain.midnight.label',
src: 'systems/daggerheart/assets/icons/domains/midnight.svg', src: 'systems/daggerheart/assets/icons/domains/midnight.svg',
description: 'DAGGERHEART.Domains.Midnight' description: 'DAGGERHEART.GENERAL.Domain.Midnight'
}, },
sage: { sage: {
id: 'sage', id: 'sage',
label: 'DAGGERHEART.Domains.sage.label', label: 'DAGGERHEART.GENERAL.Domain.sage.label',
src: 'systems/daggerheart/assets/icons/domains/sage.svg', src: 'systems/daggerheart/assets/icons/domains/sage.svg',
description: 'DAGGERHEART.Domains.Sage' description: 'DAGGERHEART.GENERAL.Domain.Sage'
}, },
splendor: { splendor: {
id: 'splendor', id: 'splendor',
label: 'DAGGERHEART.Domains.splendor.label', label: 'DAGGERHEART.GENERAL.Domain.splendor.label',
src: 'systems/daggerheart/assets/icons/domains/splendor.svg', src: 'systems/daggerheart/assets/icons/domains/splendor.svg',
description: 'DAGGERHEART.Domains.Splendor' description: 'DAGGERHEART.GENERAL.Domain.Splendor'
}, },
valor: { valor: {
id: 'valor', id: 'valor',
label: 'DAGGERHEART.Domains.valor.label', label: 'DAGGERHEART.GENERAL.Domain.valor.label',
src: 'systems/daggerheart/assets/icons/domains/valor.svg', src: 'systems/daggerheart/assets/icons/domains/valor.svg',
description: 'DAGGERHEART.Domains.Valor' description: 'DAGGERHEART.GENERAL.Domain.Valor'
} }
}; };
@ -84,17 +84,17 @@ export const classMap = {
export const cardTypes = { export const cardTypes = {
ability: { ability: {
id: 'ability', id: 'ability',
label: 'DAGGERHEART.Domain.CardTypes.ability', label: 'DAGGERHEART.CONFIG.DomainCardTypes.ability',
img: '' img: ''
}, },
spell: { spell: {
id: 'spell', id: 'spell',
label: 'DAGGERHEART.Domain.CardTypes.spell', label: 'DAGGERHEART.CONFIG.DomainCardTypes.spell',
img: '' img: ''
}, },
grimoire: { grimoire: {
id: 'grimoire', id: 'grimoire',
label: 'DAGGERHEART.Domain.CardTypes.grimoire', label: 'DAGGERHEART.CONFIG.DomainCardTypes.grimoire',
img: '' img: ''
} }
}; };

View file

@ -21,38 +21,38 @@ export const parseTypes = {
export const applyLocations = { export const applyLocations = {
attackRoll: { attackRoll: {
id: 'attackRoll', id: 'attackRoll',
name: 'DAGGERHEART.Effects.ApplyLocations.AttackRoll.Name' name: 'DAGGERHEART.EFFECTS.ApplyLocations.attackRoll.name'
}, },
damageRoll: { damageRoll: {
id: 'damageRoll', id: 'damageRoll',
name: 'DAGGERHEART.Effects.ApplyLocations.DamageRoll.Name' name: 'DAGGERHEART.EFFECTS.ApplyLocations.damageRoll.name'
} }
}; };
export const effectTypes = { export const effectTypes = {
health: { health: {
id: 'health', id: 'health',
name: 'DAGGERHEART.Effects.Types.Health.Name', name: 'DAGGERHEART.EFFECTS.Types.HitPoints.name',
values: [], values: [],
valueType: valueTypes.numberString.id, valueType: valueTypes.numberString.id,
parseType: parseTypes.number.id parseType: parseTypes.number.id
}, },
stress: { stress: {
id: 'stress', id: 'stress',
name: 'DAGGERHEART.Effects.Types.Stress.Name', name: 'DAGGERHEART.EFFECTS.Types.Stress.name',
valueType: valueTypes.numberString.id, valueType: valueTypes.numberString.id,
parseType: parseTypes.number.id parseType: parseTypes.number.id
}, },
reach: { reach: {
id: 'reach', id: 'reach',
name: 'DAGGERHEART.Effects.Types.Reach.Name', name: 'DAGGERHEART.EFFECTS.Types.Reach.name',
valueType: valueTypes.select.id, valueType: valueTypes.select.id,
parseType: parseTypes.string.id, parseType: parseTypes.string.id,
options: Object.keys(range).map(x => ({ name: range[x].name, value: x })) options: Object.keys(range).map(x => ({ name: range[x].name, value: x }))
}, },
damage: { damage: {
id: 'damage', id: 'damage',
name: 'DAGGERHEART.Effects.Types.Damage.Name', name: 'DAGGERHEART.EFFECTS.Types.Damage.name',
valueType: valueTypes.numberString.id, valueType: valueTypes.numberString.id,
parseType: parseTypes.string.id, parseType: parseTypes.string.id,
appliesOn: applyLocations.damageRoll.id, appliesOn: applyLocations.damageRoll.id,

View file

@ -2,43 +2,43 @@ export const range = {
self: { self: {
id: 'self', id: 'self',
short: 's', short: 's',
label: 'DAGGERHEART.Range.self.name', label: 'DAGGERHEART.CONFIG.Range.self.name',
description: 'DAGGERHEART.Range.self.description', description: 'DAGGERHEART.CONFIG.Range.self.description',
distance: 0 distance: 0
}, },
melee: { melee: {
id: 'melee', id: 'melee',
short: 'm', short: 'm',
label: 'DAGGERHEART.Range.melee.name', label: 'DAGGERHEART.CONFIG.Range.melee.name',
description: 'DAGGERHEART.Range.melee.description', description: 'DAGGERHEART.CONFIG.Range.melee.description',
distance: 1 distance: 1
}, },
veryClose: { veryClose: {
id: 'veryClose', id: 'veryClose',
short: 'vc', short: 'vc',
label: 'DAGGERHEART.Range.veryClose.name', label: 'DAGGERHEART.CONFIG.Range.veryClose.name',
description: 'DAGGERHEART.Range.veryClose.description', description: 'DAGGERHEART.CONFIG.Range.veryClose.description',
distance: 3 distance: 3
}, },
close: { close: {
id: 'close', id: 'close',
short: 'c', short: 'c',
label: 'DAGGERHEART.Range.close.name', label: 'DAGGERHEART.CONFIG.Range.close.name',
description: 'DAGGERHEART.Range.close.description', description: 'DAGGERHEART.CONFIG.Range.close.description',
distance: 10 distance: 10
}, },
far: { far: {
id: 'far', id: 'far',
short: 'f', short: 'f',
label: 'DAGGERHEART.Range.far.name', label: 'DAGGERHEART.CONFIG.Range.far.name',
description: 'DAGGERHEART.Range.far.description', description: 'DAGGERHEART.CONFIG.Range.far.description',
distance: 20 distance: 20
}, },
veryFar: { veryFar: {
id: 'veryFar', id: 'veryFar',
short: 'vf', short: 'vf',
label: 'DAGGERHEART.Range.veryFar.name', label: 'DAGGERHEART.CONFIG.Range.veryFar.name',
description: 'DAGGERHEART.Range.veryFar.description', description: 'DAGGERHEART.CONFIG.Range.veryFar.description',
distance: 30 distance: 30
} }
}; };
@ -46,68 +46,68 @@ export const range = {
export const burden = { export const burden = {
oneHanded: { oneHanded: {
value: 'oneHanded', value: 'oneHanded',
label: 'DAGGERHEART.Burden.oneHanded' label: 'DAGGERHEART.CONFIG.Burden.oneHanded'
}, },
twoHanded: { twoHanded: {
value: 'twoHanded', value: 'twoHanded',
label: 'DAGGERHEART.Burden.twoHanded' label: 'DAGGERHEART.CONFIG.Burden.twoHanded'
} }
}; };
export const damageTypes = { export const damageTypes = {
physical: { physical: {
id: 'physical', id: 'physical',
label: 'DAGGERHEART.DamageType.physical.name', label: 'DAGGERHEART.CONFIG.DamageType.physical.name',
abbreviation: 'DAGGERHEART.DamageType.physical.abbreviation' abbreviation: 'DAGGERHEART.CONFIG.DamageType.physical.abbreviation'
}, },
magical: { magical: {
id: 'magical', id: 'magical',
label: 'DAGGERHEART.DamageType.magical.name', label: 'DAGGERHEART.CONFIG.DamageType.magical.name',
abbreviation: 'DAGGERHEART.DamageType.magical.abbreviation' abbreviation: 'DAGGERHEART.CONFIG.DamageType.magical.abbreviation'
} }
}; };
export const healingTypes = { export const healingTypes = {
hitPoints: { hitPoints: {
id: 'hitPoints', id: 'hitPoints',
label: 'DAGGERHEART.HealingType.HitPoints.Name', label: 'DAGGERHEART.CONFIG.HealingType.hitPoints.name',
abbreviation: 'DAGGERHEART.HealingType.HitPoints.Abbreviation' abbreviation: 'DAGGERHEART.CONFIG.HealingType.hitPoints.abbreviation'
}, },
stress: { stress: {
id: 'stress', id: 'stress',
label: 'DAGGERHEART.HealingType.Stress.Name', label: 'DAGGERHEART.CONFIG.HealingType.stress.name',
abbreviation: 'DAGGERHEART.HealingType.Stress.Abbreviation' abbreviation: 'DAGGERHEART.CONFIG.HealingType.stress.abbreviation'
}, },
hope: { hope: {
id: 'hope', id: 'hope',
label: 'DAGGERHEART.HealingType.Hope.Name', label: 'DAGGERHEART.CONFIG.HealingType.hope.name',
abbreviation: 'DAGGERHEART.HealingType.Hope.Abbreviation' abbreviation: 'DAGGERHEART.CONFIG.HealingType.hope.abbreviation'
}, },
armorStack: { armorStack: {
id: 'armorStack', id: 'armorStack',
label: 'DAGGERHEART.HealingType.ArmorStack.Name', label: 'DAGGERHEART.CONFIG.HealingType.armorStack.name',
abbreviation: 'DAGGERHEART.HealingType.ArmorStack.Abbreviation' abbreviation: 'DAGGERHEART.CONFIG.HealingType.armorStack.abbreviation'
} }
}; };
export const conditions = { export const conditions = {
vulnerable: { vulnerable: {
id: 'vulnerable', id: 'vulnerable',
name: 'DAGGERHEART.Condition.vulnerable.name', name: 'DAGGERHEART.CONFIG.Condition.vulnerable.name',
icon: 'icons/magic/control/silhouette-fall-slip-prone.webp', icon: 'icons/magic/control/silhouette-fall-slip-prone.webp',
description: 'DAGGERHEART.Condition.vulnerable.description' description: 'DAGGERHEART.CONFIG.Condition.vulnerable.description'
}, },
hidden: { hidden: {
id: 'hidden', id: 'hidden',
name: 'DAGGERHEART.Condition.hidden.name', name: 'DAGGERHEART.CONFIG.Condition.hidden.name',
icon: 'icons/magic/perception/silhouette-stealth-shadow.webp', icon: 'icons/magic/perception/silhouette-stealth-shadow.webp',
description: 'DAGGERHEART.Condition.hidden.description' description: 'DAGGERHEART.CONFIG.Condition.hidden.description'
}, },
restrained: { restrained: {
id: 'restrained', id: 'restrained',
name: 'DAGGERHEART.Condition.restrained.name', name: 'DAGGERHEART.CONFIG.Condition.restrained.name',
icon: 'icons/magic/control/debuff-chains-shackle-movement-red.webp', icon: 'icons/magic/control/debuff-chains-shackle-movement-red.webp',
description: 'DAGGERHEART.Condition.restrained.description' description: 'DAGGERHEART.CONFIG.Condition.restrained.description'
} }
}; };
@ -115,13 +115,13 @@ export const defaultRestOptions = {
shortRest: () => ({ shortRest: () => ({
tendToWounds: { tendToWounds: {
id: 'tendToWounds', id: 'tendToWounds',
name: game.i18n.localize('DAGGERHEART.Downtime.ShortRest.TendToWounds.Name'), name: game.i18n.localize('DAGGERHEART.APPLICATIONS.Downtime.shortRest.tendToWounds.name'),
img: 'icons/magic/life/cross-worn-green.webp', img: 'icons/magic/life/cross-worn-green.webp',
description: game.i18n.localize('DAGGERHEART.Downtime.ShortRest.TendToWounds.Description'), description: game.i18n.localize('DAGGERHEART.APPLICATIONS.Downtime.shortRest.tendToWounds.description'),
actions: [ actions: [
{ {
type: 'healing', type: 'healing',
name: game.i18n.localize('DAGGERHEART.Downtime.ShortRest.TendToWounds.Name'), name: game.i18n.localize('DAGGERHEART.APPLICATIONS.Downtime.shortRest.tendToWounds.name'),
img: 'icons/magic/life/cross-worn-green.webp', img: 'icons/magic/life/cross-worn-green.webp',
actionType: 'action', actionType: 'action',
healing: { healing: {
@ -138,13 +138,13 @@ export const defaultRestOptions = {
}, },
clearStress: { clearStress: {
id: 'clearStress', id: 'clearStress',
name: game.i18n.localize('DAGGERHEART.Downtime.ShortRest.ClearStress.Name'), name: game.i18n.localize('DAGGERHEART.APPLICATIONS.Downtime.shortRest.clearStress.name'),
img: 'icons/magic/perception/eye-ringed-green.webp', img: 'icons/magic/perception/eye-ringed-green.webp',
description: game.i18n.localize('DAGGERHEART.Downtime.ShortRest.ClearStress.Description'), description: game.i18n.localize('DAGGERHEART.APPLICATIONS.Downtime.shortRest.clearStress.description'),
actions: [ actions: [
{ {
type: 'healing', type: 'healing',
name: game.i18n.localize('DAGGERHEART.Downtime.ShortRest.ClearStress.Name'), name: game.i18n.localize('DAGGERHEART.APPLICATIONS.Downtime.shortRest.clearStress.name'),
img: 'icons/magic/perception/eye-ringed-green.webp', img: 'icons/magic/perception/eye-ringed-green.webp',
actionType: 'action', actionType: 'action',
healing: { healing: {
@ -161,53 +161,53 @@ export const defaultRestOptions = {
}, },
repairArmor: { repairArmor: {
id: 'repairArmor', id: 'repairArmor',
name: game.i18n.localize('DAGGERHEART.Downtime.ShortRest.RepairArmor.Name'), name: game.i18n.localize('DAGGERHEART.APPLICATIONS.Downtime.shortRest.repairArmor.name'),
img: 'icons/skills/trades/smithing-anvil-silver-red.webp', img: 'icons/skills/trades/smithing-anvil-silver-red.webp',
description: game.i18n.localize('DAGGERHEART.Downtime.ShortRest.RepairArmor.Description'), description: game.i18n.localize('DAGGERHEART.APPLICATIONS.Downtime.shortRest.repairArmor.description'),
actions: [] actions: []
}, },
prepare: { prepare: {
id: 'prepare', id: 'prepare',
name: game.i18n.localize('DAGGERHEART.Downtime.ShortRest.Prepare.Name'), name: game.i18n.localize('DAGGERHEART.APPLICATIONS.Downtime.shortRest.prepare.name'),
img: 'icons/skills/trades/academics-merchant-scribe.webp', img: 'icons/skills/trades/academics-merchant-scribe.webp',
description: game.i18n.localize('DAGGERHEART.Downtime.ShortRest.Prepare.Description'), description: game.i18n.localize('DAGGERHEART.APPLICATIONS.Downtime.shortRest.prepare.description'),
actions: [] actions: []
} }
}), }),
longRest: () => ({ longRest: () => ({
tendToWounds: { tendToWounds: {
id: 'tendToWounds', id: 'tendToWounds',
name: game.i18n.localize('DAGGERHEART.Downtime.LongRest.TendToWounds.Name'), name: game.i18n.localize('DAGGERHEART.APPLICATIONS.Downtime.longRest.tendToWounds.name'),
img: 'icons/magic/life/cross-worn-green.webp', img: 'icons/magic/life/cross-worn-green.webp',
description: game.i18n.localize('DAGGERHEART.Downtime.LongRest.TendToWounds.Description'), description: game.i18n.localize('DAGGERHEART.APPLICATIONS.Downtime.longRest.tendToWounds.description'),
actions: [] actions: []
}, },
clearStress: { clearStress: {
id: 'clearStress', id: 'clearStress',
name: game.i18n.localize('DAGGERHEART.Downtime.LongRest.ClearStress.Name'), name: game.i18n.localize('DAGGERHEART.APPLICATIONS.Downtime.longRest.clearStress.name'),
img: 'icons/magic/perception/eye-ringed-green.webp', img: 'icons/magic/perception/eye-ringed-green.webp',
description: game.i18n.localize('DAGGERHEART.Downtime.LongRest.ClearStress.Description'), description: game.i18n.localize('DAGGERHEART.APPLICATIONS.Downtime.longRest.clearStress.description'),
actions: [] actions: []
}, },
repairArmor: { repairArmor: {
id: 'repairArmor', id: 'repairArmor',
name: game.i18n.localize('DAGGERHEART.Downtime.LongRest.RepairArmor.Name'), name: game.i18n.localize('DAGGERHEART.APPLICATIONS.Downtime.longRest.repairArmor.name'),
img: 'icons/skills/trades/smithing-anvil-silver-red.webp', img: 'icons/skills/trades/smithing-anvil-silver-red.webp',
description: game.i18n.localize('DAGGERHEART.Downtime.LongRest.RepairArmor.Description'), description: game.i18n.localize('DAGGERHEART.APPLICATIONS.Downtime.longRest.repairArmor.description'),
actions: [] actions: []
}, },
prepare: { prepare: {
id: 'prepare', id: 'prepare',
name: game.i18n.localize('DAGGERHEART.Downtime.LongRest.Prepare.Name'), name: game.i18n.localize('DAGGERHEART.APPLICATIONS.Downtime.longRest.prepare.name'),
img: 'icons/skills/trades/academics-merchant-scribe.webp', img: 'icons/skills/trades/academics-merchant-scribe.webp',
description: game.i18n.localize('DAGGERHEART.Downtime.LongRest.Prepare.Description'), description: game.i18n.localize('DAGGERHEART.APPLICATIONS.Downtime.longRest.prepare.description'),
actions: [] actions: []
}, },
workOnAProject: { workOnAProject: {
id: 'workOnAProject', id: 'workOnAProject',
name: game.i18n.localize('DAGGERHEART.Downtime.LongRest.WorkOnAProject.Name'), name: game.i18n.localize('DAGGERHEART.APPLICATIONS.Downtime.longRest.workOnAProject.name'),
img: 'icons/skills/social/thumbsup-approval-like.webp', img: 'icons/skills/social/thumbsup-approval-like.webp',
description: game.i18n.localize('DAGGERHEART.Downtime.LongRest.WorkOnAProject.Description'), description: game.i18n.localize('DAGGERHEART.APPLICATIONS.Downtime.longRest.workOnAProject.description'),
actions: [] actions: []
} }
}), }),
@ -216,51 +216,51 @@ export const defaultRestOptions = {
name: '', name: '',
img: 'icons/skills/trades/academics-investigation-puzzles.webp', img: 'icons/skills/trades/academics-investigation-puzzles.webp',
description: '', description: '',
namePlaceholder: 'DAGGERHEART.Downtime.Custom.NamePlaceholder', namePlaceholder: 'DAGGERHEART.APPLICATIONS.Downtime.custom.namePlaceholder',
placeholder: 'DAGGERHEART.Downtime.Custom.Placeholder' placeholder: 'DAGGERHEART.APPLICATIONS.Downtime.custom.placeholder'
} }
}; };
export const deathMoves = { export const deathMoves = {
avoidDeath: { avoidDeath: {
id: 'avoidDeath', id: 'avoidDeath',
name: 'DAGGERHEART.DeathMoves.AvoidDeath.Name', name: 'DAGGERHEART.CONFIG.DeathMoves.avoidDeath.name',
img: 'icons/magic/time/hourglass-yellow-green.webp', img: 'icons/magic/time/hourglass-yellow-green.webp',
description: 'DAGGERHEART.DeathMoves.AvoidDeath.Description' description: 'DAGGERHEART.CONFIG.DeathMoves.avoidDeath.description'
}, },
riskItAll: { riskItAll: {
id: 'riskItAll', id: 'riskItAll',
name: 'DAGGERHEART.DeathMoves.RiskItAll.Name', name: 'DAGGERHEART.CONFIG.DeathMoves.riskItAll.name',
img: 'icons/sundries/gaming/dice-pair-white-green.webp', img: 'icons/sundries/gaming/dice-pair-white-green.webp',
description: 'DAGGERHEART.DeathMoves.RiskItAll.Description' description: 'DAGGERHEART.CONFIG.DeathMoves.riskItAll.description'
}, },
blazeOfGlory: { blazeOfGlory: {
id: 'blazeOfGlory', id: 'blazeOfGlory',
name: 'DAGGERHEART.DeathMoves.BlazeOfGlory.Name', name: 'DAGGERHEART.CONFIG.DeathMoves.blazeOfGlory.name',
img: 'icons/magic/life/heart-cross-strong-flame-purple-orange.webp', img: 'icons/magic/life/heart-cross-strong-flame-purple-orange.webp',
description: 'DAGGERHEART.DeathMoves.BlazeOfGlory.Description' description: 'DAGGERHEART.CONFIG.DeathMoves.blazeOfGlory.description'
} }
}; };
export const tiers = { export const tiers = {
tier1: { tier1: {
id: 'tier1', id: 'tier1',
label: 'DAGGERHEART.Tiers.tier1', label: 'DAGGERHEART.GENERAL.Tiers.tier1',
value: 1 value: 1
}, },
tier2: { tier2: {
id: 'tier2', id: 'tier2',
label: 'DAGGERHEART.Tiers.tier2', label: 'DAGGERHEART.GENERAL.Tiers.tier2',
value: 2 value: 2
}, },
tier3: { tier3: {
id: 'tier3', id: 'tier3',
label: 'DAGGERHEART.Tiers.tier3', label: 'DAGGERHEART.GENERAL.Tiers.tier3',
value: 3 value: 3
}, },
tier4: { tier4: {
id: 'tier4', id: 'tier4',
label: 'DAGGERHEART.Tiers.tier4', label: 'DAGGERHEART.GENERAL.Tiers.tier4',
value: 4 value: 4
} }
}; };
@ -331,15 +331,15 @@ export const getDiceSoNicePresets = () => {
export const refreshTypes = { export const refreshTypes = {
session: { session: {
id: 'session', id: 'session',
label: 'DAGGERHEART.General.RefreshType.Session' label: 'DAGGERHEART.GENERAL.RefreshType.session'
}, },
shortRest: { shortRest: {
id: 'shortRest', id: 'shortRest',
label: 'DAGGERHEART.General.RefreshType.Shortrest' label: 'DAGGERHEART.GENERAL.RefreshType.shortrest'
}, },
longRest: { longRest: {
id: 'longRest', id: 'longRest',
label: 'DAGGERHEART.General.RefreshType.Longrest' label: 'DAGGERHEART.GENERAL.RefreshType.longrest'
} }
}; };
@ -351,7 +351,7 @@ export const abilityCosts = {
}, },
stress: { stress: {
id: 'stress', id: 'stress',
label: 'DAGGERHEART.HealingType.Stress.Name', label: 'DAGGERHEART.CONFIG.HealingType.Stress.Name',
group: 'TYPES.Actor.character' group: 'TYPES.Actor.character'
}, },
armor: { armor: {
@ -361,7 +361,7 @@ export const abilityCosts = {
}, },
hp: { hp: {
id: 'hp', id: 'hp',
label: 'DAGGERHEART.HealingType.HitPoints.Name', label: 'DAGGERHEART.CONFIG.HealingType.HitPoints.Name',
group: 'TYPES.Actor.character' group: 'TYPES.Actor.character'
}, },
prayer: { prayer: {
@ -399,38 +399,38 @@ export const abilityCosts = {
export const countdownTypes = { export const countdownTypes = {
spotlight: { spotlight: {
id: 'spotlight', id: 'spotlight',
label: 'DAGGERHEART.Countdown.Type.Spotlight' label: 'DAGGERHEART.CONFIG.CountdownTypes.Spotlight'
}, },
characterAttack: { characterAttack: {
id: 'characterAttack', id: 'characterAttack',
label: 'DAGGERHEART.Countdown.Type.CharacterAttack' label: 'DAGGERHEART.CONFIG.CountdownTypes.CharacterAttack'
}, },
custom: { custom: {
id: 'custom', id: 'custom',
label: 'DAGGERHEART.Countdown.Type.Custom' label: 'DAGGERHEART.CONFIG.CountdownTypes.Custom'
} }
}; };
export const rollTypes = { export const rollTypes = {
weapon: { weapon: {
id: 'weapon', id: 'weapon',
label: 'DAGGERHEART.RollTypes.weapon.name' label: 'DAGGERHEART.CONFIG.RollTypes.weapon.name'
}, },
spellcast: { spellcast: {
id: 'spellcast', id: 'spellcast',
label: 'DAGGERHEART.RollTypes.spellcast.name' label: 'DAGGERHEART.CONFIG.RollTypes.spellcast.name'
}, },
ability: { ability: {
id: 'ability', id: 'ability',
label: 'DAGGERHEART.RollTypes.ability.name' label: 'DAGGERHEART.CONFIG.RollTypes.ability.name'
}, },
diceSet: { diceSet: {
id: 'diceSet', id: 'diceSet',
label: 'DAGGERHEART.RollTypes.diceSet.name' label: 'DAGGERHEART.CONFIG.RollTypes.diceSet.name'
} }
}; };
export const fearDisplay = { export const fearDisplay = {
token: { value: 'token', label: 'DAGGERHEART.Settings.Appearance.FearDisplay.Token' }, token: { value: 'token', label: 'DAGGERHEART.SETTINGS.Appearance.fearDisplay.token' },
bar: { value: 'bar', label: 'DAGGERHEART.Settings.Appearance.FearDisplay.Bar' }, bar: { value: 'bar', label: 'DAGGERHEART.SETTINGS.Appearance.fearDisplay.bar' },
hide: { value: 'hide', label: 'DAGGERHEART.Settings.Appearance.FearDisplay.Hide' } hide: { value: 'hide', label: 'DAGGERHEART.SETTINGS.Appearance.fearDisplay.hide' }
}; };

View file

@ -1,11 +1,11 @@
export const armorFeatures = { export const armorFeatures = {
burning: { burning: {
label: 'DAGGERHEART.ArmorFeature.Burning.Name', label: 'DAGGERHEART.CONFIG.ArmorFeature.burning.name',
description: 'DAGGERHEART.ArmorFeature.Burning.Description' description: 'DAGGERHEART.CONFIG.ArmorFeature.burning.description'
}, },
channeling: { channeling: {
label: 'DAGGERHEART.ArmorFeature.Channeling.Name', label: 'DAGGERHEART.CONFIG.ArmorFeature.channeling.name',
description: 'DAGGERHEART.ArmorFeature.Channeling.Description', description: 'DAGGERHEART.CONFIG.ArmorFeature.channeling.description',
effects: [ effects: [
{ {
changes: [ changes: [
@ -19,8 +19,8 @@ export const armorFeatures = {
] ]
}, },
difficult: { difficult: {
label: 'DAGGERHEART.ArmorFeature.Difficult.Name', label: 'DAGGERHEART.CONFIG.ArmorFeature.difficult.name',
description: 'DAGGERHEART.ArmorFeature.Difficult.Description', description: 'DAGGERHEART.CONFIG.ArmorFeature.difficult.description',
effects: [ effects: [
{ {
changes: [ changes: [
@ -64,8 +64,8 @@ export const armorFeatures = {
] ]
}, },
flexible: { flexible: {
label: 'DAGGERHEART.ArmorFeature.Flexible.Name', label: 'DAGGERHEART.CONFIG.ArmorFeature.flexible.name',
description: 'DAGGERHEART.ArmorFeature.Flexible.Description', description: 'DAGGERHEART.CONFIG.ArmorFeature.flexible.description',
effects: [ effects: [
{ {
changes: [ changes: [
@ -79,12 +79,12 @@ export const armorFeatures = {
] ]
}, },
fortified: { fortified: {
label: 'DAGGERHEART.ArmorFeature.Fortified.Name', label: 'DAGGERHEART.CONFIG.ArmorFeature.fortified.name',
description: 'DAGGERHEART.ArmorFeature.Fortified.Description' description: 'DAGGERHEART.CONFIG.ArmorFeature.fortified.description'
}, },
gilded: { gilded: {
label: 'DAGGERHEART.ArmorFeature.Gilded.Name', label: 'DAGGERHEART.CONFIG.ArmorFeature.gilded.name',
description: 'DAGGERHEART.ArmorFeature.Gilded.Description', description: 'DAGGERHEART.CONFIG.ArmorFeature.gilded.description',
effects: [ effects: [
{ {
changes: [ changes: [
@ -98,8 +98,8 @@ export const armorFeatures = {
] ]
}, },
heavy: { heavy: {
label: 'DAGGERHEART.ArmorFeature.Heavy.Name', label: 'DAGGERHEART.CONFIG.ArmorFeature.heavy.name',
description: 'DAGGERHEART.ArmorFeature.Heavy.Description', description: 'DAGGERHEART.CONFIG.ArmorFeature.heavy.description',
effects: [ effects: [
{ {
changes: [ changes: [
@ -113,56 +113,56 @@ export const armorFeatures = {
] ]
}, },
hopeful: { hopeful: {
label: 'DAGGERHEART.ArmorFeature.Hopeful.Name', label: 'DAGGERHEART.CONFIG.ArmorFeature.hopeful.name',
description: 'DAGGERHEART.ArmorFeature.Hopeful.Description' description: 'DAGGERHEART.CONFIG.ArmorFeature.hopeful.description'
}, },
impenetrable: { impenetrable: {
label: 'DAGGERHEART.ArmorFeature.Impenetrable.Name', label: 'DAGGERHEART.CONFIG.ArmorFeature.impenetrable.name',
description: 'DAGGERHEART.ArmorFeature.Impenetrable.Description' description: 'DAGGERHEART.CONFIG.ArmorFeature.impenetrable.description'
}, },
magic: { magic: {
label: 'DAGGERHEART.ArmorFeature.Magic.Name', label: 'DAGGERHEART.CONFIG.ArmorFeature.magic.name',
description: 'DAGGERHEART.ArmorFeature.Magic.Description' description: 'DAGGERHEART.CONFIG.ArmorFeature.magic.description'
}, },
painful: { painful: {
label: 'DAGGERHEART.ArmorFeature.Painful.Name', label: 'DAGGERHEART.CONFIG.ArmorFeature.painful.name',
description: 'DAGGERHEART.ArmorFeature.Painful.Description' description: 'DAGGERHEART.CONFIG.ArmorFeature.painful.description'
}, },
physical: { physical: {
label: 'DAGGERHEART.ArmorFeature.Physical.Name', label: 'DAGGERHEART.CONFIG.ArmorFeature.physical.name',
description: 'DAGGERHEART.ArmorFeature.Physical.Description' description: 'DAGGERHEART.CONFIG.ArmorFeature.physical.description'
}, },
quiet: { quiet: {
label: 'DAGGERHEART.ArmorFeature.Quiet.Name', label: 'DAGGERHEART.CONFIG.ArmorFeature.quiet.name',
description: 'DAGGERHEART.ArmorFeature.Quiet.Description' description: 'DAGGERHEART.CONFIG.ArmorFeature.quiet.description'
}, },
reinforced: { reinforced: {
label: 'DAGGERHEART.ArmorFeature.Reinforced.Name', label: 'DAGGERHEART.CONFIG.ArmorFeature.reinforced.name',
description: 'DAGGERHEART.ArmorFeature.Reinforced.Description' description: 'DAGGERHEART.CONFIG.ArmorFeature.reinforced.description'
}, },
resilient: { resilient: {
label: 'DAGGERHEART.ArmorFeature.Resilient.Name', label: 'DAGGERHEART.CONFIG.ArmorFeature.resilient.name',
description: 'DAGGERHEART.ArmorFeature.Resilient.Description' description: 'DAGGERHEART.CONFIG.ArmorFeature.resilient.description'
}, },
sharp: { sharp: {
label: 'DAGGERHEART.ArmorFeature.Sharp.Name', label: 'DAGGERHEART.CONFIG.ArmorFeature.sharp.name',
description: 'DAGGERHEART.ArmorFeature.Sharp.Description' description: 'DAGGERHEART.CONFIG.ArmorFeature.sharp.description'
}, },
shifting: { shifting: {
label: 'DAGGERHEART.ArmorFeature.Shifting.Name', label: 'DAGGERHEART.CONFIG.ArmorFeature.shifting.name',
description: 'DAGGERHEART.ArmorFeature.Shifting.Description' description: 'DAGGERHEART.CONFIG.ArmorFeature.shifting.description'
}, },
timeslowing: { timeslowing: {
label: 'DAGGERHEART.ArmorFeature.Timeslowing.Name', label: 'DAGGERHEART.CONFIG.ArmorFeature.timeslowing.name',
description: 'DAGGERHEART.ArmorFeature.Timeslowing.Description' description: 'DAGGERHEART.CONFIG.ArmorFeature.timeslowing.description'
}, },
truthseeking: { truthseeking: {
label: 'DAGGERHEART.ArmorFeature.Truthseeking.Name', label: 'DAGGERHEART.CONFIG.ArmorFeature.truthseeking.name',
description: 'DAGGERHEART.ArmorFeature.Truthseeking.Description' description: 'DAGGERHEART.CONFIG.ArmorFeature.truthseeking.description'
}, },
veryheavy: { veryheavy: {
label: 'DAGGERHEART.ArmorFeature.VeryHeavy.Name', label: 'DAGGERHEART.CONFIG.ArmorFeature.veryHeavy.name',
description: 'DAGGERHEART.ArmorFeature.VeryHeavy.Description', description: 'DAGGERHEART.CONFIG.ArmorFeature.veryHeavy.description',
effects: [ effects: [
{ {
changes: [ changes: [
@ -181,15 +181,15 @@ export const armorFeatures = {
] ]
}, },
warded: { warded: {
label: 'DAGGERHEART.ArmorFeature.Warded.Name', label: 'DAGGERHEART.CONFIG.ArmorFeature.warded.name',
description: 'DAGGERHEART.ArmorFeature.Warded.Description' description: 'DAGGERHEART.CONFIG.ArmorFeature.warded.description'
} }
}; };
export const weaponFeatures = { export const weaponFeatures = {
barrier: { barrier: {
label: 'DAGGERHEART.WeaponFeature.Barrier.Name', label: 'DAGGERHEART.CONFIG.WeaponFeature.barrier.name',
description: 'DAGGERHEART.WeaponFeature.Barrier.Description', description: 'DAGGERHEART.CONFIG.WeaponFeature.barrier.description',
effects: [ effects: [
{ {
changes: [ changes: [
@ -212,8 +212,8 @@ export const weaponFeatures = {
] ]
}, },
bonded: { bonded: {
label: 'DAGGERHEART.WeaponFeature.Bonded.Name', label: 'DAGGERHEART.CONFIG.WeaponFeature.bonded.name',
description: 'DAGGERHEART.WeaponFeature.Bonded.Description', description: 'DAGGERHEART.CONFIG.WeaponFeature.bonded.description',
effects: [ effects: [
{ {
changes: [ changes: [
@ -227,12 +227,12 @@ export const weaponFeatures = {
] ]
}, },
bouncing: { bouncing: {
label: 'DAGGERHEART.WeaponFeature.Bouncing.Name', label: 'DAGGERHEART.CONFIG.WeaponFeature.bouncing.name',
description: 'DAGGERHEART.WeaponFeature.Bouncing.Description' description: 'DAGGERHEART.CONFIG.WeaponFeature.bouncing.description'
}, },
brave: { brave: {
label: 'DAGGERHEART.WeaponFeature.Brave.Name', label: 'DAGGERHEART.CONFIG.WeaponFeature.brave.name',
description: 'DAGGERHEART.WeaponFeature.Brave.Description', description: 'DAGGERHEART.CONFIG.WeaponFeature.brave.description',
effects: [ effects: [
{ {
changes: [ changes: [
@ -255,16 +255,16 @@ export const weaponFeatures = {
] ]
}, },
brutal: { brutal: {
label: 'DAGGERHEART.WeaponFeature.Brutal.Name', label: 'DAGGERHEART.CONFIG.WeaponFeature.brutal.name',
description: 'DAGGERHEART.WeaponFeature.Brutal.Description' description: 'DAGGERHEART.CONFIG.WeaponFeature.brutal.description'
}, },
charged: { charged: {
label: 'DAGGERHEART.WeaponFeature.Charged.Name', label: 'DAGGERHEART.CONFIG.WeaponFeature.charged.name',
description: 'DAGGERHEART.WeaponFeature.Charged.Description', description: 'DAGGERHEART.CONFIG.WeaponFeature.charged.description',
actions: [ actions: [
{ {
type: 'effect', type: 'effect',
name: 'DAGGERHEART.WeaponFeature.Concussive.Name', name: 'DAGGERHEART.CONFIG.WeaponFeature.concussive.name',
img: 'icons/skills/melee/shield-damaged-broken-brown.webp', img: 'icons/skills/melee/shield-damaged-broken-brown.webp',
actionType: 'action', actionType: 'action',
cost: [ cost: [
@ -278,12 +278,12 @@ export const weaponFeatures = {
] ]
}, },
concussive: { concussive: {
label: 'DAGGERHEART.WeaponFeature.Concussive.Name', label: 'DAGGERHEART.CONFIG.WeaponFeature.concussive.name',
description: 'DAGGERHEART.WeaponFeature.Concussive.Description', description: 'DAGGERHEART.CONFIG.WeaponFeature.concussive.description',
actions: [ actions: [
{ {
type: 'resource', type: 'resource',
name: 'DAGGERHEART.WeaponFeature.Concussive.Name', name: 'DAGGERHEART.CONFIG.WeaponFeature.concussive.name',
img: 'icons/skills/melee/shield-damaged-broken-brown.webp', img: 'icons/skills/melee/shield-damaged-broken-brown.webp',
actionType: 'action', actionType: 'action',
cost: [ cost: [
@ -296,8 +296,8 @@ export const weaponFeatures = {
] ]
}, },
cumbersome: { cumbersome: {
label: 'DAGGERHEART.WeaponFeature.Cumbersome.Name', label: 'DAGGERHEART.CONFIG.WeaponFeature.cumbersome.name',
description: 'DAGGERHEART.WeaponFeature.Cumbersome.Description', description: 'DAGGERHEART.CONFIG.WeaponFeature.cumbersome.description',
effects: [ effects: [
{ {
changes: [ changes: [
@ -311,15 +311,15 @@ export const weaponFeatures = {
] ]
}, },
deadly: { deadly: {
label: 'DAGGERHEART.WeaponFeature.Deadly.Name', label: 'DAGGERHEART.CONFIG.WeaponFeature.deadly.name',
description: 'DAGGERHEART.WeaponFeature.Deadly.Description' description: 'DAGGERHEART.CONFIG.WeaponFeature.deadly.description'
}, },
deflecting: { deflecting: {
label: 'DAGGERHEART.WeaponFeature.Deflecting.Name', label: 'DAGGERHEART.CONFIG.WeaponFeature.deflecting.name',
description: 'DAGGERHEART.WeaponFeature.Deflecting.Description' description: 'DAGGERHEART.CONFIG.WeaponFeature.deflecting.description'
// actions: [{ // actions: [{
// type: 'effect', // type: 'effect',
// name: 'DAGGERHEART.WeaponFeature.Deflecting.Name', // name: 'DAGGERHEART.CONFIG.WeaponFeature.Deflecting.Name',
// img: 'icons/skills/melee/strike-flail-destructive-yellow.webp', // img: 'icons/skills/melee/strike-flail-destructive-yellow.webp',
// actionType: 'reaction', // actionType: 'reaction',
// cost: [{ // cost: [{
@ -329,8 +329,8 @@ export const weaponFeatures = {
// }], // }],
}, },
destructive: { destructive: {
label: 'DAGGERHEART.WeaponFeature.Destructive.Name', label: 'DAGGERHEART.CONFIG.WeaponFeature.destructive.name',
description: 'DAGGERHEART.WeaponFeature.Destructive.Description', description: 'DAGGERHEART.CONFIG.WeaponFeature.destructive.description',
effects: [ effects: [
{ {
changes: [ changes: [
@ -344,12 +344,12 @@ export const weaponFeatures = {
] ]
}, },
devastating: { devastating: {
label: 'DAGGERHEART.WeaponFeature.Devastating.Name', label: 'DAGGERHEART.CONFIG.WeaponFeature.devastating.name',
description: 'DAGGERHEART.WeaponFeature.Devastating.Description', description: 'DAGGERHEART.CONFIG.WeaponFeature.devastating.description',
actions: [ actions: [
{ {
type: 'resource', type: 'resource',
name: 'DAGGERHEART.WeaponFeature.Devastating.Name', name: 'DAGGERHEART.CONFIG.WeaponFeature.devastating.name',
img: 'icons/skills/melee/strike-flail-destructive-yellow.webp', img: 'icons/skills/melee/strike-flail-destructive-yellow.webp',
actionType: 'action', actionType: 'action',
cost: [ cost: [
@ -362,8 +362,8 @@ export const weaponFeatures = {
] ]
}, },
doubleduty: { doubleduty: {
label: 'DAGGERHEART.WeaponFeature.DoubleDuty.Name', label: 'DAGGERHEART.CONFIG.WeaponFeature.doubleDuty.name',
description: 'DAGGERHEART.WeaponFeature.DoubleDuty.Description', description: 'DAGGERHEART.CONFIG.WeaponFeature.doubleDuty.description',
effects: [ effects: [
{ {
changes: [ changes: [
@ -377,24 +377,24 @@ export const weaponFeatures = {
] ]
}, },
doubledup: { doubledup: {
label: 'DAGGERHEART.WeaponFeature.DoubledUp.Name', label: 'DAGGERHEART.CONFIG.WeaponFeature.doubledUp.name',
description: 'DAGGERHEART.WeaponFeature.DoubledUp.Description' description: 'DAGGERHEART.CONFIG.WeaponFeature.doubledUp.description'
}, },
dueling: { dueling: {
label: 'DAGGERHEART.WeaponFeature.Dueling.Name', label: 'DAGGERHEART.CONFIG.WeaponFeature.dueling.name',
description: 'DAGGERHEART.WeaponFeature.Dueling.Description' description: 'DAGGERHEART.CONFIG.WeaponFeature.dueling.description'
}, },
eruptive: { eruptive: {
label: 'DAGGERHEART.WeaponFeature.Eruptive.Name', label: 'DAGGERHEART.CONFIG.WeaponFeature.eruptive.name',
description: 'DAGGERHEART.WeaponFeature.Eruptive.Description' description: 'DAGGERHEART.CONFIG.WeaponFeature.eruptive.description'
}, },
grappling: { grappling: {
label: 'DAGGERHEART.WeaponFeature.Grappling.Name', label: 'DAGGERHEART.CONFIG.WeaponFeature.grappling.name',
description: 'DAGGERHEART.WeaponFeature.Grappling.Description', description: 'DAGGERHEART.CONFIG.WeaponFeature.grappling.description',
actions: [ actions: [
{ {
type: 'resource', type: 'resource',
name: 'DAGGERHEART.WeaponFeature.Grappling.Name', name: 'DAGGERHEART.CONFIG.WeaponFeature.grappling.name',
img: 'icons/magic/control/debuff-chains-ropes-net-white.webp', img: 'icons/magic/control/debuff-chains-ropes-net-white.webp',
actionType: 'action', actionType: 'action',
cost: [ cost: [
@ -407,16 +407,16 @@ export const weaponFeatures = {
] ]
}, },
greedy: { greedy: {
label: 'DAGGERHEART.WeaponFeature.Greedy.Name', label: 'DAGGERHEART.CONFIG.WeaponFeature.greedy.name',
description: 'DAGGERHEART.WeaponFeature.Greedy.Description' description: 'DAGGERHEART.CONFIG.WeaponFeature.greedy.description'
}, },
healing: { healing: {
label: 'DAGGERHEART.WeaponFeature.Healing.Name', label: 'DAGGERHEART.CONFIG.WeaponFeature.healing.name',
description: 'DAGGERHEART.WeaponFeature.Healing.Description', description: 'DAGGERHEART.CONFIG.WeaponFeature.healing.description',
actions: [ actions: [
{ {
type: 'healing', type: 'healing',
name: 'DAGGERHEART.WeaponFeature.Healing.Name', name: 'DAGGERHEART.CONFIG.WeaponFeature.healing.name',
img: 'icons/magic/life/cross-beam-green.webp', img: 'icons/magic/life/cross-beam-green.webp',
actionType: 'action', actionType: 'action',
healing: { healing: {
@ -432,8 +432,8 @@ export const weaponFeatures = {
] ]
}, },
heavy: { heavy: {
label: 'DAGGERHEART.WeaponFeature.Heavy.Name', label: 'DAGGERHEART.CONFIG.WeaponFeature.heavy.name',
description: 'DAGGERHEART.WeaponFeature.Heavy.Description', description: 'DAGGERHEART.CONFIG.WeaponFeature.heavy.description',
effects: [ effects: [
{ {
changes: [ changes: [
@ -447,36 +447,36 @@ export const weaponFeatures = {
] ]
}, },
hooked: { hooked: {
label: 'DAGGERHEART.WeaponFeature.Hooked.Name', label: 'DAGGERHEART.CONFIG.WeaponFeature.hooked.name',
description: 'DAGGERHEART.WeaponFeature.Hooked.Description' description: 'DAGGERHEART.CONFIG.WeaponFeature.hooked.description'
}, },
hot: { hot: {
label: 'DAGGERHEART.WeaponFeature.Hot.Name', label: 'DAGGERHEART.CONFIG.WeaponFeature.hot.name',
description: 'DAGGERHEART.WeaponFeature.Hot.Description' description: 'DAGGERHEART.CONFIG.WeaponFeature.hot.description'
}, },
invigorating: { invigorating: {
label: 'DAGGERHEART.WeaponFeature.Invigorating.Name', label: 'DAGGERHEART.CONFIG.WeaponFeature.invigorating.name',
description: 'DAGGERHEART.WeaponFeature.Invigorating.Description' description: 'DAGGERHEART.CONFIG.WeaponFeature.invigorating.description'
}, },
lifestealing: { lifestealing: {
label: 'DAGGERHEART.WeaponFeature.Lifestealing.Name', label: 'DAGGERHEART.CONFIG.WeaponFeature.lifestealing.name',
description: 'DAGGERHEART.WeaponFeature.Lifestealing.Description' description: 'DAGGERHEART.CONFIG.WeaponFeature.lifestealing.description'
}, },
lockedon: { lockedon: {
label: 'DAGGERHEART.WeaponFeature.LockedOn.Name', label: 'DAGGERHEART.CONFIG.WeaponFeature.lockedOn.name',
description: 'DAGGERHEART.WeaponFeature.LockedOn.Description' description: 'DAGGERHEART.CONFIG.WeaponFeature.lockedOn.description'
}, },
long: { long: {
label: 'DAGGERHEART.WeaponFeature.Long.Name', label: 'DAGGERHEART.CONFIG.WeaponFeature.long.name',
description: 'DAGGERHEART.WeaponFeature.Long.Description' description: 'DAGGERHEART.CONFIG.WeaponFeature.long.description'
}, },
lucky: { lucky: {
label: 'DAGGERHEART.WeaponFeature.Lucky.Name', label: 'DAGGERHEART.CONFIG.WeaponFeature.lucky.name',
description: 'DAGGERHEART.WeaponFeature.Lucky.Description', description: 'DAGGERHEART.CONFIG.WeaponFeature.lucky.description',
actions: [ actions: [
{ {
type: 'resource', type: 'resource',
name: 'DAGGERHEART.WeaponFeature.Lucky.Name', name: 'DAGGERHEART.CONFIG.WeaponFeature.lucky.name',
img: 'icons/magic/control/buff-luck-fortune-green.webp', img: 'icons/magic/control/buff-luck-fortune-green.webp',
actionType: 'action', actionType: 'action',
cost: [ cost: [
@ -489,8 +489,8 @@ export const weaponFeatures = {
] ]
}, },
massive: { massive: {
label: 'DAGGERHEART.WeaponFeature.Massive.Name', label: 'DAGGERHEART.CONFIG.WeaponFeature.massive.name',
description: 'DAGGERHEART.WeaponFeature.Massive.Description', description: 'DAGGERHEART.CONFIG.WeaponFeature.massive.description',
effects: [ effects: [
{ {
changes: [ changes: [
@ -504,12 +504,12 @@ export const weaponFeatures = {
] ]
}, },
painful: { painful: {
label: 'DAGGERHEART.WeaponFeature.Painful.Name', label: 'DAGGERHEART.CONFIG.WeaponFeature.painful.name',
description: 'DAGGERHEART.WeaponFeature.Painful.Description', description: 'DAGGERHEART.CONFIG.WeaponFeature.painful.description',
actions: [ actions: [
{ {
type: 'resource', type: 'resource',
name: 'DAGGERHEART.WeaponFeature.Painful.Name', name: 'DAGGERHEART.CONFIG.WeaponFeature.painful.name',
img: 'icons/skills/wounds/injury-face-impact-orange.webp', img: 'icons/skills/wounds/injury-face-impact-orange.webp',
actionType: 'action', actionType: 'action',
cost: [ cost: [
@ -522,31 +522,31 @@ export const weaponFeatures = {
] ]
}, },
paired: { paired: {
label: 'DAGGERHEART.WeaponFeature.Paired.Name', label: 'DAGGERHEART.CONFIG.WeaponFeature.paired.name',
description: 'DAGGERHEART.WeaponFeature.Paired.Description', description: 'DAGGERHEART.CONFIG.WeaponFeature.paired.description',
override: { override: {
bonusDamage: 1 bonusDamage: 1
} }
}, },
parry: { parry: {
label: 'DAGGERHEART.WeaponFeature.Parry.Name', label: 'DAGGERHEART.CONFIG.WeaponFeature.parry.name',
description: 'DAGGERHEART.WeaponFeature.Parry.Description' description: 'DAGGERHEART.CONFIG.WeaponFeature.parry.description'
}, },
persuasive: { persuasive: {
label: 'DAGGERHEART.WeaponFeature.Persuasive.Name', label: 'DAGGERHEART.CONFIG.WeaponFeature.persuasive.name',
description: 'DAGGERHEART.WeaponFeature.Persuasive.Description' description: 'DAGGERHEART.CONFIG.WeaponFeature.persuasive.description'
}, },
pompous: { pompous: {
label: 'DAGGERHEART.WeaponFeature.Pompous.Name', label: 'DAGGERHEART.CONFIG.WeaponFeature.pompous.name',
description: 'DAGGERHEART.WeaponFeature.Pompous.Description' description: 'DAGGERHEART.CONFIG.WeaponFeature.pompous.description'
}, },
powerful: { powerful: {
label: 'DAGGERHEART.WeaponFeature.Powerful.Name', label: 'DAGGERHEART.CONFIG.WeaponFeature.powerful.name',
description: 'DAGGERHEART.WeaponFeature.Powerful.Description' description: 'DAGGERHEART.CONFIG.WeaponFeature.powerful.description'
}, },
protective: { protective: {
label: 'DAGGERHEART.WeaponFeature.Protective.Name', label: 'DAGGERHEART.CONFIG.WeaponFeature.protective.name',
description: 'DAGGERHEART.WeaponFeature.Protective.Description', description: 'DAGGERHEART.CONFIG.WeaponFeature.protective.description',
effects: [ effects: [
{ {
changes: [ changes: [
@ -560,12 +560,12 @@ export const weaponFeatures = {
] ]
}, },
quick: { quick: {
label: 'DAGGERHEART.WeaponFeature.Quick.Name', label: 'DAGGERHEART.CONFIG.WeaponFeature.quick.name',
description: 'DAGGERHEART.WeaponFeature.Quick.Description', description: 'DAGGERHEART.CONFIG.WeaponFeature.quick.description',
actions: [ actions: [
{ {
type: 'resource', type: 'resource',
name: 'DAGGERHEART.WeaponFeature.Quick.Name', name: 'DAGGERHEART.CONFIG.WeaponFeature.quick.name',
img: 'icons/skills/movement/arrow-upward-yellow.webp', img: 'icons/skills/movement/arrow-upward-yellow.webp',
actionType: 'action', actionType: 'action',
cost: [ cost: [
@ -578,8 +578,8 @@ export const weaponFeatures = {
] ]
}, },
reliable: { reliable: {
label: 'DAGGERHEART.WeaponFeature.Reliable.Name', label: 'DAGGERHEART.CONFIG.WeaponFeature.reliable.name',
description: 'DAGGERHEART.WeaponFeature.Reliable.Description', description: 'DAGGERHEART.CONFIG.WeaponFeature.reliable.description',
effects: [ effects: [
{ {
changes: [ changes: [
@ -593,40 +593,40 @@ export const weaponFeatures = {
] ]
}, },
reloading: { reloading: {
label: 'DAGGERHEART.WeaponFeature.Reloading.Name', label: 'DAGGERHEART.CONFIG.WeaponFeature.reloading.name',
description: 'DAGGERHEART.WeaponFeature.Reloading.Description' description: 'DAGGERHEART.CONFIG.WeaponFeature.reloading.description'
}, },
retractable: { retractable: {
label: 'DAGGERHEART.WeaponFeature.Retractable.Name', label: 'DAGGERHEART.CONFIG.WeaponFeature.retractable.name',
description: 'DAGGERHEART.WeaponFeature.Retractable.Description' description: 'DAGGERHEART.CONFIG.WeaponFeature.retractable.description'
}, },
returning: { returning: {
label: 'DAGGERHEART.WeaponFeature.Returning.Name', label: 'DAGGERHEART.CONFIG.WeaponFeature.returning.name',
description: 'DAGGERHEART.WeaponFeature.Returning.Description' description: 'DAGGERHEART.CONFIG.WeaponFeature.returning.description'
}, },
scary: { scary: {
label: 'DAGGERHEART.WeaponFeature.Scary.Name', label: 'DAGGERHEART.CONFIG.WeaponFeature.scary.name',
description: 'DAGGERHEART.WeaponFeature.Scary.Description' description: 'DAGGERHEART.CONFIG.WeaponFeature.scary.description'
}, },
serrated: { serrated: {
label: 'DAGGERHEART.WeaponFeature.Serrated.Name', label: 'DAGGERHEART.CONFIG.WeaponFeature.serrated.name',
description: 'DAGGERHEART.WeaponFeature.Serrated.Description' description: 'DAGGERHEART.CONFIG.WeaponFeature.serrated.description'
}, },
sharpwing: { sharpwing: {
label: 'DAGGERHEART.WeaponFeature.Sharpwing.Name', label: 'DAGGERHEART.CONFIG.WeaponFeature.sharpwing.name',
description: 'DAGGERHEART.WeaponFeature.Sharpwing.Description' description: 'DAGGERHEART.CONFIG.WeaponFeature.sharpwing.description'
}, },
sheltering: { sheltering: {
label: 'DAGGERHEART.WeaponFeature.Sheltering.Name', label: 'DAGGERHEART.CONFIG.WeaponFeature.sheltering.name',
description: 'DAGGERHEART.WeaponFeature.Sheltering.Description' description: 'DAGGERHEART.CONFIG.WeaponFeature.sheltering.description'
}, },
startling: { startling: {
label: 'DAGGERHEART.WeaponFeature.Startling.Name', label: 'DAGGERHEART.CONFIG.WeaponFeature.startling.name',
description: 'DAGGERHEART.WeaponFeature.Startling.Description', description: 'DAGGERHEART.CONFIG.WeaponFeature.startling.description',
actions: [ actions: [
{ {
type: 'resource', type: 'resource',
name: 'DAGGERHEART.WeaponFeature.Startling.Name', name: 'DAGGERHEART.CONFIG.WeaponFeature.startling.name',
img: 'icons/magic/control/fear-fright-mask-orange.webp', img: 'icons/magic/control/fear-fright-mask-orange.webp',
actionType: 'action', actionType: 'action',
cost: [ cost: [
@ -639,12 +639,12 @@ export const weaponFeatures = {
] ]
}, },
timebending: { timebending: {
label: 'DAGGERHEART.WeaponFeature.Timebending.Name', label: 'DAGGERHEART.CONFIG.WeaponFeature.timebending.name',
description: 'DAGGERHEART.WeaponFeature.Timebending.Description' description: 'DAGGERHEART.CONFIG.WeaponFeature.timebending.description'
}, },
versatile: { versatile: {
label: 'DAGGERHEART.WeaponFeature.Versatile.Name', label: 'DAGGERHEART.CONFIG.WeaponFeature.versatile.name',
description: 'DAGGERHEART.WeaponFeature.Versatile.Description', description: 'DAGGERHEART.CONFIG.WeaponFeature.versatile.description',
versatile: { versatile: {
characterTrait: '', characterTrait: '',
range: '', range: '',
@ -700,42 +700,17 @@ export const featureTypes = {
} }
}; };
export const valueTypes = {
normal: {
id: 'normal',
name: 'DAGGERHEART.Feature.ValueType.Normal',
data: {
value: 0,
max: 0
}
},
input: {
id: 'input',
name: 'DAGGERHEART.Feature.ValueType.Input',
data: {
value: null
}
},
dice: {
id: 'dice',
name: 'DAGGERHEART.Feature.ValueType.Dice',
data: {
value: null
}
}
};
export const actionTypes = { export const actionTypes = {
passive: { passive: {
id: 'passive', id: 'passive',
label: 'DAGGERHEART.ActionType.passive' label: 'DAGGERHEART.CONFIG.ActionType.passive'
}, },
action: { action: {
id: 'action', id: 'action',
label: 'DAGGERHEART.ActionType.action' label: 'DAGGERHEART.CONFIG.ActionType.action'
}, },
reaction: { reaction: {
id: 'reaction', id: 'reaction',
label: 'DAGGERHEART.ActionType.reaction' label: 'DAGGERHEART.CONFIG.ActionType.reaction'
} }
}; };

View file

@ -33,10 +33,10 @@ export const gameSettings = {
export const DualityRollColor = { export const DualityRollColor = {
colorful: { colorful: {
value: 0, value: 0,
label: 'DAGGERHEART.Settings.DualityRollColor.Options.Colorful' label: 'DAGGERHEART.SETTINGS.DualityRollColor.options.colorful'
}, },
normal: { normal: {
value: 1, value: 1,
label: 'DAGGERHEART.Settings.DualityRollColor.Options.Normal' label: 'DAGGERHEART.SETTINGS.DualityRollColor.options.normal'
} }
}; };

View file

@ -113,7 +113,7 @@ export class DHDamageData extends foundry.abstract.DataModel {
}), }),
resultBased: new fields.BooleanField({ resultBased: new fields.BooleanField({
initial: false, initial: false,
label: 'DAGGERHEART.Actions.Settings.ResultBased.label' label: 'DAGGERHEART.ACTIONS.Settings.resultBased.label'
}), }),
value: new fields.EmbeddedDataField(DHActionDiceData), value: new fields.EmbeddedDataField(DHActionDiceData),
valueAlt: new fields.EmbeddedDataField(DHActionDiceData) valueAlt: new fields.EmbeddedDataField(DHActionDiceData)

View file

@ -110,7 +110,7 @@ export default class DHBaseAction extends foundry.abstract.DataModel {
}), }),
resultBased: new fields.BooleanField({ resultBased: new fields.BooleanField({
initial: false, initial: false,
label: 'DAGGERHEART.Actions.Settings.ResultBased.label' label: 'DAGGERHEART.ACTIONS.Settings.resultBased.label'
}), }),
value: new fields.EmbeddedDataField(DHActionDiceData), value: new fields.EmbeddedDataField(DHActionDiceData),
valueAlt: new fields.EmbeddedDataField(DHActionDiceData) valueAlt: new fields.EmbeddedDataField(DHActionDiceData)
@ -563,7 +563,7 @@ export default class DHBaseAction extends foundry.abstract.DataModel {
async toChat(origin) { async toChat(origin) {
const cls = getDocumentClass('ChatMessage'); const cls = getDocumentClass('ChatMessage');
const systemData = { const systemData = {
title: game.i18n.localize('DAGGERHEART.ActionType.action'), title: game.i18n.localize('DAGGERHEART.CONFIG.ActionType.action'),
origin: origin, origin: origin,
img: this.img, img: this.img,
name: this.name, name: this.name,

View file

@ -19,7 +19,7 @@ export default class DHDamageAction extends DHBaseAction {
if (isNaN(formula)) formula = Roll.replaceFormulaData(formula, this.getRollData(data.system ?? data)); if (isNaN(formula)) formula = Roll.replaceFormulaData(formula, this.getRollData(data.system ?? data));
const config = { const config = {
title: game.i18n.format('DAGGERHEART.Chat.DamageRoll.Title', { damage: this.name }), title: game.i18n.format('DAGGERHEART.UI.Chat.damageRoll.title', { damage: this.name }),
roll: { formula }, roll: { formula },
targets: data.system?.targets.filter(t => t.hit) ?? data.targets, targets: data.system?.targets.filter(t => t.hit) ?? data.targets,
hasSave: this.hasSave, hasSave: this.hasSave,

View file

@ -12,7 +12,7 @@ export default class DHEffectAction extends DHBaseAction {
async chatApplyEffects(event, data) { async chatApplyEffects(event, data) {
const cls = getDocumentClass('ChatMessage'), const cls = getDocumentClass('ChatMessage'),
systemData = { systemData = {
title: game.i18n.format('DAGGERHEART.Chat.ApplyEffect.Title', { name: this.name }), title: game.i18n.format('DAGGERHEART.UI.Chat.applyEffect.title', { name: this.name }),
origin: this.actor._id, origin: this.actor._id,
description: '', description: '',
targets: data.targets.map(x => ({ id: x.id, name: x.name, img: x.img, hit: true })), targets: data.targets.map(x => ({ id: x.id, name: x.name, img: x.img, hit: true })),

View file

@ -23,7 +23,7 @@ export default class DHHealingAction extends DHBaseAction {
bonusDamage = []; bonusDamage = [];
const config = { const config = {
title: game.i18n.format('DAGGERHEART.Chat.HealingRoll.Title', { title: game.i18n.format('DAGGERHEART.UI.Chat.healingRoll.title', {
healing: game.i18n.localize(CONFIG.DH.GENERAL.healingTypes[this.healing.type].label) healing: game.i18n.localize(CONFIG.DH.GENERAL.healingTypes[this.healing.type].label)
}), }),
roll: { formula }, roll: { formula },

View file

@ -8,7 +8,7 @@ const resourceField = () =>
}); });
export default class DhpAdversary extends BaseDataActor { export default class DhpAdversary extends BaseDataActor {
static LOCALIZATION_PREFIXES = ['DAGGERHEART.Sheets.Adversary']; static LOCALIZATION_PREFIXES = ['DAGGERHEART.ACTORS.Adversary'];
static get metadata() { static get metadata() {
return foundry.utils.mergeObject(super.metadata, { return foundry.utils.mergeObject(super.metadata, {

View file

@ -251,11 +251,11 @@ export default class DhCharacter extends BaseDataActor {
values: subclassFeatures values: subclassFeatures
}, },
companionFeatures: { companionFeatures: {
title: game.i18n.localize('DAGGERHEART.Sheets.PC.CompanionFeatures'), title: game.i18n.localize('DAGGERHEART.ACTORS.Character.companionFeatures'),
type: 'companion', type: 'companion',
values: companionFeatures values: companionFeatures
}, },
features: { title: game.i18n.localize('DAGGERHEART.Sheets.PC.Features'), type: 'feature', values: features } features: { title: game.i18n.localize('DAGGERHEART.GENERAL.features'), type: 'feature', values: features }
}; };
} }

View file

@ -5,7 +5,7 @@ import ActionField from '../fields/actionField.mjs';
import { adjustDice, adjustRange } from '../../helpers/utils.mjs'; import { adjustDice, adjustRange } from '../../helpers/utils.mjs';
export default class DhCompanion extends BaseDataActor { export default class DhCompanion extends BaseDataActor {
static LOCALIZATION_PREFIXES = ['DAGGERHEART.Sheets.Companion']; static LOCALIZATION_PREFIXES = ['DAGGERHEART.ACTORS.Companion'];
static get metadata() { static get metadata() {
return foundry.utils.mergeObject(super.metadata, { return foundry.utils.mergeObject(super.metadata, {

View file

@ -1,9 +1,8 @@
import BaseDataActor from './base.mjs'; import BaseDataActor from './base.mjs';
import ActionField from '../fields/actionField.mjs';
import ForeignDocumentUUIDArrayField from '../fields/foreignDocumentUUIDArrayField.mjs'; import ForeignDocumentUUIDArrayField from '../fields/foreignDocumentUUIDArrayField.mjs';
export default class DhEnvironment extends BaseDataActor { export default class DhEnvironment extends BaseDataActor {
static LOCALIZATION_PREFIXES = ['DAGGERHEART.Sheets.Environment']; static LOCALIZATION_PREFIXES = ['DAGGERHEART.ACTORS.Environment'];
static get metadata() { static get metadata() {
return foundry.utils.mergeObject(super.metadata, { return foundry.utils.mergeObject(super.metadata, {

View file

@ -14,7 +14,7 @@ export default class DhCountdowns extends foundry.abstract.DataModel {
} }
class DhCountdownData extends foundry.abstract.DataModel { class DhCountdownData extends foundry.abstract.DataModel {
static LOCALIZATION_PREFIXES = ['DAGGERHEART.Countdown']; // Nots ure why this won't work. Setting labels manually for now static LOCALIZATION_PREFIXES = ['DAGGERHEART.APPLICATIONS.Countdown']; // Nots ure why this won't work. Setting labels manually for now
static defineSchema() { static defineSchema() {
const fields = foundry.data.fields; const fields = foundry.data.fields;
@ -62,7 +62,7 @@ class DhCountdown extends foundry.abstract.DataModel {
return { return {
name: new fields.StringField({ name: new fields.StringField({
required: true, required: true,
label: 'DAGGERHEART.Countdown.FIELDS.countdowns.element.name.label' label: 'DAGGERHEART.APPLICATIONS.Countdown.FIELDS.countdowns.element.name.label'
}), }),
img: new fields.FilePathField({ img: new fields.FilePathField({
categories: ['IMAGE'], categories: ['IMAGE'],
@ -90,23 +90,23 @@ class DhCountdown extends foundry.abstract.DataModel {
required: true, required: true,
integer: true, integer: true,
initial: 1, initial: 1,
label: 'DAGGERHEART.Countdown.FIELDS.countdowns.element.progress.current.label' label: 'DAGGERHEART.APPLICATIONS.Countdown.FIELDS.countdowns.element.progress.current.label'
}), }),
max: new fields.NumberField({ max: new fields.NumberField({
required: true, required: true,
integer: true, integer: true,
initial: 1, initial: 1,
label: 'DAGGERHEART.Countdown.FIELDS.countdowns.element.progress.max.label' label: 'DAGGERHEART.APPLICATIONS.Countdown.FIELDS.countdowns.element.progress.max.label'
}), }),
type: new fields.SchemaField({ type: new fields.SchemaField({
value: new fields.StringField({ value: new fields.StringField({
required: true, required: true,
choices: CONFIG.DH.GENERAL.countdownTypes, choices: CONFIG.DH.GENERAL.countdownTypes,
initial: CONFIG.DH.GENERAL.countdownTypes.spotlight.id, initial: CONFIG.DH.GENERAL.countdownTypes.spotlight.id,
label: 'DAGGERHEART.Countdown.FIELDS.countdowns.element.progress.type.value.label' label: 'DAGGERHEART.APPLICATIONS.Countdown.FIELDS.countdowns.element.progress.type.value.label'
}), }),
label: new fields.StringField({ label: new fields.StringField({
label: 'DAGGERHEART.Countdown.FIELDS.countdowns.element.progress.type.label.label' label: 'DAGGERHEART.APPLICATIONS.Countdown.FIELDS.countdowns.element.progress.type.label.label'
}) })
}) })
}) })

View file

@ -43,12 +43,12 @@ export default class DHBeastform extends BaseDataItem {
if (!this.actor) return; if (!this.actor) return;
if (this.actor.type !== 'character') { if (this.actor.type !== 'character') {
ui.notifications.error(game.i18n.localize('DAGGERHEART.UI.notifications.beastformInapplicable')); ui.notifications.error(game.i18n.localize('DAGGERHEART.UI.Notifications.beastformInapplicable'));
return false; return false;
} }
if (this.actor.items.find(x => x.type === 'beastform')) { if (this.actor.items.find(x => x.type === 'beastform')) {
ui.notifications.error(game.i18n.localize('DAGGERHEART.UI.notifications.beastformAlreadyApplied')); ui.notifications.error(game.i18n.localize('DAGGERHEART.UI.Notifications.beastformAlreadyApplied'));
return false; return false;
} }
@ -64,7 +64,7 @@ export default class DHBeastform extends BaseDataItem {
await this.parent.parent.createEmbeddedDocuments('ActiveEffect', [ await this.parent.parent.createEmbeddedDocuments('ActiveEffect', [
{ {
type: 'beastform', type: 'beastform',
name: game.i18n.localize('DAGGERHEART.Sheets.Beastform.beastformEffect'), name: game.i18n.localize('DAGGERHEART.ITEMS.Beastform.beastformEffect'),
img: 'icons/creatures/abilities/paw-print-pair-purple.webp', img: 'icons/creatures/abilities/paw-print-pair-purple.webp',
system: { system: {
isBeastform: true, isBeastform: true,

View file

@ -24,9 +24,9 @@ export default class DHClass extends BaseDataItem {
integer: true, integer: true,
min: 1, min: 1,
initial: 5, initial: 5,
label: 'DAGGERHEART.Sheets.Class.HitPoints' label: 'DAGGERHEART.GENERAL.hitPoints'
}), }),
evasion: new fields.NumberField({ initial: 0, integer: true, label: 'DAGGERHEART.Sheets.Class.Evasion' }), evasion: new fields.NumberField({ initial: 0, integer: true, label: 'DAGGERHEART.GENERAL.evasion' }),
hopeFeatures: new ForeignDocumentUUIDArrayField({ type: 'Item' }), hopeFeatures: new ForeignDocumentUUIDArrayField({ type: 'Item' }),
classFeatures: new ForeignDocumentUUIDArrayField({ type: 'Item' }), classFeatures: new ForeignDocumentUUIDArrayField({ type: 'Item' }),
subclasses: new ForeignDocumentUUIDArrayField({ type: 'Item', required: false }), subclasses: new ForeignDocumentUUIDArrayField({ type: 'Item', required: false }),
@ -67,7 +67,7 @@ export default class DHClass extends BaseDataItem {
if (this.actor?.type === 'character') { if (this.actor?.type === 'character') {
const path = data.system.isMulticlass ? 'system.multiclass.value' : 'system.class.value'; const path = data.system.isMulticlass ? 'system.multiclass.value' : 'system.class.value';
if (foundry.utils.getProperty(this.actor, path)) { if (foundry.utils.getProperty(this.actor, path)) {
ui.notifications.error(game.i18n.localize('DAGGERHEART.Item.Errors.ClassAlreadySelected')); ui.notifications.error(game.i18n.localize('DAGGERHEART.UI.Notifications.classAlreadySelected'));
return false; return false;
} }
} }

View file

@ -40,17 +40,17 @@ export default class DHDomainCard extends BaseDataItem {
if (this.actor?.type === 'character') { if (this.actor?.type === 'character') {
if (!this.actor.system.class.value) { if (!this.actor.system.class.value) {
ui.notifications.error(game.i18n.localize('DAGGERHEART.Item.Errors.NoClassSelected')); ui.notifications.error(game.i18n.localize('DAGGERHEART.UI.Notifications.noClassSelected'));
return false; return false;
} }
if (!this.actor.system.domains.find(x => x === this.domain)) { if (!this.actor.system.domains.find(x => x === this.domain)) {
ui.notifications.error(game.i18n.localize('DAGGERHEART.Item.Errors.LacksDomain')); ui.notifications.error(game.i18n.localize('DAGGERHEART.UI.Notifications.lacksDomain'));
return false; return false;
} }
if (this.actor.system.domainCards.total.find(x => x.name === this.parent.name)) { if (this.actor.system.domainCards.total.find(x => x.name === this.parent.name)) {
ui.notifications.error(game.i18n.localize('DAGGERHEART.Item.Errors.DuplicateDomainCard')); ui.notifications.error(game.i18n.localize('DAGGERHEART.UI.Notifications.duplicateDomainCard'));
return false; return false;
} }
} }

View file

@ -50,13 +50,13 @@ export default class DHSubclass extends BaseDataItem {
x => x.type === 'subclass' && x.system.isMulticlass === data.system.isMulticlass x => x.type === 'subclass' && x.system.isMulticlass === data.system.isMulticlass
); );
if (!classData) { if (!classData) {
ui.notifications.error(game.i18n.localize('DAGGERHEART.Item.Errors.MissingClass')); ui.notifications.error(game.i18n.localize('DAGGERHEART.UI.Notifications.missingClass'));
return false; return false;
} else if (subclassData) { } else if (subclassData) {
ui.notifications.error(game.i18n.localize('DAGGERHEART.Item.Errors.SubclassAlreadySelected')); ui.notifications.error(game.i18n.localize('DAGGERHEART.UI.Notifications.subclassAlreadySelected'));
return false; return false;
} else if (classData.system.subclasses.every(x => x.uuid !== (data.uuid ?? `Item.${data._id}`))) { } else if (classData.system.subclasses.every(x => x.uuid !== (data.uuid ?? `Item.${data._id}`))) {
ui.notifications.error(game.i18n.localize('DAGGERHEART.Item.Errors.SubclassNotInClass')); ui.notifications.error(game.i18n.localize('DAGGERHEART.UI.Notifications.subclassNotInClass'));
return false; return false;
} }
} }

View file

@ -68,9 +68,9 @@ export const CompanionLevelOptionType = {
label: 'Creature Comfort', label: 'Creature Comfort',
features: [ features: [
{ {
name: 'DAGGERHEART.LevelUp.Actions.CreatureComfort.Name', name: 'DAGGERHEART.APPLICATIONS.Levelup.actions.creatureComfort.name',
img: 'icons/magic/life/heart-cross-purple-orange.webp', img: 'icons/magic/life/heart-cross-purple-orange.webp',
description: 'DAGGERHEART.LevelUp.Actions.CreatureComfort.Description' description: 'DAGGERHEART.APPLICATIONS.Levelup.actions.creatureComfort.description'
} }
] ]
}, },
@ -79,9 +79,9 @@ export const CompanionLevelOptionType = {
label: 'Armored', label: 'Armored',
features: [ features: [
{ {
name: 'DAGGERHEART.LevelUp.Actions.Armored.Name', name: 'DAGGERHEART.APPLICATIONS.Levelup.actions.armored.name',
img: 'icons/equipment/shield/kite-wooden-oak-glow.webp', img: 'icons/equipment/shield/kite-wooden-oak-glow.webp',
description: 'DAGGERHEART.LevelUp.Actions.Armored.Description' description: 'DAGGERHEART.APPLICATIONS.Levelup.actions.armored.description'
} }
] ]
}, },
@ -98,9 +98,9 @@ export const CompanionLevelOptionType = {
label: 'Bonded', label: 'Bonded',
features: [ features: [
{ {
name: 'DAGGERHEART.LevelUp.Actions.Bonded.Name', name: 'DAGGERHEART.APPLICATIONS.Levelup.actions.bonded.name',
img: 'icons/magic/life/heart-red-blue.webp', img: 'icons/magic/life/heart-red-blue.webp',
description: 'DAGGERHEART.LevelUp.Actions.Bonded.Description' description: 'DAGGERHEART.APPLICATIONS.Levelup.actions.bonded.description'
} }
] ]
}, },
@ -182,14 +182,14 @@ export const defaultLevelTiers = {
domainCardByLevel: 1, domainCardByLevel: 1,
options: { options: {
trait: { trait: {
label: 'DAGGERHEART.LevelUp.Options.trait', label: 'DAGGERHEART.APPLICATIONS.Levelup.options.trait',
checkboxSelections: 3, checkboxSelections: 3,
minCost: 1, minCost: 1,
type: LevelOptionType.trait.id, type: LevelOptionType.trait.id,
amount: 2 amount: 2
}, },
hitPoint: { hitPoint: {
label: 'DAGGERHEART.LevelUp.Options.hitPoint', label: 'DAGGERHEART.APPLICATIONS.Levelup.options.hitPoint',
checkboxSelections: 2, checkboxSelections: 2,
minCost: 1, minCost: 1,
type: LevelOptionType.hitPoint.id, type: LevelOptionType.hitPoint.id,
@ -197,14 +197,14 @@ export const defaultLevelTiers = {
value: 1 value: 1
}, },
stress: { stress: {
label: 'DAGGERHEART.LevelUp.Options.stress', label: 'DAGGERHEART.APPLICATIONS.Levelup.options.stress',
checkboxSelections: 2, checkboxSelections: 2,
minCost: 1, minCost: 1,
type: LevelOptionType.stress.id, type: LevelOptionType.stress.id,
value: 1 value: 1
}, },
experience: { experience: {
label: 'DAGGERHEART.LevelUp.Options.experience', label: 'DAGGERHEART.APPLICATIONS.Levelup.options.experience',
checkboxSelections: 1, checkboxSelections: 1,
minCost: 1, minCost: 1,
type: LevelOptionType.experience.id, type: LevelOptionType.experience.id,
@ -212,14 +212,14 @@ export const defaultLevelTiers = {
amount: 2 amount: 2
}, },
domainCard: { domainCard: {
label: 'DAGGERHEART.LevelUp.Options.domainCard', label: 'DAGGERHEART.APPLICATIONS.Levelup.options.domainCard',
checkboxSelections: 1, checkboxSelections: 1,
minCost: 1, minCost: 1,
type: LevelOptionType.domainCard.id, type: LevelOptionType.domainCard.id,
amount: 1 amount: 1
}, },
evasion: { evasion: {
label: 'DAGGERHEART.LevelUp.Options.evasion', label: 'DAGGERHEART.APPLICATIONS.Levelup.options.evasion',
checkboxSelections: 1, checkboxSelections: 1,
minCost: 1, minCost: 1,
type: LevelOptionType.evasion.id, type: LevelOptionType.evasion.id,
@ -245,28 +245,28 @@ export const defaultLevelTiers = {
domainCardByLevel: 1, domainCardByLevel: 1,
options: { options: {
trait: { trait: {
label: 'DAGGERHEART.LevelUp.Options.trait', label: 'DAGGERHEART.APPLICATIONS.Levelup.options.trait',
checkboxSelections: 3, checkboxSelections: 3,
minCost: 1, minCost: 1,
type: LevelOptionType.trait.id, type: LevelOptionType.trait.id,
amount: 2 amount: 2
}, },
hitPoint: { hitPoint: {
label: 'DAGGERHEART.LevelUp.Options.hitPoint', label: 'DAGGERHEART.APPLICATIONS.Levelup.options.hitPoint',
checkboxSelections: 2, checkboxSelections: 2,
minCost: 1, minCost: 1,
type: LevelOptionType.hitPoint.id, type: LevelOptionType.hitPoint.id,
value: 1 value: 1
}, },
stress: { stress: {
label: 'DAGGERHEART.LevelUp.Options.stress', label: 'DAGGERHEART.APPLICATIONS.Levelup.options.stress',
checkboxSelections: 2, checkboxSelections: 2,
minCost: 1, minCost: 1,
type: LevelOptionType.stress.id, type: LevelOptionType.stress.id,
value: 1 value: 1
}, },
experience: { experience: {
label: 'DAGGERHEART.LevelUp.Options.experience', label: 'DAGGERHEART.APPLICATIONS.Levelup.options.experience',
checkboxSelections: 1, checkboxSelections: 1,
minCost: 1, minCost: 1,
type: LevelOptionType.experience.id, type: LevelOptionType.experience.id,
@ -274,34 +274,34 @@ export const defaultLevelTiers = {
amount: 2 amount: 2
}, },
domainCard: { domainCard: {
label: 'DAGGERHEART.LevelUp.Options.domainCard', label: 'DAGGERHEART.APPLICATIONS.Levelup.options.domainCard',
checkboxSelections: 1, checkboxSelections: 1,
minCost: 1, minCost: 1,
type: LevelOptionType.domainCard.id, type: LevelOptionType.domainCard.id,
amount: 1 amount: 1
}, },
evasion: { evasion: {
label: 'DAGGERHEART.LevelUp.Options.evasion', label: 'DAGGERHEART.APPLICATIONS.Levelup.options.evasion',
checkboxSelections: 1, checkboxSelections: 1,
minCost: 1, minCost: 1,
type: LevelOptionType.evasion.id, type: LevelOptionType.evasion.id,
value: 1 value: 1
}, },
subclass: { subclass: {
label: 'DAGGERHEART.LevelUp.Options.subclass', label: 'DAGGERHEART.APPLICATIONS.Levelup.options.subclass',
checkboxSelections: 1, checkboxSelections: 1,
minCost: 1, minCost: 1,
type: LevelOptionType.subclass.id type: LevelOptionType.subclass.id
}, },
proficiency: { proficiency: {
label: 'DAGGERHEART.LevelUp.Options.proficiency', label: 'DAGGERHEART.APPLICATIONS.Levelup.options.proficiency',
checkboxSelections: 2, checkboxSelections: 2,
minCost: 2, minCost: 2,
type: LevelOptionType.proficiency.id, type: LevelOptionType.proficiency.id,
value: 1 value: 1
}, },
multiclass: { multiclass: {
label: 'DAGGERHEART.LevelUp.Options.multiclass', label: 'DAGGERHEART.APPLICATIONS.Levelup.options.multiclass',
checkboxSelections: 2, checkboxSelections: 2,
minCost: 2, minCost: 2,
type: LevelOptionType.multiclass.id type: LevelOptionType.multiclass.id
@ -326,28 +326,28 @@ export const defaultLevelTiers = {
domainCardByLevel: 1, domainCardByLevel: 1,
options: { options: {
trait: { trait: {
label: 'DAGGERHEART.LevelUp.Options.trait', label: 'DAGGERHEART.APPLICATIONS.Levelup.options.trait',
checkboxSelections: 3, checkboxSelections: 3,
minCost: 1, minCost: 1,
type: LevelOptionType.trait.id, type: LevelOptionType.trait.id,
amount: 2 amount: 2
}, },
hitPoint: { hitPoint: {
label: 'DAGGERHEART.LevelUp.Options.hitPoint', label: 'DAGGERHEART.APPLICATIONS.Levelup.options.hitPoint',
checkboxSelections: 2, checkboxSelections: 2,
minCost: 1, minCost: 1,
type: LevelOptionType.hitPoint.id, type: LevelOptionType.hitPoint.id,
value: 1 value: 1
}, },
stress: { stress: {
label: 'DAGGERHEART.LevelUp.Options.stress', label: 'DAGGERHEART.APPLICATIONS.Levelup.options.stress',
checkboxSelections: 2, checkboxSelections: 2,
minCost: 1, minCost: 1,
type: LevelOptionType.stress.id, type: LevelOptionType.stress.id,
value: 1 value: 1
}, },
experience: { experience: {
label: 'DAGGERHEART.LevelUp.Options.experience', label: 'DAGGERHEART.APPLICATIONS.Levelup.options.experience',
checkboxSelections: 1, checkboxSelections: 1,
minCost: 1, minCost: 1,
type: LevelOptionType.experience.id, type: LevelOptionType.experience.id,
@ -355,34 +355,34 @@ export const defaultLevelTiers = {
amount: 2 amount: 2
}, },
domainCard: { domainCard: {
label: 'DAGGERHEART.LevelUp.Options.domainCard', label: 'DAGGERHEART.APPLICATIONS.Levelup.options.domainCard',
checkboxSelections: 1, checkboxSelections: 1,
minCost: 1, minCost: 1,
type: LevelOptionType.domainCard.id, type: LevelOptionType.domainCard.id,
amount: 1 amount: 1
}, },
evasion: { evasion: {
label: 'DAGGERHEART.LevelUp.Options.evasion', label: 'DAGGERHEART.APPLICATIONS.Levelup.options.evasion',
checkboxSelections: 1, checkboxSelections: 1,
minCost: 1, minCost: 1,
type: LevelOptionType.evasion.id, type: LevelOptionType.evasion.id,
value: 1 value: 1
}, },
subclass: { subclass: {
label: 'DAGGERHEART.LevelUp.Options.subclass', label: 'DAGGERHEART.APPLICATIONS.Levelup.options.subclass',
checkboxSelections: 1, checkboxSelections: 1,
minCost: 1, minCost: 1,
type: LevelOptionType.subclass.id type: LevelOptionType.subclass.id
}, },
proficiency: { proficiency: {
label: 'DAGGERHEART.LevelUp.Options.proficiency', label: 'DAGGERHEART.APPLICATIONS.Levelup.options.proficiency',
checkboxSelections: 2, checkboxSelections: 2,
minCost: 2, minCost: 2,
type: LevelOptionType.proficiency.id, type: LevelOptionType.proficiency.id,
value: 1 value: 1
}, },
multiclass: { multiclass: {
label: 'DAGGERHEART.LevelUp.Options.multiclass', label: 'DAGGERHEART.APPLICATIONS.Levelup.options.multiclass',
checkboxSelections: 2, checkboxSelections: 2,
minCost: 2, minCost: 2,
type: LevelOptionType.multiclass.id type: LevelOptionType.multiclass.id
@ -406,7 +406,7 @@ export const defaultCompanionTier = {
domainCardByLevel: 0, domainCardByLevel: 0,
options: { options: {
experience: { experience: {
label: 'DAGGERHEART.LevelUp.Options.intelligent', label: 'DAGGERHEART.APPLICATIONS.Levelup.options.intelligent',
checkboxSelections: 3, checkboxSelections: 3,
minCost: 1, minCost: 1,
type: LevelOptionType.experience.id, type: LevelOptionType.experience.id,
@ -414,28 +414,28 @@ export const defaultCompanionTier = {
amount: 1 amount: 1
}, },
hope: { hope: {
label: 'DAGGERHEART.LevelUp.Options.lightInTheDark', label: 'DAGGERHEART.APPLICATIONS.Levelup.options.lightInTheDark',
checkboxSelections: 1, checkboxSelections: 1,
minCost: 1, minCost: 1,
type: CompanionLevelOptionType.hope.id, type: CompanionLevelOptionType.hope.id,
value: 1 value: 1
}, },
creatureComfort: { creatureComfort: {
label: 'DAGGERHEART.LevelUp.Options.creatureComfort', label: 'DAGGERHEART.APPLICATIONS.Levelup.options.creatureComfort',
checkboxSelections: 1, checkboxSelections: 1,
minCost: 1, minCost: 1,
type: CompanionLevelOptionType.creatureComfort.id, type: CompanionLevelOptionType.creatureComfort.id,
value: 1 value: 1
}, },
armored: { armored: {
label: 'DAGGERHEART.LevelUp.Options.armored', label: 'DAGGERHEART.APPLICATIONS.Levelup.options.armored',
checkboxSelections: 1, checkboxSelections: 1,
minCost: 1, minCost: 1,
type: CompanionLevelOptionType.armored.id, type: CompanionLevelOptionType.armored.id,
value: 1 value: 1
}, },
vicious: { vicious: {
label: 'DAGGERHEART.LevelUp.Options.vicious', label: 'DAGGERHEART.APPLICATIONS.Levelup.options.vicious',
checkboxSelections: 3, checkboxSelections: 3,
minCost: 1, minCost: 1,
type: CompanionLevelOptionType.vicious.id, type: CompanionLevelOptionType.vicious.id,
@ -443,21 +443,21 @@ export const defaultCompanionTier = {
amount: 1 amount: 1
}, },
stress: { stress: {
label: 'DAGGERHEART.LevelUp.Options.resilient', label: 'DAGGERHEART.APPLICATIONS.Levelup.options.resilient',
checkboxSelections: 3, checkboxSelections: 3,
minCost: 1, minCost: 1,
type: LevelOptionType.stress.id, type: LevelOptionType.stress.id,
value: 1 value: 1
}, },
bonded: { bonded: {
label: 'DAGGERHEART.LevelUp.Options.bonded', label: 'DAGGERHEART.APPLICATIONS.Levelup.options.bonded',
checkboxSelections: 1, checkboxSelections: 1,
minCost: 1, minCost: 1,
type: CompanionLevelOptionType.bonded.id, type: CompanionLevelOptionType.bonded.id,
value: 1 value: 1
}, },
evasion: { evasion: {
label: 'DAGGERHEART.LevelUp.Options.aware', label: 'DAGGERHEART.APPLICATIONS.Levelup.options.aware',
checkboxSelections: 3, checkboxSelections: 3,
minCost: 1, minCost: 1,
type: LevelOptionType.evasion.id, type: LevelOptionType.evasion.id,

View file

@ -8,7 +8,7 @@ export default class DhAppearance extends foundry.abstract.DataModel {
required: true, required: true,
choices: fearDisplay, choices: fearDisplay,
initial: fearDisplay.token.value, initial: fearDisplay.token.value,
label: 'DAGGERHEART.Settings.Appearance.FIELDS.displayFear.label' label: 'DAGGERHEART.SETTINGS.Appearance.FIELDS.displayFear.label'
}), }),
dualityColorScheme: new fields.StringField({ dualityColorScheme: new fields.StringField({
required: true, required: true,
@ -48,10 +48,10 @@ export default class DhAppearance extends foundry.abstract.DataModel {
export const DualityRollColor = { export const DualityRollColor = {
colorful: { colorful: {
value: 'colorful', value: 'colorful',
label: 'DAGGERHEART.Settings.DualityRollColor.Options.Colorful' label: 'DAGGERHEART.SETTINGS.DualityRollColor.options.colorful'
}, },
normal: { normal: {
value: 'normal', value: 'normal',
label: 'DAGGERHEART.Settings.DualityRollColor.Options.Normal' label: 'DAGGERHEART.SETTINGS.DualityRollColor.options.normal'
} }
}; };

View file

@ -1,5 +1,5 @@
export default class DhAutomation extends foundry.abstract.DataModel { export default class DhAutomation extends foundry.abstract.DataModel {
static LOCALIZATION_PREFIXES = ['DAGGERHEART.Settings.Automation']; // Doesn't work for some reason static LOCALIZATION_PREFIXES = ['DAGGERHEART.SETTINGS.Automation']; // Doesn't work for some reason
static defineSchema() { static defineSchema() {
const fields = foundry.data.fields; const fields = foundry.data.fields;

View file

@ -1,7 +1,7 @@
import { defaultRestOptions } from '../../config/generalConfig.mjs'; import { defaultRestOptions } from '../../config/generalConfig.mjs';
export default class DhHomebrew extends foundry.abstract.DataModel { export default class DhHomebrew extends foundry.abstract.DataModel {
static LOCALIZATION_PREFIXES = ['DAGGERHEART.Settings.Homebrew']; // Doesn't work for some reason static LOCALIZATION_PREFIXES = ['DAGGERHEART.SETTINGS.Homebrew']; // Doesn't work for some reason
static defineSchema() { static defineSchema() {
const fields = foundry.data.fields; const fields = foundry.data.fields;
@ -11,7 +11,7 @@ export default class DhHomebrew extends foundry.abstract.DataModel {
integer: true, integer: true,
min: 0, min: 0,
initial: 12, initial: 12,
label: 'DAGGERHEART.Settings.Homebrew.FIELDS.maxFear.label' label: 'DAGGERHEART.SETTINGS.Homebrew.FIELDS.maxFear.label'
}), }),
traitArray: new fields.ArrayField(new fields.NumberField({ required: true, integer: true }), { traitArray: new fields.ArrayField(new fields.NumberField({ required: true, integer: true }), {
initial: () => [2, 1, 1, 0, 0, -1] initial: () => [2, 1, 1, 0, 0, -1]
@ -20,32 +20,32 @@ export default class DhHomebrew extends foundry.abstract.DataModel {
enabled: new fields.BooleanField({ enabled: new fields.BooleanField({
required: true, required: true,
initial: false, initial: false,
label: 'DAGGERHEART.Settings.Homebrew.Currency.enabled' label: 'DAGGERHEART.SETTINGS.Homebrew.currency.enabled'
}), }),
title: new fields.StringField({ title: new fields.StringField({
required: true, required: true,
initial: 'Gold', initial: 'Gold',
label: 'DAGGERHEART.Settings.Homebrew.Currency.currencyName' label: 'DAGGERHEART.SETTINGS.Homebrew.currency.currencyName'
}), }),
coins: new fields.StringField({ coins: new fields.StringField({
required: true, required: true,
initial: 'Coins', initial: 'Coins',
label: 'DAGGERHEART.Settings.Homebrew.Currency.coinName' label: 'DAGGERHEART.SETTINGS.Homebrew.currency.coinName'
}), }),
handfulls: new fields.StringField({ handfulls: new fields.StringField({
required: true, required: true,
initial: 'Handfulls', initial: 'Handfulls',
label: 'DAGGERHEART.Settings.Homebrew.Currency.handfullName' label: 'DAGGERHEART.SETTINGS.Homebrew.currency.handfullName'
}), }),
bags: new fields.StringField({ bags: new fields.StringField({
required: true, required: true,
initial: 'Bags', initial: 'Bags',
label: 'DAGGERHEART.Settings.Homebrew.Currency.bagName' label: 'DAGGERHEART.SETTINGS.Homebrew.currency.bagName'
}), }),
chests: new fields.StringField({ chests: new fields.StringField({
required: true, required: true,
initial: 'Chests', initial: 'Chests',
label: 'DAGGERHEART.Settings.Homebrew.Currency.chestName' label: 'DAGGERHEART.SETTINGS.Homebrew.currency.chestName'
}) })
}), }),
restMoves: new fields.SchemaField({ restMoves: new fields.SchemaField({

View file

@ -2,16 +2,24 @@ export default class DhRangeMeasurement extends foundry.abstract.DataModel {
static defineSchema() { static defineSchema() {
const fields = foundry.data.fields; const fields = foundry.data.fields;
return { return {
enabled: new fields.BooleanField({ required: true, initial: false, label: 'DAGGERHEART.General.Enabled' }), enabled: new fields.BooleanField({ required: true, initial: false, label: 'DAGGERHEART.GENERAL.enabled' }),
melee: new fields.NumberField({ required: true, initial: 5, label: 'DAGGERHEART.Range.melee.name' }), melee: new fields.NumberField({ required: true, initial: 5, label: 'DAGGERHEART.CONFIG.Range.melee.name' }),
veryClose: new fields.NumberField({ veryClose: new fields.NumberField({
required: true, required: true,
initial: 15, initial: 15,
label: 'DAGGERHEART.Range.veryClose.name' label: 'DAGGERHEART.CONFIG.Range.veryClose.name'
}), }),
close: new fields.NumberField({ required: true, initial: 30, label: 'DAGGERHEART.Range.close.name' }), close: new fields.NumberField({
far: new fields.NumberField({ required: true, initial: 60, label: 'DAGGERHEART.Range.far.name' }), required: true,
veryFar: new fields.NumberField({ required: true, initial: 120, label: 'DAGGERHEART.Range.veryFar.name' }) initial: 30,
label: 'DAGGERHEART.CONFIG.Range.close.name'
}),
far: new fields.NumberField({ required: true, initial: 60, label: 'DAGGERHEART.CONFIG.Range.far.name' }),
veryFar: new fields.NumberField({
required: true,
initial: 120,
label: 'DAGGERHEART.CONFIG.Range.veryFar.name'
})
}; };
} }
} }

View file

@ -1,5 +1,5 @@
export default class DhVariantRules extends foundry.abstract.DataModel { export default class DhVariantRules extends foundry.abstract.DataModel {
static LOCALIZATION_PREFIXES = ['DAGGERHEART.Settings.VariantRules']; static LOCALIZATION_PREFIXES = ['DAGGERHEART.SETTINGS.VariantRules'];
static defineSchema() { static defineSchema() {
const fields = foundry.data.fields; const fields = foundry.data.fields;
@ -8,18 +8,18 @@ export default class DhVariantRules extends foundry.abstract.DataModel {
enabled: new fields.BooleanField({ enabled: new fields.BooleanField({
required: true, required: true,
initial: false, initial: false,
label: 'DAGGERHEART.Settings.VariantRules.FIELDS.actionTokens.enabled.label' label: 'DAGGERHEART.SETTINGS.VariantRules.FIELDS.actionTokens.enabled.label'
}), }),
tokens: new fields.NumberField({ tokens: new fields.NumberField({
required: true, required: true,
integer: true, integer: true,
initial: 3, initial: 3,
label: 'DAGGERHEART.Settings.VariantRules.FIELDS.actionTokens.tokens.label' label: 'DAGGERHEART.SETTINGS.VariantRules.FIELDS.actionTokens.tokens.label'
}) })
}), }),
useCoins: new fields.BooleanField({ useCoins: new fields.BooleanField({
initial: false, initial: false,
label: 'DAGGERHEART.Settings.VariantRules.FIELDS.useCoins.label' label: 'DAGGERHEART.SETTINGS.VariantRules.FIELDS.useCoins.label'
}) })
}; };
} }

View file

@ -71,10 +71,10 @@ export default class DualityRoll extends D20Roll {
get totalLabel() { get totalLabel() {
const label = this.withHope const label = this.withHope
? 'DAGGERHEART.General.Hope' ? 'DAGGERHEART.GENERAL.hope'
: this.withFear : this.withFear
? 'DAGGERHEART.General.Fear' ? 'DAGGERHEART.GENERAL.fear'
: 'DAGGERHEART.General.CriticalSuccess'; : 'DAGGERHEART.GENERAL.criticalSuccess';
return game.i18n.localize(label); return game.i18n.localize(label);
} }
@ -119,7 +119,7 @@ export default class DualityRoll extends D20Roll {
this.options.roll.modifiers = []; this.options.roll.modifiers = [];
if (!this.options.roll.trait) return; if (!this.options.roll.trait) return;
this.options.roll.modifiers.push({ this.options.roll.modifiers.push({
label: `DAGGERHEART.Abilities.${this.options.roll.trait}.name`, label: `DAGGERHEART.CONFIG.Traits.${this.options.roll.trait}.name`,
value: Roll.replaceFormulaData(`@traits.${this.options.roll.trait}.total`, this.data) value: Roll.replaceFormulaData(`@traits.${this.options.roll.trait}.total`, this.data)
}); });
} }

View file

@ -32,7 +32,7 @@ export default class DhActiveEffect extends ActiveEffect {
async toChat(origin) { async toChat(origin) {
const cls = getDocumentClass('ChatMessage'); const cls = getDocumentClass('ChatMessage');
const systemData = { const systemData = {
title: game.i18n.localize('DAGGERHEART.ActionType.action'), title: game.i18n.localize('DAGGERHEART.CONFIG.ActionType.action'),
origin: origin, origin: origin,
img: this.img, img: this.img,
name: this.name, name: this.name,

View file

@ -27,14 +27,14 @@ export default class DhpActor extends Actor {
game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.LevelTiers).tiers game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.LevelTiers).tiers
).reduce((acc, tier) => Math.max(acc, tier.levels.end), 0); ).reduce((acc, tier) => Math.max(acc, tier.levels.end), 0);
if (newLevel > maxLevel) { if (newLevel > maxLevel) {
ui.notifications.warn(game.i18n.localize('DAGGERHEART.Sheets.PC.Errors.tooHighLevel')); ui.notifications.warn(game.i18n.localize('DAGGERHEART.UI.Notifications.tooHighLevel'));
} }
await this.update({ 'system.levelData.level.changed': Math.min(newLevel, maxLevel) }); await this.update({ 'system.levelData.level.changed': Math.min(newLevel, maxLevel) });
} else { } else {
const usedLevel = Math.max(newLevel, 1); const usedLevel = Math.max(newLevel, 1);
if (newLevel < 1) { if (newLevel < 1) {
ui.notifications.warn(game.i18n.localize('DAGGERHEART.Sheets.PC.Errors.tooLowLevel')); ui.notifications.warn(game.i18n.localize('DAGGERHEART.UI.Notifications.tooLowLevel'));
} }
const updatedLevelups = Object.keys(this.system.levelData.levelups).reduce((acc, level) => { const updatedLevelups = Object.keys(this.system.levelData.levelups).reduce((acc, level) => {
@ -405,7 +405,7 @@ export default class DhpActor extends Actor {
const cls = getDocumentClass('ChatMessage'); const cls = getDocumentClass('ChatMessage');
const systemData = { const systemData = {
title: game.i18n.format('DAGGERHEART.Chat.DamageRoll.Title', { damage: title }), title: game.i18n.format('DAGGERHEART.UI.Chat.damageRoll.title', { damage: title }),
roll: rollString, roll: rollString,
damage: { damage: {
total: rollResult.total, total: rollResult.total,
@ -465,7 +465,7 @@ export default class DhpActor extends Actor {
const cls = getDocumentClass('ChatMessage'); const cls = getDocumentClass('ChatMessage');
const msg = new cls({ const msg = new cls({
user: game.user.id, user: game.user.id,
content: game.i18n.format('DAGGERHEART.DamageReduction.Notifications.DamageIgnore', { content: game.i18n.format('DAGGERHEART.UI.Notifications.damageIgnore', {
character: this.name character: this.name
}) })
}); });

View file

@ -114,12 +114,12 @@ export default class DHItem extends foundry.documents.Item {
const systemData = { const systemData = {
title: title:
this.type === 'ancestry' this.type === 'ancestry'
? game.i18n.localize('DAGGERHEART.Chat.FoundationCard.AncestryTitle') ? game.i18n.localize('DAGGERHEART.UI.Chat.foundationCard.ancestryTitle')
: this.type === 'community' : this.type === 'community'
? game.i18n.localize('DAGGERHEART.Chat.FoundationCard.CommunityTitle') ? game.i18n.localize('DAGGERHEART.UI.Chat.foundationCard.communityTitle')
: this.type === 'feature' : this.type === 'feature'
? game.i18n.localize('TYPES.Item.feature') ? game.i18n.localize('TYPES.Item.feature')
: game.i18n.localize('DAGGERHEART.Chat.FoundationCard.SubclassFeatureTitle'), : game.i18n.localize('DAGGERHEART.UI.Chat.foundationCard.subclassFeatureTitle'),
origin: origin, origin: origin,
img: this.img, img: this.img,
name: this.name, name: this.name,

View file

@ -11,15 +11,15 @@ export default function DhDualityRollEnricher(match, _options) {
export function getDualityMessage(roll) { export function getDualityMessage(roll) {
const traitLabel = const traitLabel =
roll.trait && abilities[roll.trait] roll.trait && abilities[roll.trait]
? game.i18n.format('DAGGERHEART.General.Check', { ? game.i18n.format('DAGGERHEART.GENERAL.check', {
check: game.i18n.localize(abilities[roll.trait].label) check: game.i18n.localize(abilities[roll.trait].label)
}) })
: null; : null;
const label = traitLabel ?? game.i18n.localize('DAGGERHEART.General.Duality'); const label = traitLabel ?? game.i18n.localize('DAGGERHEART.GENERAL.duality');
const dataLabel = traitLabel const dataLabel = traitLabel
? game.i18n.localize(abilities[roll.trait].label) ? game.i18n.localize(abilities[roll.trait].label)
: game.i18n.localize('DAGGERHEART.General.Duality'); : game.i18n.localize('DAGGERHEART.GENERAL.duality');
const dualityElement = document.createElement('span'); const dualityElement = document.createElement('span');
dualityElement.innerHTML = ` dualityElement.innerHTML = `

View file

@ -31,7 +31,7 @@ export default function DhTemplateEnricher(match, _options) {
const templateElement = document.createElement('span'); const templateElement = document.createElement('span');
templateElement.innerHTML = ` templateElement.innerHTML = `
<button class="measured-template-button" data-type="${type}" data-range="${range}"> <button class="measured-template-button" data-type="${type}" data-range="${range}">
${game.i18n.localize(`TEMPLATE.TYPES.${type}`)} - ${game.i18n.localize(`DAGGERHEART.Range.${range}.name`)} ${game.i18n.localize(`TEMPLATE.TYPES.${type}`)} - ${game.i18n.localize(`DAGGERHEART.CONFIG.Range.${range}.name`)}
</button> </button>
`; `;

View file

@ -106,16 +106,16 @@ export const getCommandTarget = () => {
if (!game.user.isGM) { if (!game.user.isGM) {
target = game.user.character; target = game.user.character;
if (!target) { if (!target) {
ui.notifications.error(game.i18n.localize('DAGGERHEART.Notification.Error.NoAssignedPlayerCharacter')); ui.notifications.error(game.i18n.localize('DAGGERHEART.UI.Notifications.noAssignedPlayerCharacter'));
return null; return null;
} }
} }
if (!target) { if (!target) {
ui.notifications.error(game.i18n.localize('DAGGERHEART.Notification.Error.NoSelectedToken')); ui.notifications.error(game.i18n.localize('DAGGERHEART.UI.Notifications.noSelectedToken'));
return null; return null;
} }
if (target.type !== 'character') { if (target.type !== 'character') {
ui.notifications.error(game.i18n.localize('DAGGERHEART.Notification.Error.OnlyUseableByPC')); ui.notifications.error(game.i18n.localize('DAGGERHEART.UI.Notifications.onlyUseableByPC'));
return null; return null;
} }
@ -236,13 +236,13 @@ Roll.replaceFormulaData = function (formula, data = {}, { missing, warn = false
export const getDamageLabel = damage => { export const getDamageLabel = damage => {
switch (damage) { switch (damage) {
case 3: case 3:
return game.i18n.localize('DAGGERHEART.General.Damage.Severe'); return game.i18n.localize('DAGGERHEART.GENERAL.Damage.severe');
case 2: case 2:
return game.i18n.localize('DAGGERHEART.General.Damage.Major'); return game.i18n.localize('DAGGERHEART.GENERAL.Damage.major');
case 1: case 1:
return game.i18n.localize('DAGGERHEART.General.Damage.Minor'); return game.i18n.localize('DAGGERHEART.GENERAL.Damage.minor');
case 0: case 0:
return game.i18n.localize('DAGGERHEART.General.Damage.None'); return game.i18n.localize('DAGGERHEART.GENERAL.Damage.none');
} }
}; };

View file

@ -68,43 +68,43 @@ const registerMenuSettings = () => {
const registerMenus = () => { const registerMenus = () => {
game.settings.registerMenu(CONFIG.DH.id, CONFIG.DH.SETTINGS.menu.Automation.Name, { game.settings.registerMenu(CONFIG.DH.id, CONFIG.DH.SETTINGS.menu.Automation.Name, {
name: game.i18n.localize('DAGGERHEART.Settings.Menu.Automation.Name'), name: game.i18n.localize('DAGGERHEART.SETTINGS.Menu.automation.name'),
label: game.i18n.localize('DAGGERHEART.Settings.Menu.Automation.Label'), label: game.i18n.localize('DAGGERHEART.SETTINGS.Menu.automation.label'),
hint: game.i18n.localize('DAGGERHEART.Settings.Menu.Automation.Hint'), hint: game.i18n.localize('DAGGERHEART.SETTINGS.Menu.automation.hint'),
icon: CONFIG.DH.SETTINGS.menu.Automation.Icon, icon: CONFIG.DH.SETTINGS.menu.Automation.Icon,
type: DhAutomationSettings, type: DhAutomationSettings,
restricted: true restricted: true
}); });
game.settings.registerMenu(CONFIG.DH.id, CONFIG.DH.SETTINGS.menu.Homebrew.Name, { game.settings.registerMenu(CONFIG.DH.id, CONFIG.DH.SETTINGS.menu.Homebrew.Name, {
name: game.i18n.localize('DAGGERHEART.Settings.Menu.Homebrew.Name'), name: game.i18n.localize('DAGGERHEART.SETTINGS.Menu.homebrew.name'),
label: game.i18n.localize('DAGGERHEART.Settings.Menu.Homebrew.Label'), label: game.i18n.localize('DAGGERHEART.SETTINGS.Menu.homebrew.label'),
hint: game.i18n.localize('DAGGERHEART.Settings.Menu.Homebrew.Hint'), hint: game.i18n.localize('DAGGERHEART.SETTINGS.Menu.homebrew.hint'),
icon: CONFIG.DH.SETTINGS.menu.Homebrew.Icon, icon: CONFIG.DH.SETTINGS.menu.Homebrew.Icon,
type: DhHomebrewSettings, type: DhHomebrewSettings,
restricted: true restricted: true
}); });
game.settings.registerMenu(CONFIG.DH.id, CONFIG.DH.SETTINGS.menu.Range.Name, { game.settings.registerMenu(CONFIG.DH.id, CONFIG.DH.SETTINGS.menu.Range.Name, {
name: game.i18n.localize('DAGGERHEART.Settings.Menu.Range.Name'), name: game.i18n.localize('DAGGERHEART.SETTINGS.Menu.range.name'),
label: game.i18n.localize('DAGGERHEART.Settings.Menu.Range.Label'), label: game.i18n.localize('DAGGERHEART.SETTINGS.Menu.range.label'),
hint: game.i18n.localize('DAGGERHEART.Settings.Menu.Range.Hint'), hint: game.i18n.localize('DAGGERHEART.SETTINGS.Menu.range.hint'),
icon: CONFIG.DH.SETTINGS.menu.Range.Icon, icon: CONFIG.DH.SETTINGS.menu.Range.Icon,
type: DhRangeMeasurementSettings, type: DhRangeMeasurementSettings,
restricted: true restricted: true
}); });
game.settings.registerMenu(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.appearance, { game.settings.registerMenu(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.appearance, {
name: game.i18n.localize('DAGGERHEART.Settings.Menu.Appearance.title'), name: game.i18n.localize('DAGGERHEART.SETTINGS.Menu.appearance.title'),
label: game.i18n.localize('DAGGERHEART.Settings.Menu.Appearance.label'), label: game.i18n.localize('DAGGERHEART.SETTINGS.Menu.appearance.label'),
hint: game.i18n.localize('DAGGERHEART.Settings.Menu.Appearance.hint'), hint: game.i18n.localize('DAGGERHEART.SETTINGS.Menu.appearance.hint'),
icon: 'fa-solid fa-palette', icon: 'fa-solid fa-palette',
type: DhAppearanceSettings, type: DhAppearanceSettings,
restricted: false restricted: false
}); });
game.settings.registerMenu(CONFIG.DH.id, CONFIG.DH.SETTINGS.menu.VariantRules.Name, { game.settings.registerMenu(CONFIG.DH.id, CONFIG.DH.SETTINGS.menu.VariantRules.Name, {
name: game.i18n.localize('DAGGERHEART.Settings.Menu.VariantRules.title'), name: game.i18n.localize('DAGGERHEART.SETTINGS.Menu.variantRules.title'),
label: game.i18n.localize('DAGGERHEART.Settings.Menu.VariantRules.label'), label: game.i18n.localize('DAGGERHEART.SETTINGS.Menu.variantRules.label'),
hint: game.i18n.localize('DAGGERHEART.Settings.Menu.VariantRules.hint'), hint: game.i18n.localize('DAGGERHEART.SETTINGS.Menu.variantRules.hint'),
icon: CONFIG.DH.SETTINGS.menu.VariantRules.Icon, icon: CONFIG.DH.SETTINGS.menu.VariantRules.Icon,
type: DhVariantRuleSettings, type: DhVariantRuleSettings,
restricted: false restricted: false
@ -120,8 +120,8 @@ const registerNonConfigSettings = () => {
}); });
game.settings.register(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Resources.Fear, { game.settings.register(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Resources.Fear, {
name: game.i18n.localize('DAGGERHEART.Settings.Resources.Fear.Name'), name: game.i18n.localize('DAGGERHEART.SETTINGS.Resources.fear.name'),
hint: game.i18n.localize('DAGGERHEART.Settings.Resources.Fear.Hint'), hint: game.i18n.localize('DAGGERHEART.SETTINGS.Resources.fear.hint'),
scope: 'world', scope: 'world',
config: false, config: false,
type: Number, type: Number,

View file

@ -1,17 +1,17 @@
<fieldset class="action-category"> <fieldset class="action-category">
<legend class="action-category-label"> <legend class="action-category-label">
<div>{{localize "DAGGERHEART.Actions.Config.Beastform.label"}}</div> <div>{{localize "DAGGERHEART.ACTIONS.Config.beastform.label"}}</div>
</legend> </legend>
<div class="action-category-data open"> <div class="action-category-data open">
<div class="hint-group"> <div class="hint-group">
<div class="form-fields"> <div class="form-fields">
<label>{{localize "DAGGERHEART.Actions.Config.Beastform.exact"}}</label> <label>{{localize "DAGGERHEART.ACTIONS.Config.beastform.exact"}}</label>
<select name="beastform.tierAccess.exact" data-dtype="Number"> <select name="beastform.tierAccess.exact" data-dtype="Number">
{{selectOptions tierOptions selected=@root.source.beastform.tierAccess.exact labelAttr="label" valueAttr="key" blank="" }} {{selectOptions tierOptions selected=@root.source.beastform.tierAccess.exact labelAttr="label" valueAttr="key" blank="" }}
</select> </select>
</div> </div>
<p class="hint">{{localize "DAGGERHEART.Actions.Config.Beastform.exactHint"}}</p> <p class="hint">{{localize "DAGGERHEART.ACTIONS.Config.beastform.exactHint"}}</p>
</div> </div>
</div> </div>
</fieldset> </fieldset>

View file

@ -9,7 +9,7 @@
{{formField ../fields.type choices=(@root.disableOption index ../fields.type.choices ../source) label="Resource" value=cost.type name=(concat "cost." index ".type") localize=true}} {{formField ../fields.type choices=(@root.disableOption index ../fields.type.choices ../source) label="Resource" value=cost.type name=(concat "cost." index ".type") localize=true}}
{{formField ../fields.value label="Amount" value=cost.value name=(concat "cost." index ".value")}} {{formField ../fields.value label="Amount" value=cost.value name=(concat "cost." index ".value")}}
{{formField ../fields.step label="Step" value=cost.step name=(concat "cost." index ".step") disabled=(not cost.scalable)}} {{formField ../fields.step label="Step" value=cost.step name=(concat "cost." index ".step") disabled=(not cost.scalable)}}
<a class="btn" data-tooltip="{{localize "DAGGERHEART.Tooltip.delete"}}" data-action="removeElement" data-index="{{index}}"><i class="fas fa-trash"></i></a> <a class="btn" data-tooltip="{{localize "CONTROLS.CommonDelete"}}" data-action="removeElement" data-index="{{index}}"><i class="fas fa-trash"></i></a>
</div> </div>
{{/each}} {{/each}}
</fieldset> </fieldset>

View file

@ -15,7 +15,7 @@
<input type="hidden" name="effects.{{index}}._id" value="{{effect._id}}"> <input type="hidden" name="effects.{{index}}._id" value="{{effect._id}}">
{{#if @root.source.save.trait}}{{formInput ../fields.onSave value=effect.onSave name=(concat "effects." index ".onSave") dataset=(object tooltip="Applied even if save succeeded" tooltipDirection="UP")}}{{/if}} {{#if @root.source.save.trait}}{{formInput ../fields.onSave value=effect.onSave name=(concat "effects." index ".onSave") dataset=(object tooltip="Applied even if save succeeded" tooltipDirection="UP")}}{{/if}}
<div class="controls"> <div class="controls">
<a data-tooltip="{{localize "DAGGERHEART.Tooltip.delete"}}" data-action="removeEffect" data-index="{{index}}"><i class="fas fa-trash"></i></a> <a data-tooltip="{{localize "CONTROLS.CommonDelete"}}" data-action="removeEffect" data-index="{{index}}"><i class="fas fa-trash"></i></a>
</div> </div>
</div> </div>
{{/each}} {{/each}}

View file

@ -1,4 +1,4 @@
<section class="creation-action-footer"> <section class="creation-action-footer">
<button data-action="close">{{localize "Cancel"}}</button> <button data-action="close">{{localize "Cancel"}}</button>
<button {{#if tabs.setup.finished}}data-action="finish"{{else}}disabled{{/if}}>{{localize "DAGGERHEART.CharacterCreation.FinishCreation"}}</button> <button {{#if tabs.setup.finished}}data-action="finish"{{else}}disabled{{/if}}>{{localize "DAGGERHEART.APPLICATIONS.CharacterCreation.finishCreation"}}</button>
</section> </section>

View file

@ -5,7 +5,7 @@
<a class='{{tab.id}} {{tab.cssClass}}' data-action='tab' data-group='{{tab.group}}' data-tab='{{tab.id}}'> <a class='{{tab.id}} {{tab.cssClass}}' data-action='tab' data-group='{{tab.group}}' data-tab='{{tab.id}}'>
{{localize tab.label}} {{localize tab.label}}
<div class="finish-marker {{#if (eq tab.cssClass 'active')}}active{{/if}}">{{#if tab.finished}}<i class="fa-solid fa-check"></i>{{/if}}</div> <div class="finish-marker {{#if (eq tab.cssClass 'active')}}active{{/if}}">{{#if tab.finished}}<i class="fa-solid fa-check"></i>{{/if}}</div>
{{#if tab.optional}}<div class="descriptor">{{localize "DAGGERHEART.CharacterCreation.Tabs.Optional"}}</div>{{/if}} {{#if tab.optional}}<div class="descriptor">{{localize "DAGGERHEART.GENERAL.Tabs.optional"}}</div>{{/if}}
</a> </a>
{{/each}} {{/each}}
</nav> </nav>

View file

@ -6,11 +6,11 @@
<div class="main-selections-container"> <div class="main-selections-container">
<div class="main-equipment-selection"> <div class="main-equipment-selection">
<fieldset class="equipment-selection"> <fieldset class="equipment-selection">
<legend>{{localize "DAGGERHEART.CharacterCreation.SuggestedArmor"}}</legend> <legend>{{localize "DAGGERHEART.APPLICATIONS.CharacterCreation.suggestedArmor"}}</legend>
<div class="selections-container armor-card"> <div class="selections-container armor-card">
{{#> "systems/daggerheart/templates/components/card-preview.hbs" armor }} {{#> "systems/daggerheart/templates/components/card-preview.hbs" armor }}
{{localize "DAGGERHEART.CharacterCreation.SelectArmor"}} {{localize "DAGGERHEART.APPLICATIONS.CharacterCreation.selectArmor"}}
{{/"systems/daggerheart/templates/components/card-preview.hbs"}} {{/"systems/daggerheart/templates/components/card-preview.hbs"}}
</div> </div>
{{#if armor.suggestion}} {{#if armor.suggestion}}
@ -24,13 +24,13 @@
</fieldset> </fieldset>
<fieldset class="equipment-selection"> <fieldset class="equipment-selection">
<legend>{{localize "DAGGERHEART.CharacterCreation.SuggestedWeapons"}}</legend> <legend>{{localize "DAGGERHEART.APPLICATIONS.CharacterCreation.suggestedWeapons"}}</legend>
<div class="equipment-subsection"> <div class="equipment-subsection">
<div class="equipment-wrapper"> <div class="equipment-wrapper">
<div class="selections-container primary-weapon-card"> <div class="selections-container primary-weapon-card">
{{#> "systems/daggerheart/templates/components/card-preview.hbs" primaryWeapon }} {{#> "systems/daggerheart/templates/components/card-preview.hbs" primaryWeapon }}
{{localize "DAGGERHEART.CharacterCreation.SelectPrimaryWeapon"}} {{localize "DAGGERHEART.APPLICATIONS.CharacterCreation.selectPrimaryWeapon"}}
{{/"systems/daggerheart/templates/components/card-preview.hbs"}} {{/"systems/daggerheart/templates/components/card-preview.hbs"}}
</div> </div>
{{#if primaryWeapon.suggestion}} {{#if primaryWeapon.suggestion}}
@ -45,7 +45,7 @@
<div class="equipment-wrapper"> <div class="equipment-wrapper">
<div class="selections-container secondary-weapon-card"> <div class="selections-container secondary-weapon-card">
{{#> "systems/daggerheart/templates/components/card-preview.hbs" secondaryWeapon }} {{#> "systems/daggerheart/templates/components/card-preview.hbs" secondaryWeapon }}
{{localize "DAGGERHEART.CharacterCreation.SelectSecondaryWeapon"}} {{localize "DAGGERHEART.APPLICATIONS.CharacterCreation.selectSecondaryWeapon"}}
{{/"systems/daggerheart/templates/components/card-preview.hbs"}} {{/"systems/daggerheart/templates/components/card-preview.hbs"}}
</div> </div>
{{#if secondaryWeapon.suggestion}} {{#if secondaryWeapon.suggestion}}
@ -65,7 +65,7 @@
</div> </div>
<div class="main-equipment-selection triple"> <div class="main-equipment-selection triple">
<fieldset class="equipment-selection"> <fieldset class="equipment-selection">
<legend>{{localize "DAGGERHEART.CharacterCreation.StartingItems"}}</legend> <legend>{{localize "DAGGERHEART.APPLICATIONS.CharacterCreation.startingItems"}}</legend>
<div class="simple-equipment-container"> <div class="simple-equipment-container">
{{#each inventory.take}} {{#each inventory.take}}
@ -78,7 +78,7 @@
</fieldset> </fieldset>
<fieldset class="equipment-selection"> <fieldset class="equipment-selection">
<legend>{{localize "DAGGERHEART.CharacterCreation.Choice"}}</legend> <legend>{{localize "DAGGERHEART.APPLICATIONS.CharacterCreation.choice"}}</legend>
<div class="simple-equipment-container"> <div class="simple-equipment-container">
{{#each inventory.choiceA.suggestions}} {{#each inventory.choiceA.suggestions}}
@ -91,7 +91,7 @@
</fieldset> </fieldset>
<fieldset class="equipment-selection"> <fieldset class="equipment-selection">
<legend>{{localize "DAGGERHEART.CharacterCreation.Choice"}}</legend> <legend>{{localize "DAGGERHEART.APPLICATIONS.CharacterCreation.choice"}}</legend>
<div class="simple-equipment-container"> <div class="simple-equipment-container">
{{#each inventory.choiceB.suggestions}} {{#each inventory.choiceB.suggestions}}

View file

@ -9,13 +9,13 @@
<div class="selections-outer-container"> <div class="selections-outer-container">
<div class="selections-container class-card"> <div class="selections-container class-card">
{{#> "systems/daggerheart/templates/components/card-preview.hbs" class }} {{#> "systems/daggerheart/templates/components/card-preview.hbs" class }}
{{localize "DAGGERHEART.CharacterCreation.SelectClass"}} {{localize "DAGGERHEART.APPLICATIONS.CharacterCreation.selectClass"}}
{{/"systems/daggerheart/templates/components/card-preview.hbs"}} {{/"systems/daggerheart/templates/components/card-preview.hbs"}}
</div> </div>
<div class="selections-container subclass-card"> <div class="selections-container subclass-card">
{{#> "systems/daggerheart/templates/components/card-preview.hbs" subclass disabled=(not class.img) }} {{#> "systems/daggerheart/templates/components/card-preview.hbs" subclass disabled=(not class.img) }}
{{localize "DAGGERHEART.CharacterCreation.SelectSubclass"}} {{localize "DAGGERHEART.APPLICATIONS.CharacterCreation.selectSubclass"}}
{{/"systems/daggerheart/templates/components/card-preview.hbs"}} {{/"systems/daggerheart/templates/components/card-preview.hbs"}}
</div> </div>
</div> </div>
@ -23,17 +23,17 @@
{{#if (gte visibility 2)}} {{#if (gte visibility 2)}}
<fieldset class="section-container"> <fieldset class="section-container">
<legend>{{localize "DAGGERHEART.CharacterCreation.Heritage"}}</legend> <legend>{{localize "DAGGERHEART.APPLICATIONS.CharacterCreation.heritage"}}</legend>
<div class="selections-outer-container"> <div class="selections-outer-container">
<div class="selections-container ancestry-card"> <div class="selections-container ancestry-card">
{{#> "systems/daggerheart/templates/components/card-preview.hbs" ancestry }} {{#> "systems/daggerheart/templates/components/card-preview.hbs" ancestry }}
{{localize "DAGGERHEART.CharacterCreation.SelectAncestry"}} {{localize "DAGGERHEART.APPLICATIONS.CharacterCreation.selectAncestry"}}
{{/"systems/daggerheart/templates/components/card-preview.hbs"}} {{/"systems/daggerheart/templates/components/card-preview.hbs"}}
</div> </div>
<div class="selections-container community-card"> <div class="selections-container community-card">
{{#> "systems/daggerheart/templates/components/card-preview.hbs" community }} {{#> "systems/daggerheart/templates/components/card-preview.hbs" community }}
{{localize "DAGGERHEART.CharacterCreation.SelectCommunity"}} {{localize "DAGGERHEART.APPLICATIONS.CharacterCreation.selectCommunity"}}
{{/"systems/daggerheart/templates/components/card-preview.hbs"}} {{/"systems/daggerheart/templates/components/card-preview.hbs"}}
</div> </div>
</div> </div>
@ -42,10 +42,10 @@
{{#if (gte visibility 3)}} {{#if (gte visibility 3)}}
<fieldset class="section-container"> <fieldset class="section-container">
<legend>{{localize "DAGGERHEART.CharacterCreation.TraitIncreases"}} {{traits.nrSelected}}/{{traits.nrTotal}}</legend> <legend>{{localize "DAGGERHEART.APPLICATIONS.CharacterCreation.traitIncreases"}} {{traits.nrSelected}}/{{traits.nrTotal}}</legend>
<div class="traits-container"> <div class="traits-container">
<fieldset class="section-inner-container"> <fieldset class="section-inner-container">
<legend>{{localize "DAGGERHEART.CharacterCreation.SuggestedTraits"}}</legend> <legend>{{localize "DAGGERHEART.APPLICATIONS.CharacterCreation.suggestedTraits"}}</legend>
<div class="suggested-traits-container"> <div class="suggested-traits-container">
{{#each suggestedTraits}} {{#each suggestedTraits}}
<div class="suggested-trait-container">{{this}}</div> <div class="suggested-trait-container">{{this}}</div>
@ -69,11 +69,11 @@
{{#if (gte visibility 4)}} {{#if (gte visibility 4)}}
<fieldset class="section-container"> <fieldset class="section-container">
<legend>{{localize "DAGGERHEART.CharacterCreation.InitialExperiences"}} {{experience.nrSelected}}/{{experience.nrTotal}}</legend> <legend>{{localize "DAGGERHEART.APPLICATIONS.CharacterCreation.initialExperiences"}} {{experience.nrSelected}}/{{experience.nrTotal}}</legend>
<div class="experiences-inner-container"> <div class="experiences-inner-container">
{{#each experience.values as |experience id|}} {{#each experience.values as |experience id|}}
<div class="experience-container"> <div class="experience-container">
<input class="experience-description" type="text" name="{{concat "experiences." id ".description" }}" value="{{experience.description}}" placeholder="{{localize "DAGGERHEART.CharacterCreation.NewExperience"}}" /> <input class="experience-description" type="text" name="{{concat "experiences." id ".description" }}" value="{{experience.description}}" placeholder="{{localize "DAGGERHEART.APPLICATIONS.CharacterCreation.newExperience"}}" />
<div class="experience-value">{{numberFormat this.value sign=true}}</div> <div class="experience-value">{{numberFormat this.value sign=true}}</div>
</div> </div>
{{/each}} {{/each}}
@ -89,7 +89,7 @@
<div class="selections-container domain-card" data-card="{{id}}"> <div class="selections-container domain-card" data-card="{{id}}">
{{#> "systems/daggerheart/templates/components/card-preview.hbs" domainCard }} {{#> "systems/daggerheart/templates/components/card-preview.hbs" domainCard }}
{{#each @root.class.system.domains }} {{#each @root.class.system.domains }}
<div>{{localize (concat "DAGGERHEART.Domains." this ".label")}}</div> <div>{{localize (concat "DAGGERHEART.GENERAL.Domain." this ".label")}}</div>
{{/each}} {{/each}}
{{/"systems/daggerheart/templates/components/card-preview.hbs"}} {{/"systems/daggerheart/templates/components/card-preview.hbs"}}
</div> </div>

View file

@ -13,6 +13,6 @@
{{/each}} {{/each}}
</div> </div>
<footer> <footer>
<button type="button" data-action="submitBeastform" {{#if (not canSubmit)}}disabled{{/if}}>{{localize "DAGGERHEART.Sheets.Beastform.transform"}}</button> <button type="button" data-action="submitBeastform" {{#if (not canSubmit)}}disabled{{/if}}>{{localize "DAGGERHEART.ITEMS.Beastform.transform"}}</button>
</footer> </footer>
</div> </div>

View file

@ -2,12 +2,12 @@
<div class="section-container padded"> <div class="section-container padded">
<div class="resources-container"> <div class="resources-container">
<div class="resource-container"> <div class="resource-container">
<h4 class="armor-title">{{localize "DAGGERHEART.DamageReduction.ArmorMarks"}}</h4> <h4 class="armor-title">{{localize "DAGGERHEART.APPLICATIONS.DamageReduction.armorMarks"}}</h4>
<div class="markers-subtitle">{{armorMarks}}/{{armorScore}}</div> <div class="markers-subtitle">{{armorMarks}}/{{armorScore}}</div>
</div> </div>
{{#if this.stress}} {{#if this.stress}}
<div class="resource-container"> <div class="resource-container">
<h4 class="armor-title">{{localize "DAGGERHEART.DamageReduction.Stress"}}</h4> <h4 class="armor-title">{{localize "DAGGERHEART.APPLICATIONS.DamageReduction.stress"}}</h4>
<div class="markers-subtitle">{{this.stress.value}}/{{this.stress.maxTotal}}</div> <div class="markers-subtitle">{{this.stress.value}}/{{this.stress.maxTotal}}</div>
</div> </div>
{{/if}} {{/if}}
@ -30,19 +30,19 @@
{{#each marks.stress}} {{#each marks.stress}}
<div <div
class="mark-container {{#if this.selected}}selected{{/if}} {{#if (not @root.basicMarksUsed)}}inactive{{/if}}" class="mark-container {{#if this.selected}}selected{{/if}} {{#if (not @root.basicMarksUsed)}}inactive{{/if}}"
{{#if @root.basicMarksUsed}}data-action="setMarks"{{/if}} data-key="{{@key}}" data-type="stress" data-tooltip="{{#if @root.basicMarksUsed}}{{localize "DAGGERHEART.DamageReduction.ArmorWithStress"}}{{else}}{{localize "DAGGERHEART.DamageReduction.UnncessaryStress"}}{{/if}}" {{#if @root.basicMarksUsed}}data-action="setMarks"{{/if}} data-key="{{@key}}" data-type="stress" data-tooltip="{{#if @root.basicMarksUsed}}{{localize "DAGGERHEART.APPLICATIONS.DamageReduction.armorWithStress"}}{{else}}{{localize "DAGGERHEART.APPLICATIONS.DamageReduction.unncessaryStress"}}{{/if}}"
> >
<i class="fa-solid fa-bolt"></i> <i class="fa-solid fa-bolt"></i>
</div> </div>
{{/each}} {{/each}}
</div> </div>
</h4> </h4>
<div class="markers-subtitle bold">{{localize "DAGGERHEART.DamageReduction.UsedMarks"}}</div> <div class="markers-subtitle bold">{{localize "DAGGERHEART.APPLICATIONS.DamageReduction.usedMarks"}}</div>
</div> </div>
<div class="resources-container"> <div class="resources-container">
<div class="resource-container"> <div class="resource-container">
<h4 class="armor-title">{{localize "DAGGERHEART.DamageReduction.StressReduction"}}</h4> <h4 class="armor-title">{{localize "DAGGERHEART.APPLICATIONS.DamageReduction.stressReduction"}}</h4>
</div> </div>
</div> </div>

View file

@ -13,7 +13,7 @@
{{/each}} {{/each}}
</div> </div>
<footer class="flexrow"> <footer class="flexrow">
<button data-action="takeMove" {{#if (not this.selectedMove)}}disabled{{/if}}>{{localize "DAGGERHEART.Application.DeathMove.TakeMove"}}</button> <button data-action="takeMove" {{#if (not this.selectedMove)}}disabled{{/if}}>{{localize "DAGGERHEART.APPLICATIONS.DeathMove.takeMove"}}</button>
<button data-action="close">{{localize "DAGGERHEART.Application.Cancel"}}</button> <button data-action="close">{{localize "DAGGERHEART.Application.Cancel"}}</button>
</footer> </footer>
</div> </div>

View file

@ -97,7 +97,7 @@
{{else}} {{else}}
<span><i class="fa-regular fa-circle"></i></span> <span><i class="fa-regular fa-circle"></i></span>
{{/if}} {{/if}}
<span class="label">{{localize "DAGGERHEART.General.Advantage.Full"}}</span> <span class="label">{{localize "DAGGERHEART.GENERAL.Advantage.full"}}</span>
</button> </button>
<button class="disadvantage-chip flex1 {{#if (eq advantage -1)}}selected{{/if}}" data-action="updateIsAdvantage" data-advantage="-1"> <button class="disadvantage-chip flex1 {{#if (eq advantage -1)}}selected{{/if}}" data-action="updateIsAdvantage" data-advantage="-1">
{{#if (eq advantage -1)}} {{#if (eq advantage -1)}}
@ -105,7 +105,7 @@
{{else}} {{else}}
<span><i class="fa-regular fa-circle"></i></span> <span><i class="fa-regular fa-circle"></i></span>
{{/if}} {{/if}}
<span class="label">{{localize "DAGGERHEART.General.Disadvantage.Full"}}</span> <span class="label">{{localize "DAGGERHEART.GENERAL.Disadvantage.full"}}</span>
</button> </button>
{{#unless (eq @root.rollType 'D20Roll')}} {{#unless (eq @root.rollType 'D20Roll')}}
<select name="roll.dice.advantageFaces"> <select name="roll.dice.advantageFaces">

View file

@ -1,6 +1,6 @@
<div> <div>
<div class="downtime-container"> <div class="downtime-container">
<h2 class="downtime-header">{{localize "DAGGERHEART.Downtime.DowntimeHeader" current=nrCurrentChoices max=moveData.nrChoices}}</h2> <h2 class="downtime-header">{{localize "DAGGERHEART.APPLICATIONS.Downtime.downtimeHeader" current=nrCurrentChoices max=moveData.nrChoices}}</h2>
{{#each moveData.moves as |move key|}} {{#each moveData.moves as |move key|}}
<div class="activity-container"> <div class="activity-container">
<div class="activity-title"> <div class="activity-title">

View file

@ -1,7 +1,7 @@
<div class="ownership-outer-container"> <div class="ownership-outer-container">
<div class="form-group"> <div class="form-group">
<div class="form-fields"> <div class="form-fields">
<label>{{localize "DAGGERHEART.OwnershipSelection.Default"}}</label> <label>{{localize "DAGGERHEART.APPLICATIONS.OwnershipSelection.Default"}}</label>
<select name="ownership.default" data-dtype="Number"> <select name="ownership.default" data-dtype="Number">
{{selectOptions @root.ownershipOptions selected=ownership.default labelAttr="label" valueAttr="value" }} {{selectOptions @root.ownershipOptions selected=ownership.default labelAttr="label" valueAttr="value" }}
</select> </select>

View file

@ -6,12 +6,12 @@
<div class="section-container levelup-selections-container"> <div class="section-container levelup-selections-container">
{{#if (gt this.newExperiences.length 0)}} {{#if (gt this.newExperiences.length 0)}}
<div> <div>
<h3>{{localize "DAGGERHEART.Application.LevelUp.summary.newExperiences"}}</h3> <h3>{{localize "DAGGERHEART.APPLICATIONS.Levelup.summary.newExperiences"}}</h3>
<div class="achievement-experience-cards"> <div class="achievement-experience-cards">
{{#each this.newExperiences}} {{#each this.newExperiences}}
<div class="achievement-experience-card"> <div class="achievement-experience-card">
<div class="flexrow"> <div class="flexrow">
<input type="text" name="{{concat "levelup.levels." this.level ".achievements.experiences." this.key ".name"}}" value="{{this.name}}" placeholder="{{localize "DAGGERHEART.Application.LevelUp.summary.experiencePlaceholder"}}" /> <input type="text" name="{{concat "levelup.levels." this.level ".achievements.experiences." this.key ".name"}}" value="{{this.name}}" placeholder="{{localize "DAGGERHEART.APPLICATIONS.Levelup.summary.experiencePlaceholder"}}" />
<div class="flex0">{{numberFormat this.modifier sign=true}}</div> <div class="flex0">{{numberFormat this.modifier sign=true}}</div>
</div> </div>
<div class="achievement-experience-marker"> <div class="achievement-experience-marker">
@ -26,7 +26,7 @@
{{#if this.traits.active}} {{#if this.traits.active}}
<div> <div>
<h3 class="levelup-selections-title"> <h3 class="levelup-selections-title">
<div>{{localize "DAGGERHEART.Application.LevelUp.summary.traits"}}</div> <div>{{localize "DAGGERHEART.APPLICATIONS.Levelup.summary.traits"}}</div>
<div>{{this.traits.progress.selected}}/{{this.traits.progress.max}}</div> <div>{{this.traits.progress.selected}}/{{this.traits.progress.max}}</div>
</h3> </h3>
@ -37,7 +37,7 @@
{{#if this.experienceIncreases.active}} {{#if this.experienceIncreases.active}}
<div> <div>
<h3 class="levelup-selections-title"> <h3 class="levelup-selections-title">
<div>{{localize "DAGGERHEART.Application.LevelUp.summary.experienceIncreases"}}</div> <div>{{localize "DAGGERHEART.APPLICATIONS.Levelup.summary.experienceIncreases"}}</div>
<div>{{this.experienceIncreases.progress.selected}}/{{this.experienceIncreases.progress.max}}</div> <div>{{this.experienceIncreases.progress.selected}}/{{this.experienceIncreases.progress.max}}</div>
</h3> </h3>
@ -47,7 +47,7 @@
{{#if (gt this.domainCards.length 0)}} {{#if (gt this.domainCards.length 0)}}
<div> <div>
<h3>{{localize "DAGGERHEART.Application.LevelUp.summary.domainCards"}}</h3> <h3>{{localize "DAGGERHEART.APPLICATIONS.Levelup.summary.domainCards"}}</h3>
<div class="levelup-card-selection domain-cards"> <div class="levelup-card-selection domain-cards">
{{#each this.domainCards}} {{#each this.domainCards}}
@ -63,7 +63,7 @@
{{#if (gt this.subclassCards.length 0)}} {{#if (gt this.subclassCards.length 0)}}
<div> <div>
<h3>{{localize "DAGGERHEART.Application.LevelUp.summary.subclass"}}</h3> <h3>{{localize "DAGGERHEART.APPLICATIONS.Levelup.summary.subclass"}}</h3>
<div class="levelup-card-selection subclass-cards"> <div class="levelup-card-selection subclass-cards">
{{#each this.subclassCards}} {{#each this.subclassCards}}
@ -75,7 +75,7 @@
{{#if this.multiclass}} {{#if this.multiclass}}
<div> <div>
<h3>{{localize "DAGGERHEART.Application.LevelUp.summary.multiclass"}}</h3> <h3>{{localize "DAGGERHEART.APPLICATIONS.Levelup.summary.multiclass"}}</h3>
<div class="levelup-card-selection multiclass-cards" data-path="{{this.multiclass.path}}" data-tier="{{this.multiclass.tier}}" data-min-cost="{{this.multiclass.minCost}}" data-amount="{{this.multiclass.amount}}" data-value="{{this.multiclass.value}}" data-type="{{this.multiclass.type}}"> <div class="levelup-card-selection multiclass-cards" data-path="{{this.multiclass.path}}" data-tier="{{this.multiclass.tier}}" data-min-cost="{{this.multiclass.minCost}}" data-amount="{{this.multiclass.amount}}" data-value="{{this.multiclass.value}}" data-type="{{this.multiclass.type}}">
{{#> "systems/daggerheart/templates/components/card-preview.hbs" this.multiclass }} {{#> "systems/daggerheart/templates/components/card-preview.hbs" this.multiclass }}
@ -114,7 +114,7 @@
{{#if this.vicious}} {{#if this.vicious}}
<div> <div>
<h3>{{localize "DAGGERHEART.Application.LevelUp.summary.vicious"}}</h3> <h3>{{localize "DAGGERHEART.APPLICATIONS.Levelup.summary.vicious"}}</h3>
{{#each this.vicious}} {{#each this.vicious}}
<div class="levelup-radio-choices"> <div class="levelup-radio-choices">
{{radioBoxes (concat "levelup." this.path ".data") @root.viciousChoices checked=(lookup this.data 0)}} {{radioBoxes (concat "levelup." this.path ".data") @root.viciousChoices checked=(lookup this.data 0)}}

View file

@ -6,13 +6,13 @@
<div class="section-container levelup-summary-container"> <div class="section-container levelup-summary-container">
{{#if this.achievements}} {{#if this.achievements}}
<fieldset> <fieldset>
<legend>{{localize "DAGGERHEART.Application.LevelUp.summary.levelAchievements"}}</legend> <legend>{{localize "DAGGERHEART.APPLICATIONS.Levelup.summary.levelAchievements"}}</legend>
<div class="level-achievements-container"> <div class="level-achievements-container">
{{#if this.achievements.proficiency.shown}} {{#if this.achievements.proficiency.shown}}
<div> <div>
<div class="increase-container"> <div class="increase-container">
{{localize "DAGGERHEART.Application.LevelUp.summary.proficiencyIncrease" proficiency=this.achievements.proficiency.old }} {{localize "DAGGERHEART.APPLICATIONS.Levelup.summary.proficiencyIncrease" proficiency=this.achievements.proficiency.old }}
<i class="fa-solid fa-arrow-right-long"></i> <i class="fa-solid fa-arrow-right-long"></i>
{{this.achievements.proficiency.new}} {{this.achievements.proficiency.new}}
</div> </div>
@ -20,14 +20,14 @@
{{/if}} {{/if}}
{{#if this.achievements.damageThresholds}} {{#if this.achievements.damageThresholds}}
<div> <div>
<h5 class="summary-section">{{localize "DAGGERHEART.Application.LevelUp.summary.damageThresholds"}}{{#if this.levelAchievements.damageThresholds.unarmored}}({{localize "DAGGERHEART.General.unarmored"}}){{/if}}</h5> <h5 class="summary-section">{{localize "DAGGERHEART.APPLICATIONS.Levelup.summary.damageThresholds"}}{{#if this.levelAchievements.damageThresholds.unarmored}}({{localize "DAGGERHEART.GENERAL.unarmored"}}){{/if}}</h5>
<div class="increase-container"> <div class="increase-container">
{{localize "DAGGERHEART.Application.LevelUp.summary.damageThresholdMajorIncrease" threshold=this.achievements.damageThresholds.major.old }} {{localize "DAGGERHEART.APPLICATIONS.Levelup.summary.damageThresholdMajorIncrease" threshold=this.achievements.damageThresholds.major.old }}
<i class="fa-solid fa-arrow-right-long"></i> <i class="fa-solid fa-arrow-right-long"></i>
{{this.achievements.damageThresholds.major.new}} {{this.achievements.damageThresholds.major.new}}
</div> </div>
<div class="increase-container"> <div class="increase-container">
{{localize "DAGGERHEART.Application.LevelUp.summary.damageThresholdSevereIncrease" threshold=this.achievements.damageThresholds.severe.old }} {{localize "DAGGERHEART.APPLICATIONS.Levelup.summary.damageThresholdSevereIncrease" threshold=this.achievements.damageThresholds.severe.old }}
<i class="fa-solid fa-arrow-right-long"></i> <i class="fa-solid fa-arrow-right-long"></i>
{{this.achievements.damageThresholds.severe.new}} {{this.achievements.damageThresholds.severe.new}}
</div> </div>
@ -35,7 +35,7 @@
{{/if}} {{/if}}
{{#if this.achievements.domainCards.shown}} {{#if this.achievements.domainCards.shown}}
<div> <div>
<h5>{{localize "DAGGERHEART.Application.LevelUp.summary.domainCards"}}</h5> <h5>{{localize "DAGGERHEART.APPLICATIONS.Levelup.summary.domainCards"}}</h5>
<div class="summary-selection-container"> <div class="summary-selection-container">
{{#each this.achievements.domainCards.values}} {{#each this.achievements.domainCards.values}}
<div class="summary-selection">{{this.name}}</div> <div class="summary-selection">{{this.name}}</div>
@ -45,7 +45,7 @@
{{/if}} {{/if}}
{{#if this.achievements.experiences.shown}} {{#if this.achievements.experiences.shown}}
<div> <div>
<h5>{{localize "DAGGERHEART.Application.LevelUp.summary.newExperiences"}}</h5> <h5>{{localize "DAGGERHEART.APPLICATIONS.Levelup.summary.newExperiences"}}</h5>
<div class="summary-selection-container"> <div class="summary-selection-container">
{{#each this.achievements.experiences.values}} {{#each this.achievements.experiences.values}}
<div class="summary-selection">{{this.name}} {{numberFormat this.modifier sign=true}}</div> <div class="summary-selection">{{this.name}} {{numberFormat this.modifier sign=true}}</div>
@ -57,14 +57,14 @@
</fieldset> </fieldset>
{{/if}} {{/if}}
<fieldset> <fieldset>
<legend>{{localize "DAGGERHEART.Application.LevelUp.summary.levelAdvancements"}}</legend> <legend>{{localize "DAGGERHEART.APPLICATIONS.Levelup.summary.levelAdvancements"}}</legend>
<div class="level-advancements-container"> <div class="level-advancements-container">
{{#if this.advancements.statistics.shown}} {{#if this.advancements.statistics.shown}}
<div> <div>
{{#if this.advancements.statistics.proficiency.shown}} {{#if this.advancements.statistics.proficiency.shown}}
<div class="increase-container"> <div class="increase-container">
{{localize "DAGGERHEART.Application.LevelUp.summary.proficiencyIncrease" proficiency=this.advancements.statistics.proficiency.old }} {{localize "DAGGERHEART.APPLICATIONS.Levelup.summary.proficiencyIncrease" proficiency=this.advancements.statistics.proficiency.old }}
<i class="fa-solid fa-arrow-right-long"></i> <i class="fa-solid fa-arrow-right-long"></i>
{{this.advancements.statistics.proficiency.new}} {{this.advancements.statistics.proficiency.new}}
</div> </div>
@ -72,7 +72,7 @@
{{#if this.advancements.statistics.hitPoints.shown}} {{#if this.advancements.statistics.hitPoints.shown}}
<div class="increase-container"> <div class="increase-container">
{{localize "DAGGERHEART.Application.LevelUp.summary.hpIncrease" hitPoints=this.advancements.statistics.hitPoints.old }} {{localize "DAGGERHEART.APPLICATIONS.Levelup.summary.hpIncrease" hitPoints=this.advancements.statistics.hitPoints.old }}
<i class="fa-solid fa-arrow-right-long"></i> <i class="fa-solid fa-arrow-right-long"></i>
{{this.advancements.statistics.hitPoints.new}} {{this.advancements.statistics.hitPoints.new}}
</div> </div>
@ -80,14 +80,14 @@
{{#if this.advancements.statistics.stress.shown}} {{#if this.advancements.statistics.stress.shown}}
<div class="increase-container"> <div class="increase-container">
{{localize "DAGGERHEART.Application.LevelUp.summary.stressIncrease" stress=this.advancements.statistics.stress.old }} {{localize "DAGGERHEART.APPLICATIONS.Levelup.summary.stressIncrease" stress=this.advancements.statistics.stress.old }}
<i class="fa-solid fa-arrow-right-long"></i> <i class="fa-solid fa-arrow-right-long"></i>
{{this.advancements.statistics.stress.new}} {{this.advancements.statistics.stress.new}}
</div> </div>
{{/if}} {{/if}}
{{#if this.advancements.statistics.evasion.shown}} {{#if this.advancements.statistics.evasion.shown}}
<div class="increase-container"> <div class="increase-container">
{{localize "DAGGERHEART.Application.LevelUp.summary.evasionIncrease" evasion=this.advancements.statistics.evasion.old }} {{localize "DAGGERHEART.APPLICATIONS.Levelup.summary.evasionIncrease" evasion=this.advancements.statistics.evasion.old }}
<i class="fa-solid fa-arrow-right-long"></i> <i class="fa-solid fa-arrow-right-long"></i>
{{this.advancements.statistics.evasion.new}} {{this.advancements.statistics.evasion.new}}
</div> </div>
@ -97,7 +97,7 @@
{{#if this.advancements.traits}} {{#if this.advancements.traits}}
<div> <div>
<h5>{{localize "DAGGERHEART.Application.LevelUp.summary.traits"}}</h5> <h5>{{localize "DAGGERHEART.APPLICATIONS.Levelup.summary.traits"}}</h5>
{{#each this.advancements.traits}} {{#each this.advancements.traits}}
<div class="increase-container"> <div class="increase-container">
@ -111,7 +111,7 @@
{{#if this.advancements.domainCards}} {{#if this.advancements.domainCards}}
<div> <div>
<h5>{{localize "DAGGERHEART.Application.LevelUp.summary.domainCards"}}</h5> <h5>{{localize "DAGGERHEART.APPLICATIONS.Levelup.summary.domainCards"}}</h5>
<div class="summary-selection-container"> <div class="summary-selection-container">
{{#each this.advancements.domainCards}} {{#each this.advancements.domainCards}}
<div class="summary-selection">{{this.name}}</div> <div class="summary-selection">{{this.name}}</div>
@ -122,7 +122,7 @@
{{#if this.advancements.experiences}} {{#if this.advancements.experiences}}
<div> <div>
<h5>{{localize "DAGGERHEART.Application.LevelUp.summary.experienceIncreases"}}</h5> <h5>{{localize "DAGGERHEART.APPLICATIONS.Levelup.summary.experienceIncreases"}}</h5>
<div class="summary-selection-container"> <div class="summary-selection-container">
{{#each this.advancements.experiences}} {{#each this.advancements.experiences}}
<div class="summary-selection">{{this.name}} {{numberFormat this.modifier sign=true}}</div> <div class="summary-selection">{{this.name}} {{numberFormat this.modifier sign=true}}</div>
@ -133,7 +133,7 @@
{{#if this.advancements.subclass}} {{#if this.advancements.subclass}}
<div> <div>
<h5>{{localize "DAGGERHEART.Application.LevelUp.summary.subclass"}}</h5> <h5>{{localize "DAGGERHEART.APPLICATIONS.Levelup.summary.subclass"}}</h5>
<div class="summary-selection-container"> <div class="summary-selection-container">
{{#each this.advancements.subclass}} {{#each this.advancements.subclass}}
<div class="summary-selection">{{this.name}} - {{this.featureLabel}}</div> <div class="summary-selection">{{this.name}} - {{this.featureLabel}}</div>
@ -145,7 +145,7 @@
{{#if this.advancements.multiclass}} {{#if this.advancements.multiclass}}
{{#with this.advancements.multiclass}} {{#with this.advancements.multiclass}}
<div> <div>
<h5>{{localize "DAGGERHEART.Application.LevelUp.summary.multiclass"}}</h5> <h5>{{localize "DAGGERHEART.APPLICATIONS.Levelup.summary.multiclass"}}</h5>
<div class="summary-selection-container"> <div class="summary-selection-container">
<div class="summary-selection">{{this.name}}</div> <div class="summary-selection">{{this.name}}</div>
<div class="summary-selection">{{this.domain}}</div> <div class="summary-selection">{{this.domain}}</div>
@ -157,21 +157,21 @@
{{#if this.advancements.vicious.damage}} {{#if this.advancements.vicious.damage}}
<div class="increase-container"> <div class="increase-container">
{{localize "DAGGERHEART.Application.LevelUp.summary.damageIncreased" damage=this.advancements.vicious.damage.old }} {{localize "DAGGERHEART.APPLICATIONS.Levelup.summary.damageIncreased" damage=this.advancements.vicious.damage.old }}
<i class="fa-solid fa-arrow-right-long"></i> <i class="fa-solid fa-arrow-right-long"></i>
{{this.advancements.vicious.damage.new}} {{this.advancements.vicious.damage.new}}
</div> </div>
{{/if}} {{/if}}
{{#if this.advancements.vicious.range}} {{#if this.advancements.vicious.range}}
<div class="increase-container"> <div class="increase-container">
{{localize "DAGGERHEART.Application.LevelUp.summary.rangeIncreased" range=this.advancements.vicious.range.old }} {{localize "DAGGERHEART.APPLICATIONS.Levelup.summary.rangeIncreased" range=this.advancements.vicious.range.old }}
<i class="fa-solid fa-arrow-right-long"></i> <i class="fa-solid fa-arrow-right-long"></i>
{{this.advancements.vicious.range.new}} {{this.advancements.vicious.range.new}}
</div> </div>
{{/if}} {{/if}}
{{#each this.advancements.simple}} {{#each this.advancements.simple}}
<div class="summary-selection-container"> <div class="summary-selection-container">
<div class="summary-selection">{{localize "DAGGERHEART.Application.LevelUp.summary.simpleFeature" feature=this}}</div> <div class="summary-selection">{{localize "DAGGERHEART.APPLICATIONS.Levelup.summary.simpleFeature" feature=this}}</div>
</div> </div>
{{/each}} {{/each}}
</div> </div>

View file

@ -19,7 +19,7 @@
{{/if}} {{/if}}
<div class="levelup-navigation-actions {{#if (not this.showTabs)}}test{{/if}}"> <div class="levelup-navigation-actions {{#if (not this.showTabs)}}test{{/if}}">
{{#if this.navigate.previous.fromSummary}} {{#if this.navigate.previous.fromSummary}}
<button data-action="activatePart" data-part="advancements">{{localize "DAGGERHEART.Application.LevelUp.navigateToLevelup"}}</button> <button data-action="activatePart" data-part="advancements">{{localize "DAGGERHEART.APPLICATIONS.Levelup.navigateToLevelup"}}</button>
{{else}} {{else}}
{{#if (not this.navigate.previous.disabled)}} {{#if (not this.navigate.previous.disabled)}}
<button data-action="updateCurrentLevel" >{{this.navigate.previous.label}}</button> <button data-action="updateCurrentLevel" >{{this.navigate.previous.label}}</button>
@ -27,7 +27,7 @@
{{/if}} {{/if}}
{{#if this.navigate.next.show}} {{#if this.navigate.next.show}}
{{#if this.navigate.next.toSummary}} {{#if this.navigate.next.toSummary}}
<button data-action="activatePart" data-part="summary" {{#if this.navigate.next.disabled}}disabled{{/if}}>{{localize "DAGGERHEART.Application.LevelUp.navigateToSummary"}}</button> <button data-action="activatePart" data-part="summary" {{#if this.navigate.next.disabled}}disabled{{/if}}>{{localize "DAGGERHEART.APPLICATIONS.Levelup.navigateToSummary"}}</button>
{{else}} {{else}}
<button data-action="updateCurrentLevel" data-forward="true" {{#if this.navigate.next.disabled}}disabled{{/if}}>{{this.navigate.next.label}}</button> <button data-action="updateCurrentLevel" data-forward="true" {{#if this.navigate.next.disabled}}disabled{{/if}}>{{this.navigate.next.label}}</button>
{{/if}} {{/if}}

View file

@ -2,104 +2,104 @@
{{formGroup settingFields.schema.fields.displayFear value=settingFields._source.displayFear localize=true}} {{formGroup settingFields.schema.fields.displayFear value=settingFields._source.displayFear localize=true}}
<fieldset> <fieldset>
<legend>{{localize "DAGGERHEART.Settings.Menu.Appearance.duality"}}</legend> <legend>{{localize "DAGGERHEART.SETTINGS.Menu.appearance.duality"}}</legend>
{{formInput settingFields.schema.fields.dualityColorScheme value=settingFields._source.dualityColorScheme localize=true}} {{formInput settingFields.schema.fields.dualityColorScheme value=settingFields._source.dualityColorScheme localize=true}}
<h2>{{localize "DAGGERHEART.Settings.Menu.Appearance.DiceSoNice.title"}}</h2> <h2>{{localize "DAGGERHEART.SETTINGS.Menu.appearance.diceSoNice.title"}}</h2>
<div class="title-hint">{{localize "DAGGERHEART.Settings.Menu.Appearance.DiceSoNice.hint"}}</div> <div class="title-hint">{{localize "DAGGERHEART.SETTINGS.Menu.appearance.diceSoNice.hint"}}</div>
<fieldset> <fieldset>
<legend>{{localize "DAGGERHEART.General.Hope"}}</legend> <legend>{{localize "DAGGERHEART.GENERAL.hope"}}</legend>
<div class="field-section"> <div class="field-section">
<div class="split-section"> <div class="split-section">
<div class="label-container"> <div class="label-container">
<label>{{localize "DAGGERHEART.Settings.Menu.Appearance.DiceSoNice.foreground"}}</label> <label>{{localize "DAGGERHEART.SETTINGS.Menu.appearance.diceSoNice.foreground"}}</label>
{{formInput settingFields.schema.fields.diceSoNice.fields.hope.fields.foreground value=settingFields._source.diceSoNice.hope.foreground localize=true}} {{formInput settingFields.schema.fields.diceSoNice.fields.hope.fields.foreground value=settingFields._source.diceSoNice.hope.foreground localize=true}}
</div> </div>
<div class="label-container"> <div class="label-container">
<label>{{localize "DAGGERHEART.Settings.Menu.Appearance.DiceSoNice.background"}}</label> <label>{{localize "DAGGERHEART.SETTINGS.Menu.appearance.diceSoNice.background"}}</label>
{{formInput settingFields.schema.fields.diceSoNice.fields.hope.fields.background value=settingFields._source.diceSoNice.hope.background localize=true}} {{formInput settingFields.schema.fields.diceSoNice.fields.hope.fields.background value=settingFields._source.diceSoNice.hope.background localize=true}}
</div> </div>
<div class="label-container"> <div class="label-container">
<label>{{localize "DAGGERHEART.Settings.Menu.Appearance.DiceSoNice.outline"}}</label> <label>{{localize "DAGGERHEART.SETTINGS.Menu.appearance.diceSoNice.outline"}}</label>
{{formInput settingFields.schema.fields.diceSoNice.fields.hope.fields.outline value=settingFields._source.diceSoNice.hope.outline localize=true}} {{formInput settingFields.schema.fields.diceSoNice.fields.hope.fields.outline value=settingFields._source.diceSoNice.hope.outline localize=true}}
</div> </div>
<div class="label-container"> <div class="label-container">
<label>{{localize "DAGGERHEART.Settings.Menu.Appearance.DiceSoNice.edge"}}</label> <label>{{localize "DAGGERHEART.SETTINGS.Menu.appearance.diceSoNice.edge"}}</label>
{{formInput settingFields.schema.fields.diceSoNice.fields.hope.fields.edge value=settingFields._source.diceSoNice.hope.edge localize=true}} {{formInput settingFields.schema.fields.diceSoNice.fields.hope.fields.edge value=settingFields._source.diceSoNice.hope.edge localize=true}}
</div> </div>
</div> </div>
</div> </div>
</fieldset> </fieldset>
<fieldset> <fieldset>
<legend>{{localize "DAGGERHEART.General.Fear"}}</legend> <legend>{{localize "DAGGERHEART.GENERAL.fear"}}</legend>
<div class="field-section"> <div class="field-section">
<div class="split-section"> <div class="split-section">
<div class="label-container"> <div class="label-container">
<label>{{localize "DAGGERHEART.Settings.Menu.Appearance.DiceSoNice.foreground"}}</label> <label>{{localize "DAGGERHEART.SETTINGS.Menu.appearance.diceSoNice.foreground"}}</label>
{{formInput settingFields.schema.fields.diceSoNice.fields.fear.fields.foreground value=settingFields._source.diceSoNice.fear.foreground localize=true}} {{formInput settingFields.schema.fields.diceSoNice.fields.fear.fields.foreground value=settingFields._source.diceSoNice.fear.foreground localize=true}}
</div> </div>
<div class="label-container"> <div class="label-container">
<label>{{localize "DAGGERHEART.Settings.Menu.Appearance.DiceSoNice.background"}}</label> <label>{{localize "DAGGERHEART.SETTINGS.Menu.appearance.diceSoNice.background"}}</label>
{{formInput settingFields.schema.fields.diceSoNice.fields.fear.fields.background value=settingFields._source.diceSoNice.fear.background localize=true}} {{formInput settingFields.schema.fields.diceSoNice.fields.fear.fields.background value=settingFields._source.diceSoNice.fear.background localize=true}}
</div> </div>
<div class="label-container"> <div class="label-container">
<label>{{localize "DAGGERHEART.Settings.Menu.Appearance.DiceSoNice.outline"}}</label> <label>{{localize "DAGGERHEART.SETTINGS.Menu.appearance.diceSoNice.outline"}}</label>
{{formInput settingFields.schema.fields.diceSoNice.fields.fear.fields.outline value=settingFields._source.diceSoNice.fear.outline localize=true}} {{formInput settingFields.schema.fields.diceSoNice.fields.fear.fields.outline value=settingFields._source.diceSoNice.fear.outline localize=true}}
</div> </div>
<div class="label-container"> <div class="label-container">
<label>{{localize "DAGGERHEART.Settings.Menu.Appearance.DiceSoNice.edge"}}</label> <label>{{localize "DAGGERHEART.SETTINGS.Menu.appearance.diceSoNice.edge"}}</label>
{{formInput settingFields.schema.fields.diceSoNice.fields.fear.fields.edge value=settingFields._source.diceSoNice.fear.edge localize=true}} {{formInput settingFields.schema.fields.diceSoNice.fields.fear.fields.edge value=settingFields._source.diceSoNice.fear.edge localize=true}}
</div> </div>
</div> </div>
</div> </div>
</fieldset> </fieldset>
<fieldset> <fieldset>
<legend>{{localize "DAGGERHEART.General.Advantage.Full"}}</legend> <legend>{{localize "DAGGERHEART.GENERAL.Advantage.full"}}</legend>
<div class="field-section"> <div class="field-section">
<div class="split-section"> <div class="split-section">
<div class="label-container"> <div class="label-container">
<label>{{localize "DAGGERHEART.Settings.Menu.Appearance.DiceSoNice.foreground"}}</label> <label>{{localize "DAGGERHEART.SETTINGS.Menu.appearance.diceSoNice.foreground"}}</label>
{{formInput settingFields.schema.fields.diceSoNice.fields.advantage.fields.foreground value=settingFields._source.diceSoNice.advantage.foreground localize=true}} {{formInput settingFields.schema.fields.diceSoNice.fields.advantage.fields.foreground value=settingFields._source.diceSoNice.advantage.foreground localize=true}}
</div> </div>
<div class="label-container"> <div class="label-container">
<label>{{localize "DAGGERHEART.Settings.Menu.Appearance.DiceSoNice.background"}}</label> <label>{{localize "DAGGERHEART.SETTINGS.Menu.appearance.diceSoNice.background"}}</label>
{{formInput settingFields.schema.fields.diceSoNice.fields.advantage.fields.background value=settingFields._source.diceSoNice.advantage.background localize=true}} {{formInput settingFields.schema.fields.diceSoNice.fields.advantage.fields.background value=settingFields._source.diceSoNice.advantage.background localize=true}}
</div> </div>
<div class="label-container"> <div class="label-container">
<label>{{localize "DAGGERHEART.Settings.Menu.Appearance.DiceSoNice.outline"}}</label> <label>{{localize "DAGGERHEART.SETTINGS.Menu.appearance.diceSoNice.outline"}}</label>
{{formInput settingFields.schema.fields.diceSoNice.fields.advantage.fields.outline value=settingFields._source.diceSoNice.advantage.outline localize=true}} {{formInput settingFields.schema.fields.diceSoNice.fields.advantage.fields.outline value=settingFields._source.diceSoNice.advantage.outline localize=true}}
</div> </div>
<div class="label-container"> <div class="label-container">
<label>{{localize "DAGGERHEART.Settings.Menu.Appearance.DiceSoNice.edge"}}</label> <label>{{localize "DAGGERHEART.SETTINGS.Menu.appearance.diceSoNice.edge"}}</label>
{{formInput settingFields.schema.fields.diceSoNice.fields.advantage.fields.edge value=settingFields._source.diceSoNice.advantage.edge localize=true}} {{formInput settingFields.schema.fields.diceSoNice.fields.advantage.fields.edge value=settingFields._source.diceSoNice.advantage.edge localize=true}}
</div> </div>
</div> </div>
</div> </div>
</fieldset> </fieldset>
<fieldset> <fieldset>
<legend>{{localize "DAGGERHEART.General.Disadvantage.Full"}}</legend> <legend>{{localize "DAGGERHEART.GENERAL.Disadvantage.full"}}</legend>
<div class="field-section"> <div class="field-section">
<div class="split-section"> <div class="split-section">
<div class="label-container"> <div class="label-container">
<label>{{localize "DAGGERHEART.Settings.Menu.Appearance.DiceSoNice.foreground"}}</label> <label>{{localize "DAGGERHEART.SETTINGS.Menu.appearance.diceSoNice.foreground"}}</label>
{{formInput settingFields.schema.fields.diceSoNice.fields.disadvantage.fields.foreground value=settingFields._source.diceSoNice.disadvantage.foreground localize=true}} {{formInput settingFields.schema.fields.diceSoNice.fields.disadvantage.fields.foreground value=settingFields._source.diceSoNice.disadvantage.foreground localize=true}}
</div> </div>
<div class="label-container"> <div class="label-container">
<label>{{localize "DAGGERHEART.Settings.Menu.Appearance.DiceSoNice.background"}}</label> <label>{{localize "DAGGERHEART.SETTINGS.Menu.appearance.diceSoNice.background"}}</label>
{{formInput settingFields.schema.fields.diceSoNice.fields.disadvantage.fields.background value=settingFields._source.diceSoNice.disadvantage.background localize=true}} {{formInput settingFields.schema.fields.diceSoNice.fields.disadvantage.fields.background value=settingFields._source.diceSoNice.disadvantage.background localize=true}}
</div> </div>
<div class="label-container"> <div class="label-container">
<label>{{localize "DAGGERHEART.Settings.Menu.Appearance.DiceSoNice.outline"}}</label> <label>{{localize "DAGGERHEART.SETTINGS.Menu.appearance.diceSoNice.outline"}}</label>
{{formInput settingFields.schema.fields.diceSoNice.fields.disadvantage.fields.outline value=settingFields._source.diceSoNice.disadvantage.outline localize=true}} {{formInput settingFields.schema.fields.diceSoNice.fields.disadvantage.fields.outline value=settingFields._source.diceSoNice.disadvantage.outline localize=true}}
</div> </div>
<div class="label-container"> <div class="label-container">
<label>{{localize "DAGGERHEART.Settings.Menu.Appearance.DiceSoNice.edge"}}</label> <label>{{localize "DAGGERHEART.SETTINGS.Menu.appearance.diceSoNice.edge"}}</label>
{{formInput settingFields.schema.fields.diceSoNice.fields.disadvantage.fields.edge value=settingFields._source.diceSoNice.disadvantage.edge localize=true}} {{formInput settingFields.schema.fields.diceSoNice.fields.disadvantage.fields.edge value=settingFields._source.diceSoNice.disadvantage.edge localize=true}}
</div> </div>
</div> </div>

View file

@ -1,18 +1,18 @@
<div> <div>
<div class="form-group"> <div class="form-group">
<label>{{localize "DAGGERHEART.Settings.Automation.FIELDS.hope.label"}}</label> <label>{{localize "DAGGERHEART.SETTINGS.Automation.FIELDS.hope.label"}}</label>
<div class="form-fields"> <div class="form-fields">
{{formInput settingFields.schema.fields.hope value=settingFields._source.hope }} {{formInput settingFields.schema.fields.hope value=settingFields._source.hope }}
</div> </div>
</div> </div>
<div class="form-group"> <div class="form-group">
<label>{{localize "DAGGERHEART.Settings.Automation.FIELDS.actionPoints.label"}}</label> <label>{{localize "DAGGERHEART.SETTINGS.Automation.FIELDS.actionPoints.label"}}</label>
<div class="form-fields"> <div class="form-fields">
{{formInput settingFields.schema.fields.actionPoints value=settingFields._source.actionPoints }} {{formInput settingFields.schema.fields.actionPoints value=settingFields._source.actionPoints }}
</div> </div>
</div> </div>
<div class="form-group"> <div class="form-group">
<label>{{localize "DAGGERHEART.Settings.Automation.FIELDS.countdowns.label"}}</label> <label>{{localize "DAGGERHEART.SETTINGS.Automation.FIELDS.countdowns.label"}}</label>
<div class="form-fields"> <div class="form-fields">
{{formInput settingFields.schema.fields.countdowns value=settingFields._source.countdowns }} {{formInput settingFields.schema.fields.countdowns value=settingFields._source.countdowns }}
</div> </div>

View file

@ -1,11 +1,11 @@
<div class="scrollable"> <div class="scrollable">
{{formGroup settingFields.schema.fields.maxFear value=settingFields._source.maxFear localize=true}} {{formGroup settingFields.schema.fields.maxFear value=settingFields._source.maxFear localize=true}}
<h4>{{localize "DAGGERHEART.Settings.Homebrew.FIELDS.traitArray.label"}}</h4> <h4>{{localize "DAGGERHEART.SETTINGS.Homebrew.FIELDS.traitArray.label"}}</h4>
<div class="trait-array-container"> <div class="trait-array-container">
{{#each settingFields._source.traitArray as |trait index|}} {{#each settingFields._source.traitArray as |trait index|}}
<div class="trait-array-item"> <div class="trait-array-item">
<label>{{localize "DAGGERHEART.General.Modifier"}} {{add index 1}}</label> <label>{{localize "DAGGERHEART.GENERAL.modifier"}} {{add index 1}}</label>
<input type="text" data-dtype="Number" name="{{concat "traitArray." index}}" value="{{this}}" /> <input type="text" data-dtype="Number" name="{{concat "traitArray." index}}" value="{{this}}" />
</div> </div>
{{/each}} {{/each}}
@ -13,7 +13,7 @@
<fieldset> <fieldset>
<legend> <legend>
{{localize "DAGGERHEART.Settings.Homebrew.Currency.title"}} {{localize "DAGGERHEART.SETTINGS.Homebrew.currency.title"}}
</legend> </legend>
{{formGroup settingFields.schema.fields.currency.fields.enabled value=settingFields._source.currency.enabled localize=true}} {{formGroup settingFields.schema.fields.currency.fields.enabled value=settingFields._source.currency.enabled localize=true}}
{{formGroup settingFields.schema.fields.currency.fields.title value=settingFields._source.currency.title localize=true}} {{formGroup settingFields.schema.fields.currency.fields.title value=settingFields._source.currency.title localize=true}}
@ -25,17 +25,17 @@
</fieldset> </fieldset>
<fieldset class="two-columns even"> <fieldset class="two-columns even">
<legend>{{localize "DAGGERHEART.Settings.Homebrew.DowntimeMoves"}}</legend> <legend>{{localize "DAGGERHEART.SETTINGS.Homebrew.downtimeMoves"}}</legend>
<fieldset> <fieldset>
<legend> <legend>
{{localize "DAGGERHEART.Downtime.LongRest.title"}} {{localize "DAGGERHEART.APPLICATIONS.Downtime.longRest.title"}}
<a data-action="addItem" data-type="longRest"><i class="fa-solid fa-plus"></i></a> <a data-action="addItem" data-type="longRest"><i class="fa-solid fa-plus"></i></a>
<a data-action="resetMoves" data-type="longRest"><i class="fa-solid fa-arrow-rotate-left"></i></a> <a data-action="resetMoves" data-type="longRest"><i class="fa-solid fa-arrow-rotate-left"></i></a>
</legend> </legend>
<div class="form-group setting-group-field"> <div class="form-group setting-group-field">
<label>{{localize "DAGGERHEART.Settings.Homebrew.NrChoices"}}</label> <label>{{localize "DAGGERHEART.SETTINGS.Homebrew.nrChoices"}}</label>
<div class="form-fields"> <div class="form-fields">
<input type="text" name="restMoves.longRest.nrChoices" value="{{settingFields._source.restMoves.longRest.nrChoices}}" /> <input type="text" name="restMoves.longRest.nrChoices" value="{{settingFields._source.restMoves.longRest.nrChoices}}" />
</div> </div>
@ -50,13 +50,13 @@
<fieldset> <fieldset>
<legend> <legend>
{{localize "DAGGERHEART.Downtime.ShortRest.title"}} {{localize "DAGGERHEART.APPLICATIONS.Downtime.shortRest.title"}}
<a data-action="addItem" data-type="shortRest"><i class="fa-solid fa-plus"></i></a> <a data-action="addItem" data-type="shortRest"><i class="fa-solid fa-plus"></i></a>
<a data-action="resetMoves" data-type="shortRest"><i class="fa-solid fa-arrow-rotate-left"></i></a> <a data-action="resetMoves" data-type="shortRest"><i class="fa-solid fa-arrow-rotate-left"></i></a>
</legend> </legend>
<div class="form-group setting-group-field"> <div class="form-group setting-group-field">
<label>{{localize "DAGGERHEART.Settings.Homebrew.NrChoices"}}</label> <label>{{localize "DAGGERHEART.SETTINGS.Homebrew.nrChoices"}}</label>
<div class="form-fields"> <div class="form-fields">
<input type="text" name="restMoves.shortRest.nrChoices" value="{{settingFields._source.restMoves.shortRest.nrChoices}}" /> <input type="text" name="restMoves.shortRest.nrChoices" value="{{settingFields._source.restMoves.shortRest.nrChoices}}" />
</div> </div>

View file

@ -1,6 +1,6 @@
<div> <div>
<div class="form-group"> <div class="form-group">
<label>{{localize "DAGGERHEART.Settings.Menu.VariantRules.actionTokens"}}</label> <label>{{localize "DAGGERHEART.SETTINGS.Menu.variantRules.actionTokens"}}</label>
<div class="form-fields"> <div class="form-fields">
{{formGroup settingFields.schema.fields.actionTokens.fields.enabled value=settingFields._source.actionTokens.enabled localize=true}} {{formGroup settingFields.schema.fields.actionTokens.fields.enabled value=settingFields._source.actionTokens.enabled localize=true}}

View file

@ -4,12 +4,12 @@
data-group="{{tabs.attack.group}}" data-group="{{tabs.attack.group}}"
> >
<fieldset class="one-column"> <fieldset class="one-column">
<legend>{{localize "DAGGERHEART.General.basics"}}</legend> <legend>{{localize "DAGGERHEART.GENERAL.basics"}}</legend>
{{formGroup systemFields.attack.fields.img value=document.system.attack.img label="Image Path" name="system.attack.img"}} {{formGroup systemFields.attack.fields.img value=document.system.attack.img label="Image Path" name="system.attack.img"}}
{{formGroup systemFields.attack.fields.name value=document.system.attack.name label="Attack Name" name="system.attack.name"}} {{formGroup systemFields.attack.fields.name value=document.system.attack.name label="Attack Name" name="system.attack.name"}}
</fieldset> </fieldset>
<fieldset class="flex"> <fieldset class="flex">
<legend>{{localize "DAGGERHEART.Sheets.Adversary.Attack"}}</legend> <legend>{{localize "DAGGERHEART.GENERAL.attack"}}</legend>
{{formField systemFields.attack.fields.roll.fields.bonus value=document.system.attack.roll.bonus label="Attack Bonus" name="system.attack.roll.bonus"}} {{formField systemFields.attack.fields.roll.fields.bonus value=document.system.attack.roll.bonus label="Attack Bonus" name="system.attack.roll.bonus"}}
{{formField systemFields.attack.fields.range value=document.system.attack.range label="Range" name="system.attack.range" localize=true}} {{formField systemFields.attack.fields.range value=document.system.attack.range label="Range" name="system.attack.range" localize=true}}
{{#if systemFields.attack.fields.target.fields}} {{#if systemFields.attack.fields.target.fields}}

View file

@ -4,34 +4,34 @@
data-group='{{tabs.details.group}}' data-group='{{tabs.details.group}}'
> >
<fieldset class="one-column"> <fieldset class="one-column">
<legend>{{localize 'DAGGERHEART.General.basics'}}</legend> <legend>{{localize 'DAGGERHEART.GENERAL.basics'}}</legend>
<div class="nest-inputs"> <div class="nest-inputs">
{{formGroup systemFields.tier value=document.system.tier localize=true}} {{formGroup systemFields.tier value=document.system.tier localize=true}}
{{formGroup systemFields.type value=document.system.type localize=true}} {{formGroup systemFields.type value=document.system.type localize=true}}
{{#if (eq document.system.type 'horde')}} {{#if (eq document.system.type 'horde')}}
{{formGroup systemFields.hordeHp value=document.system.hordeHp label=(localize "DAGGERHEART.Sheets.Adversary.horderHp")}} {{formGroup systemFields.hordeHp value=document.system.hordeHp label=(localize "DAGGERHEART.ACTORS.Adversary.horderHp")}}
{{/if}} {{/if}}
{{formGroup systemFields.difficulty value=document.system.difficulty localize=true}} {{formGroup systemFields.difficulty value=document.system.difficulty localize=true}}
</div> </div>
{{formField systemFields.description value=document.system.description label=(localize "DAGGERHEART.Sheets.Adversary.FIELDS.description.label")}} {{formField systemFields.description value=document.system.description label=(localize "DAGGERHEART.ACTORS.Adversary.FIELDS.description.label")}}
{{formField systemFields.motivesAndTactics value=document.system.motivesAndTactics label=(localize "DAGGERHEART.Sheets.Adversary.FIELDS.motivesAndTactics.label")}} {{formField systemFields.motivesAndTactics value=document.system.motivesAndTactics label=(localize "DAGGERHEART.ACTORS.Adversary.FIELDS.motivesAndTactics.label")}}
</fieldset> </fieldset>
<div class="fieldsets-section"> <div class="fieldsets-section">
<fieldset class="flex"> <fieldset class="flex">
<legend>{{localize "DAGGERHEART.Sheets.Adversary.HitPoints"}}</legend> <legend>{{localize "DAGGERHEART.GENERAL.hitPoints"}}</legend>
{{formGroup systemFields.resources.fields.hitPoints.fields.value value=document.system.resources.hitPoints.value}} {{formGroup systemFields.resources.fields.hitPoints.fields.value value=document.system.resources.hitPoints.value}}
{{formGroup systemFields.resources.fields.hitPoints.fields.max value=document.system.resources.hitPoints.max}} {{formGroup systemFields.resources.fields.hitPoints.fields.max value=document.system.resources.hitPoints.max}}
</fieldset> </fieldset>
<fieldset class="flex"> <fieldset class="flex">
<legend>{{localize "DAGGERHEART.Sheets.Adversary.Stress"}}</legend> <legend>{{localize "DAGGERHEART.GENERAL.stress"}}</legend>
{{formGroup systemFields.resources.fields.stress.fields.value value=document.system.resources.stress.value}} {{formGroup systemFields.resources.fields.stress.fields.value value=document.system.resources.stress.value}}
{{formGroup systemFields.resources.fields.stress.fields.max value=document.system.resources.stress.max}} {{formGroup systemFields.resources.fields.stress.fields.max value=document.system.resources.stress.max}}
</fieldset> </fieldset>
</div> </div>
<fieldset class="flex"> <fieldset class="flex">
<legend>{{localize "DAGGERHEART.Sheets.Adversary.DamageThresholds"}}</legend> <legend>{{localize "DAGGERHEART.GENERAL.DamageThresholds.title"}}</legend>
{{formGroup systemFields.damageThresholds.fields.major value=document.system.damageThresholds.major}} {{formGroup systemFields.damageThresholds.fields.major value=document.system.damageThresholds.major}}
{{formGroup systemFields.damageThresholds.fields.severe value=document.system.damageThresholds.severe}} {{formGroup systemFields.damageThresholds.fields.severe value=document.system.damageThresholds.severe}}
</fieldset> </fieldset>

View file

@ -14,7 +14,7 @@
<li class="experience-item"> <li class="experience-item">
<input class="name" type="text" name="system.experiences.{{key}}.name" value="{{experience.name}}" /> <input class="name" type="text" name="system.experiences.{{key}}.name" value="{{experience.name}}" />
<input class="modifier" type="text" name="system.experiences.{{key}}.modifier" value="{{experience.modifier}}" data-dtype="Number" /> <input class="modifier" type="text" name="system.experiences.{{key}}.modifier" value="{{experience.modifier}}" data-dtype="Number" />
<a data-action="removeExperience" data-experience="{{key}}" data-tooltip="{{localize 'DAGGERHEART.Tooltip.delete'}}"><i class="fa-solid fa-trash"></i></a> <a data-action="removeExperience" data-experience="{{key}}" data-tooltip="{{localize 'CONTROLS.CommonDelete'}}"><i class="fa-solid fa-trash"></i></a>
</li> </li>
{{/each}} {{/each}}
</ul> </ul>

View file

@ -17,7 +17,7 @@
</div> </div>
<div class="controls"> <div class="controls">
<a data-action="editFeature" id="{{feature.id}}" data-tooltip="{{localize 'DAGGERHEART.Tooltip.edit'}}"><i class="fa-solid fa-pen-to-square"></i></a> <a data-action="editFeature" id="{{feature.id}}" data-tooltip="{{localize 'DAGGERHEART.Tooltip.edit'}}"><i class="fa-solid fa-pen-to-square"></i></a>
<a data-action="removeFeature" id="{{feature.id}}" data-tooltip="{{localize 'DAGGERHEART.Tooltip.delete'}}"><i class="fa-solid fa-trash"></i></a> <a data-action="removeFeature" id="{{feature.id}}" data-tooltip="{{localize 'CONTROLS.CommonDelete'}}"><i class="fa-solid fa-trash"></i></a>
</div> </div>
</li> </li>
{{/each}} {{/each}}

View file

@ -4,12 +4,12 @@
data-group="{{tabs.attack.group}}" data-group="{{tabs.attack.group}}"
> >
<fieldset class="one-column"> <fieldset class="one-column">
<legend>{{localize "DAGGERHEART.General.basics"}}</legend> <legend>{{localize "DAGGERHEART.GENERAL.basics"}}</legend>
{{formGroup systemFields.attack.fields.img value=document.system.attack.img label="Image Path" name="system.attack.img"}} {{formGroup systemFields.attack.fields.img value=document.system.attack.img label="Image Path" name="system.attack.img"}}
{{formGroup systemFields.attack.fields.name value=document.system.attack.name label="Attack Name" name="system.attack.name"}} {{formGroup systemFields.attack.fields.name value=document.system.attack.name label="Attack Name" name="system.attack.name"}}
</fieldset> </fieldset>
<fieldset class="flex"> <fieldset class="flex">
<legend>{{localize "DAGGERHEART.Sheets.Adversary.Attack"}}</legend> <legend>{{localize "DAGGERHEART.GENERAL.attack"}}</legend>
{{formField systemFields.attack.fields.range value=document.system.attack.range label="Range" name="system.attack.range" localize=true}} {{formField systemFields.attack.fields.range value=document.system.attack.range label="Range" name="system.attack.range" localize=true}}
{{#if systemFields.attack.fields.target.fields}} {{#if systemFields.attack.fields.target.fields}}
{{ formField systemFields.attack.fields.target.fields.type value=document.system.attack.target.type label="Target" name="system.attack.target.type" localize=true }} {{ formField systemFields.attack.fields.target.fields.type value=document.system.attack.target.type label="Target" name="system.attack.target.type" localize=true }}

View file

@ -4,7 +4,7 @@
data-group='{{tabs.details.group}}' data-group='{{tabs.details.group}}'
> >
<fieldset class="one-column"> <fieldset class="one-column">
<legend>{{localize 'DAGGERHEART.General.basics'}}</legend> <legend>{{localize 'DAGGERHEART.GENERAL.basics'}}</legend>
<div class="nest-inputs"> <div class="nest-inputs">
{{formGroup systemFields.evasion.fields.value value=document.system.evasion.value localize=true}} {{formGroup systemFields.evasion.fields.value value=document.system.evasion.value localize=true}}
{{formGroup systemFields.resources.fields.stress.fields.value value=document.system.resources.stress.value label='Current Stress'}} {{formGroup systemFields.resources.fields.stress.fields.value value=document.system.resources.stress.value label='Current Stress'}}
@ -12,7 +12,7 @@
</div> </div>
<div class="form-group"> <div class="form-group">
<div class="form-fields"> <div class="form-fields">
<label>{{localize "DAGGERHEART.Sheets.Companion.FIELDS.partner.label"}}</label> <label>{{localize "DAGGERHEART.ACTORS.Companion.FIELDS.partner.label"}}</label>
<select class="partner-value"> <select class="partner-value">
{{selectOptions playerCharacters selected=document.system.partner.uuid labelAttr="name" valueAttr="key" blank=""}} {{selectOptions playerCharacters selected=document.system.partner.uuid labelAttr="name" valueAttr="key" blank=""}}
</select> </select>

View file

@ -11,7 +11,7 @@
<legend>{{this.label}}</legend> <legend>{{this.label}}</legend>
<div class="category-name"> <div class="category-name">
<input type="text" name="{{concat "system.potentialAdversaries." @key ".label" }}" value="{{this.label}}" /> <input type="text" name="{{concat "system.potentialAdversaries." @key ".label" }}" value="{{this.label}}" />
<a><i class="fa-solid fa-trash" data-action="deleteProperty" data-path="system.potentialAdversaries" id={{@key}} data-tooltip='{{localize "DAGGERHEART.Tooltip.delete"}}'></i></a> <a><i class="fa-solid fa-trash" data-action="deleteProperty" data-path="system.potentialAdversaries" id={{@key}} data-tooltip='{{localize "CONTROLS.CommonDelete"}}'></i></a>
</div> </div>
<div class="adversaries-container"> <div class="adversaries-container">
{{#each this.adversaries as |adversary|}} {{#each this.adversaries as |adversary|}}

View file

@ -4,13 +4,13 @@
data-group='{{tabs.details.group}}' data-group='{{tabs.details.group}}'
> >
<fieldset class="one-column"> <fieldset class="one-column">
<legend>{{localize 'DAGGERHEART.General.basics'}}</legend> <legend>{{localize 'DAGGERHEART.GENERAL.basics'}}</legend>
<div class="nest-inputs"> <div class="nest-inputs">
{{formGroup systemFields.tier value=document.system.tier localize=true}} {{formGroup systemFields.tier value=document.system.tier localize=true}}
{{formGroup systemFields.type value=document.system.type localize=true}} {{formGroup systemFields.type value=document.system.type localize=true}}
{{formGroup systemFields.difficulty value=document.system.difficulty localize=true}} {{formGroup systemFields.difficulty value=document.system.difficulty localize=true}}
</div> </div>
{{formField systemFields.description value=document.system.description label=(localize "DAGGERHEART.Sheets.Environment.FIELDS.description.label")}} {{formField systemFields.description value=document.system.description label=(localize "DAGGERHEART.ACTORS.Environment.FIELDS.description.label")}}
{{formField systemFields.impulses value=document.system.impulses label=(localize "DAGGERHEART.Sheets.Environment.FIELDS.impulses.label")}} {{formField systemFields.impulses value=document.system.impulses label=(localize "DAGGERHEART.ACTORS.Environment.FIELDS.impulses.label")}}
</fieldset> </fieldset>
</section> </section>

View file

@ -17,7 +17,7 @@
</div> </div>
<div class="controls"> <div class="controls">
<a data-action="editFeature" id="{{feature.id}}" data-tooltip="{{localize 'DAGGERHEART.Tooltip.edit'}}"><i class="fa-solid fa-pen-to-square"></i></a> <a data-action="editFeature" id="{{feature.id}}" data-tooltip="{{localize 'DAGGERHEART.Tooltip.edit'}}"><i class="fa-solid fa-pen-to-square"></i></a>
<a data-action="removeFeature" id="{{feature.id}}" data-tooltip="{{localize 'DAGGERHEART.Tooltip.delete'}}"><i class="fa-solid fa-trash"></i></a> <a data-action="removeFeature" id="{{feature.id}}" data-tooltip="{{localize 'CONTROLS.CommonDelete'}}"><i class="fa-solid fa-trash"></i></a>
</div> </div>
</li> </li>
{{/each}} {{/each}}

View file

@ -3,6 +3,6 @@
data-tab='{{tabs.effects.id}}' data-tab='{{tabs.effects.id}}'
data-group='{{tabs.effects.group}}' data-group='{{tabs.effects.group}}'
> >
{{> 'systems/daggerheart/templates/sheets/global/partials/inventory-fieldset-items.hbs' title=(localize 'DAGGERHEART.Sheets.Global.activeEffects') type='effect'}} {{> 'systems/daggerheart/templates/sheets/global/partials/inventory-fieldset-items.hbs' title=(localize 'DAGGERHEART.GENERAL.activeEffects') type='effect'}}
{{> 'systems/daggerheart/templates/sheets/global/partials/inventory-fieldset-items.hbs' title=(localize 'DAGGERHEART.Sheets.Global.inactiveEffects') type='effect'}} {{> 'systems/daggerheart/templates/sheets/global/partials/inventory-fieldset-items.hbs' title=(localize 'DAGGERHEART.GENERAL.inactiveEffects') type='effect'}}
</section> </section>

Some files were not shown because too many files have changed in this diff Show more