mirror of
https://github.com/Foundryborne/daggerheart.git
synced 2026-01-12 03:31:07 +01:00
Added optional equipment tab
This commit is contained in:
parent
f755d7f9f5
commit
a902b2f1e5
8 changed files with 648 additions and 141 deletions
15
lang/en.json
15
lang/en.json
|
|
@ -427,6 +427,15 @@
|
|||
"SelectCommunity": "Select Community",
|
||||
"SelectClass": "Select Class",
|
||||
"SelectSubclass": "Select Subclass",
|
||||
"SelectArmor": "Select Armor",
|
||||
"SelectPrimaryWeapon": "Select Primary Weapon",
|
||||
"SelectSecondaryWeapon": "Select Secondary Weapon",
|
||||
"SuggestedArmor": "Suggested Armor",
|
||||
"SuggestedWeapons": "Suggested Weapon",
|
||||
"SuggestedPrimaryWeapon": "Suggested Primary Weapon",
|
||||
"SuggestedSecondaryWeapon": "Suggested Secondary Weapon",
|
||||
"StartingItems": "Starting Items",
|
||||
"Choice": "Choice",
|
||||
"NewExperience": "New Experience..",
|
||||
"FinishCreation": "Finish Character Setup",
|
||||
"Tabs": {
|
||||
|
|
@ -440,7 +449,11 @@
|
|||
"MissingClass": "You don't have a class selected yet.",
|
||||
"WrongDomain": "The card isn't from one of your class domains.",
|
||||
"CardTooHighLevel": "The card is too high level!",
|
||||
"DuplicateCard": "You cannot select the same card more than once."
|
||||
"DuplicateCard": "You cannot select the same card more than once.",
|
||||
"NotPrimary": "The weapon is not a primary weapon!",
|
||||
"NotSecondary": "The weapon is not a secondary weapon!",
|
||||
"ItemTooHighTier": "The item must be from Tier1",
|
||||
"PrimaryIsTwoHanded": "Cannot select a secondary weapon with a two-handed primary!"
|
||||
}
|
||||
},
|
||||
"LevelUp": {
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
import { abilities } from '../config/actorConfig.mjs';
|
||||
import { burden } from '../config/generalConfig.mjs';
|
||||
|
||||
const { HandlebarsApplicationMixin, ApplicationV2 } = foundry.applications.api;
|
||||
|
||||
|
|
@ -21,9 +22,20 @@ export default class DhCharacterCreation extends HandlebarsApplicationMixin(Appl
|
|||
domainCards: {
|
||||
[foundry.utils.randomID()]: {},
|
||||
[foundry.utils.randomID()]: {}
|
||||
},
|
||||
visibility: 1
|
||||
};
|
||||
|
||||
this.equipment = {
|
||||
armor: {},
|
||||
primaryWeapon: {},
|
||||
secondaryWeapon: {},
|
||||
inventory: {
|
||||
take: {},
|
||||
choiceA: {},
|
||||
choiceB: {}
|
||||
}
|
||||
};
|
||||
this.visibility = 5;
|
||||
|
||||
this._dragDrop = this._createDragDropHandlers();
|
||||
}
|
||||
|
|
@ -38,7 +50,9 @@ export default class DhCharacterCreation extends HandlebarsApplicationMixin(Appl
|
|||
position: { width: 800, height: 'auto' },
|
||||
actions: {
|
||||
viewCompendium: this.viewCompendium,
|
||||
viewItem: this.viewItem,
|
||||
useSuggestedTraits: this.useSuggestedTraits,
|
||||
equipmentChoice: this.equipmentChoice,
|
||||
finish: this.finish
|
||||
},
|
||||
form: {
|
||||
|
|
@ -51,7 +65,11 @@ export default class DhCharacterCreation extends HandlebarsApplicationMixin(Appl
|
|||
{ dragSelector: null, dropSelector: '.community-card' },
|
||||
{ dragSelector: null, dropSelector: '.class-card' },
|
||||
{ dragSelector: null, dropSelector: '.subclass-card' },
|
||||
{ dragSelector: null, dropSelector: '.domain-card' }
|
||||
{ dragSelector: null, dropSelector: '.domain-card' },
|
||||
{ dragSelector: null, dropSelector: '.armor-card' },
|
||||
{ dragSelector: null, dropSelector: '.primary-weapon-card' },
|
||||
{ dragSelector: null, dropSelector: '.secondary-weapon-card' },
|
||||
{ dragSelector: '.suggestion-inner-container', dropSelector: '.selections-container' }
|
||||
]
|
||||
};
|
||||
|
||||
|
|
@ -59,7 +77,7 @@ export default class DhCharacterCreation extends HandlebarsApplicationMixin(Appl
|
|||
tabs: { template: 'systems/daggerheart/templates/views/characterCreation/tabs.hbs' },
|
||||
setup: { template: 'systems/daggerheart/templates/views/characterCreation/tabs/setup.hbs' },
|
||||
equipment: { template: 'systems/daggerheart/templates/views/characterCreation/tabs/equipment.hbs' },
|
||||
story: { template: 'systems/daggerheart/templates/views/characterCreation/tabs/story.hbs' },
|
||||
// story: { template: 'systems/daggerheart/templates/views/characterCreation/tabs/story.hbs' },
|
||||
footer: { template: 'systems/daggerheart/templates/views/characterCreation/footer.hbs' }
|
||||
};
|
||||
|
||||
|
|
@ -78,15 +96,15 @@ export default class DhCharacterCreation extends HandlebarsApplicationMixin(Appl
|
|||
id: 'equipment',
|
||||
label: 'DAGGERHEART.CharacterCreation.Tabs.Equipment',
|
||||
optional: true
|
||||
},
|
||||
story: {
|
||||
active: false,
|
||||
cssClass: '',
|
||||
group: 'primary',
|
||||
id: 'story',
|
||||
label: 'DAGGERHEART.CharacterCreation.Tabs.Story',
|
||||
optional: true
|
||||
}
|
||||
// story: {
|
||||
// active: false,
|
||||
// cssClass: '',
|
||||
// group: 'primary',
|
||||
// id: 'story',
|
||||
// label: 'DAGGERHEART.CharacterCreation.Tabs.Story',
|
||||
// optional: true
|
||||
// }
|
||||
};
|
||||
|
||||
_getTabs(tabs) {
|
||||
|
|
@ -108,15 +126,39 @@ export default class DhCharacterCreation extends HandlebarsApplicationMixin(Appl
|
|||
experiencesFinished &&
|
||||
domainCardsFinished;
|
||||
break;
|
||||
case 'equipment':
|
||||
const armorFinished = this.equipment.armor?.uuid;
|
||||
const primaryFinished = this.equipment.primaryWeapon?.uuid;
|
||||
const secondaryFinished =
|
||||
this.equipment.secondaryWeapon?.uuid ||
|
||||
(primaryFinished && this.equipment.primaryWeapon.system.burden == burden.twoHanded.value);
|
||||
const choiceAFinished = this.equipment.inventory.choiceA?.uuid;
|
||||
const choiceBFinished = this.equipment.inventory.choiceB?.uuid;
|
||||
|
||||
v.finished =
|
||||
armorFinished && primaryFinished && secondaryFinished && choiceAFinished && choiceBFinished;
|
||||
}
|
||||
}
|
||||
|
||||
tabs.equipment.cssClass = tabs.setup.finished ? tabs.equipment.cssClass : 'disabled';
|
||||
tabs.story.cssClass = tabs.setup.finished ? tabs.story.cssClass : 'disabled';
|
||||
// tabs.story.cssClass = tabs.setup.finished ? tabs.story.cssClass : 'disabled';
|
||||
|
||||
return tabs;
|
||||
}
|
||||
|
||||
changeTab(tab, group, options) {
|
||||
super.changeTab(tab, group, options);
|
||||
|
||||
for (var listTab of Object.keys(this.constructor.TABS)) {
|
||||
const marker = options.navElement.querySelector(`a[data-action="tab"].${listTab} .finish-marker`);
|
||||
if (listTab === tab) {
|
||||
marker.classList.add('active');
|
||||
} else {
|
||||
marker.classList.remove('active');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
_attachPartListeners(partId, htmlElement, options) {
|
||||
super._attachPartListeners(partId, htmlElement, options);
|
||||
|
||||
|
|
@ -127,59 +169,104 @@ export default class DhCharacterCreation extends HandlebarsApplicationMixin(Appl
|
|||
const context = await super._prepareContext(_options);
|
||||
context.tabs = this._getTabs(this.constructor.TABS);
|
||||
|
||||
const availableTraitModifiers = game.settings
|
||||
.get(SYSTEM.id, SYSTEM.SETTINGS.gameSettings.Homebrew)
|
||||
.traitArray.map(trait => ({ key: trait, name: trait }));
|
||||
for (let trait of Object.values(this.setup.traits).filter(x => x.value !== null)) {
|
||||
const index = availableTraitModifiers.findIndex(x => x.key === trait.value);
|
||||
if (index !== -1) {
|
||||
availableTraitModifiers.splice(index, 1);
|
||||
}
|
||||
}
|
||||
return context;
|
||||
}
|
||||
|
||||
context.suggestedTraits = this.setup.class.system
|
||||
? Object.keys(this.setup.class.system.characterGuide.suggestedTraits).map(traitKey => {
|
||||
const trait = this.setup.class.system.characterGuide.suggestedTraits[traitKey];
|
||||
return `${game.i18n.localize(`DAGGERHEART.Abilities.${traitKey}.short`)} ${trait > 0 ? `+${trait}` : trait}`;
|
||||
})
|
||||
: [];
|
||||
context.traits = {
|
||||
values: Object.keys(this.setup.traits).map(traitKey => {
|
||||
const trait = this.setup.traits[traitKey];
|
||||
const options = [...availableTraitModifiers];
|
||||
if (trait.value !== null && !options.some(x => x.key === trait.value))
|
||||
options.push({ key: trait.value, name: trait.value });
|
||||
async _preparePartContext(partId, context) {
|
||||
switch (partId) {
|
||||
case 'setup':
|
||||
const availableTraitModifiers = game.settings
|
||||
.get(SYSTEM.id, SYSTEM.SETTINGS.gameSettings.Homebrew)
|
||||
.traitArray.map(trait => ({ key: trait, name: trait }));
|
||||
for (let trait of Object.values(this.setup.traits).filter(x => x.value !== null)) {
|
||||
const index = availableTraitModifiers.findIndex(x => x.key === trait.value);
|
||||
if (index !== -1) {
|
||||
availableTraitModifiers.splice(index, 1);
|
||||
}
|
||||
}
|
||||
|
||||
return {
|
||||
...trait,
|
||||
key: traitKey,
|
||||
name: game.i18n.localize(abilities[traitKey].label),
|
||||
options: options
|
||||
context.suggestedTraits = this.setup.class.system
|
||||
? Object.keys(this.setup.class.system.characterGuide.suggestedTraits).map(traitKey => {
|
||||
const trait = this.setup.class.system.characterGuide.suggestedTraits[traitKey];
|
||||
return `${game.i18n.localize(`DAGGERHEART.Abilities.${traitKey}.short`)} ${trait > 0 ? `+${trait}` : trait}`;
|
||||
})
|
||||
: [];
|
||||
context.traits = {
|
||||
values: Object.keys(this.setup.traits).map(traitKey => {
|
||||
const trait = this.setup.traits[traitKey];
|
||||
const options = [...availableTraitModifiers];
|
||||
if (trait.value !== null && !options.some(x => x.key === trait.value))
|
||||
options.push({ key: trait.value, name: trait.value });
|
||||
|
||||
return {
|
||||
...trait,
|
||||
key: traitKey,
|
||||
name: game.i18n.localize(abilities[traitKey].label),
|
||||
options: options
|
||||
};
|
||||
})
|
||||
};
|
||||
})
|
||||
};
|
||||
context.traits.nrTotal = Object.keys(context.traits.values).length;
|
||||
context.traits.nrSelected = Object.values(context.traits.values).reduce(
|
||||
(acc, trait) => acc + (trait.value !== null ? 1 : 0),
|
||||
0
|
||||
);
|
||||
context.traits.nrTotal = Object.keys(context.traits.values).length;
|
||||
context.traits.nrSelected = Object.values(context.traits.values).reduce(
|
||||
(acc, trait) => acc + (trait.value !== null ? 1 : 0),
|
||||
0
|
||||
);
|
||||
|
||||
context.experience = {
|
||||
values: this.setup.experiences,
|
||||
nrTotal: Object.keys(this.setup.experiences).length,
|
||||
nrSelected: Object.values(this.setup.experiences).reduce((acc, exp) => acc + (exp.description ? 1 : 0), 0)
|
||||
};
|
||||
context.experience = {
|
||||
values: this.setup.experiences,
|
||||
nrTotal: Object.keys(this.setup.experiences).length,
|
||||
nrSelected: Object.values(this.setup.experiences).reduce(
|
||||
(acc, exp) => acc + (exp.description ? 1 : 0),
|
||||
0
|
||||
)
|
||||
};
|
||||
|
||||
context.ancestry = { ...this.setup.ancestry, compendium: 'ancestries' };
|
||||
context.community = { ...this.setup.community, compendium: 'communities' };
|
||||
context.class = { ...this.setup.class, compendium: 'classes' };
|
||||
context.subclass = { ...this.setup.subclass, compendium: 'subclasses' };
|
||||
context.domainCards = Object.keys(this.setup.domainCards).reduce((acc, x) => {
|
||||
acc[x] = { ...this.setup.domainCards[x], compendium: 'domains' };
|
||||
return acc;
|
||||
}, {});
|
||||
context.ancestry = { ...this.setup.ancestry, compendium: 'ancestries' };
|
||||
context.community = { ...this.setup.community, compendium: 'communities' };
|
||||
context.class = { ...this.setup.class, compendium: 'classes' };
|
||||
context.subclass = { ...this.setup.subclass, compendium: 'subclasses' };
|
||||
context.domainCards = Object.keys(this.setup.domainCards).reduce((acc, x) => {
|
||||
acc[x] = { ...this.setup.domainCards[x], compendium: 'domains' };
|
||||
return acc;
|
||||
}, {});
|
||||
|
||||
context.visibility = this.visibility;
|
||||
context.visibility = this.setup.visibility;
|
||||
break;
|
||||
case 'equipment':
|
||||
const suggestions = await this.getEquipmentSuggestions(
|
||||
this.equipment.inventory.choiceA,
|
||||
this.equipment.inventory.choiceB
|
||||
);
|
||||
context.armor = {
|
||||
...this.equipment.armor,
|
||||
suggestion: { ...suggestions.armor, taken: suggestions.armor?.uuid === this.equipment.armor?.uuid },
|
||||
compendium: 'armors'
|
||||
};
|
||||
context.primaryWeapon = {
|
||||
...this.equipment.primaryWeapon,
|
||||
suggestion: {
|
||||
...suggestions.primaryWeapon,
|
||||
taken: suggestions.primaryWeapon?.uuid === this.equipment.primaryWeapon?.uuid
|
||||
},
|
||||
compendium: 'weapons'
|
||||
};
|
||||
context.secondaryWeapon = {
|
||||
...this.equipment.secondaryWeapon,
|
||||
suggestion: {
|
||||
...suggestions.secondaryWeapon,
|
||||
taken: suggestions.secondaryWeapon?.uuid === this.equipment.secondaryWeapon?.uuid
|
||||
},
|
||||
disabled: this.equipment.primaryWeapon?.system?.burden === burden.twoHanded.value,
|
||||
compendium: 'weapons'
|
||||
};
|
||||
context.inventory = {
|
||||
take: suggestions.inventory.take,
|
||||
choiceA: { suggestions: suggestions.inventory.choiceA, compendium: 'consumables' },
|
||||
choiceB: { suggestions: suggestions.inventory.choiceB, compendium: 'general-items' }
|
||||
};
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
return context;
|
||||
}
|
||||
|
|
@ -187,12 +274,12 @@ export default class DhCharacterCreation extends HandlebarsApplicationMixin(Appl
|
|||
static async updateForm(event, _, formData) {
|
||||
this.setup = foundry.utils.mergeObject(this.setup, formData.object);
|
||||
|
||||
this.visibility = this.getUpdateVisibility();
|
||||
this.setup.visibility = this.getUpdateVisibility();
|
||||
this.render();
|
||||
}
|
||||
|
||||
getUpdateVisibility() {
|
||||
switch (this.visibility) {
|
||||
switch (this.setup.visibility) {
|
||||
case 5:
|
||||
return 5;
|
||||
case 4:
|
||||
|
|
@ -206,9 +293,29 @@ export default class DhCharacterCreation extends HandlebarsApplicationMixin(Appl
|
|||
}
|
||||
}
|
||||
|
||||
async getEquipmentSuggestions(choiceA, choiceB) {
|
||||
if (!this.setup.class.uuid) return { inventory: { take: [] } };
|
||||
|
||||
const { inventory, characterGuide } = this.setup.class.system;
|
||||
return {
|
||||
armor: characterGuide.suggestedArmor ?? null,
|
||||
primaryWeapon: characterGuide.suggestedPrimaryWeapon ?? null,
|
||||
secondaryWeapon:
|
||||
{ ...characterGuide.suggestedSecondaryWeapon, uuid: characterGuide.suggestedSecondaryWeapon.uuid } ??
|
||||
null,
|
||||
inventory: {
|
||||
take: inventory.take ?? [],
|
||||
choiceA:
|
||||
inventory.choiceA?.map(x => ({ ...x, uuid: x.uuid, selected: x.uuid === choiceA?.uuid })) ?? [],
|
||||
choiceB: inventory.choiceB?.map(x => ({ ...x, uuid: x.uuid, selected: x.uuid === choiceB?.uuid })) ?? []
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
_createDragDropHandlers() {
|
||||
return this.options.dragDrop.map(d => {
|
||||
d.callbacks = {
|
||||
dragstart: this._onDragStart.bind(this),
|
||||
drop: this._onDrop.bind(this)
|
||||
};
|
||||
return new foundry.applications.ux.DragDrop.implementation(d);
|
||||
|
|
@ -219,6 +326,10 @@ export default class DhCharacterCreation extends HandlebarsApplicationMixin(Appl
|
|||
(await game.packs.get(`daggerheart.${target.dataset.compendium}`))?.render(true);
|
||||
}
|
||||
|
||||
static async viewItem(_, target) {
|
||||
(await foundry.utils.fromUuid(target.dataset.uuid)).sheet.render(true);
|
||||
}
|
||||
|
||||
static useSuggestedTraits() {
|
||||
this.setup.traits = Object.keys(this.setup.traits).reduce((acc, traitKey) => {
|
||||
acc[traitKey] = {
|
||||
|
|
@ -227,6 +338,13 @@ export default class DhCharacterCreation extends HandlebarsApplicationMixin(Appl
|
|||
};
|
||||
return acc;
|
||||
}, {});
|
||||
|
||||
this.setup.visibility = this.getUpdateVisibility();
|
||||
this.render();
|
||||
}
|
||||
|
||||
static async equipmentChoice(_, target) {
|
||||
this.equipment.inventory[target.dataset.path] = await foundry.utils.fromUuid(target.dataset.uuid);
|
||||
this.render();
|
||||
}
|
||||
|
||||
|
|
@ -237,6 +355,27 @@ export default class DhCharacterCreation extends HandlebarsApplicationMixin(Appl
|
|||
await this.character.createEmbeddedDocuments('Item', [this.setup.subclass]);
|
||||
await this.character.createEmbeddedDocuments('Item', Object.values(this.setup.domainCards));
|
||||
|
||||
if (this.equipment.armor.uuid)
|
||||
await this.character.createEmbeddedDocuments('Item', [
|
||||
{ ...this.equipment.armor, system: { ...this.equipment.armor.system, equipped: true } }
|
||||
]);
|
||||
if (this.equipment.primaryWeapon.uuid)
|
||||
await this.character.createEmbeddedDocuments('Item', [
|
||||
{ ...this.equipment.primaryWeapon, system: { ...this.equipment.primaryWeapon.system, equipped: true } }
|
||||
]);
|
||||
if (this.equipment.secondaryWeapon.uuid)
|
||||
await this.character.createEmbeddedDocuments('Item', [
|
||||
{
|
||||
...this.equipment.secondaryWeapon,
|
||||
system: { ...this.equipment.secondaryWeapon.system, equipped: true }
|
||||
}
|
||||
]);
|
||||
if (this.equipment.inventory.choiceA.uuid)
|
||||
await this.character.createEmbeddedDocuments('Item', [this.equipment.inventory.choiceA]);
|
||||
if (this.equipment.inventory.choiceB.uuid)
|
||||
await this.character.createEmbeddedDocuments('Item', [this.equipment.inventory.choiceB]);
|
||||
await this.character.createEmbeddedDocuments('Item', this.setup.class.system.inventory.take);
|
||||
|
||||
await this.character.update({
|
||||
system: {
|
||||
traits: this.setup.traits,
|
||||
|
|
@ -249,6 +388,13 @@ export default class DhCharacterCreation extends HandlebarsApplicationMixin(Appl
|
|||
this.close();
|
||||
}
|
||||
|
||||
async _onDragStart(event) {
|
||||
const target = event.currentTarget;
|
||||
|
||||
event.dataTransfer.setData('text/plain', JSON.stringify(target.dataset));
|
||||
event.dataTransfer.setDragImage(target, 60, 0);
|
||||
}
|
||||
|
||||
async _onDrop(event) {
|
||||
const data = TextEditor.getDragEventData(event);
|
||||
const item = await foundry.utils.fromUuid(data.uuid);
|
||||
|
|
@ -296,11 +442,55 @@ export default class DhCharacterCreation extends HandlebarsApplicationMixin(Appl
|
|||
}
|
||||
|
||||
this.setup.domainCards[event.target.closest('.domain-card').dataset.card] = { ...item, uuid: item.uuid };
|
||||
} else if (item.type === 'armor' && event.target.closest('.armor-card')) {
|
||||
if (item.system.tier > 1) {
|
||||
ui.notifications.error(
|
||||
game.i18n.localize('DAGGERHEART.CharacterCreation.Notifications.ItemTooHighTier')
|
||||
);
|
||||
return;
|
||||
}
|
||||
|
||||
this.equipment.armor = { ...item, uuid: item.uuid };
|
||||
} else if (item.type === 'weapon' && event.target.closest('.primary-weapon-card')) {
|
||||
if (item.system.secondary) {
|
||||
ui.notifications.error(game.i18n.localize('DAGGERHEART.CharacterCreation.Notifications.NotPrimary'));
|
||||
return;
|
||||
}
|
||||
|
||||
if (item.system.tier > 1) {
|
||||
ui.notifications.error(
|
||||
game.i18n.localize('DAGGERHEART.CharacterCreation.Notifications.ItemTooHighTier')
|
||||
);
|
||||
return;
|
||||
}
|
||||
|
||||
this.equipment.primaryWeapon = { ...item, uuid: item.uuid };
|
||||
} else if (item.type === 'weapon' && event.target.closest('.secondary-weapon-card')) {
|
||||
if (this.equipment.primaryWeapon?.system?.burden === burden.twoHanded.value) {
|
||||
ui.notifications.error(
|
||||
game.i18n.localize('DAGGERHEART.CharacterCreation.Notifications.PrimaryIsTwoHanded')
|
||||
);
|
||||
return;
|
||||
}
|
||||
|
||||
if (!item.system.secondary) {
|
||||
ui.notifications.error(game.i18n.localize('DAGGERHEART.CharacterCreation.Notifications.NotSecondary'));
|
||||
return;
|
||||
}
|
||||
|
||||
if (item.system.tier > 1) {
|
||||
ui.notifications.error(
|
||||
game.i18n.localize('DAGGERHEART.CharacterCreation.Notifications.ItemTooHighTier')
|
||||
);
|
||||
return;
|
||||
}
|
||||
|
||||
this.equipment.secondaryWeapon = { ...item, uuid: item.uuid };
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
|
||||
this.visibility = this.getUpdateVisibility();
|
||||
this.setup.visibility = this.getUpdateVisibility();
|
||||
this.render();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -221,46 +221,53 @@ export default class ClassSheet extends DaggerheartSheet(ItemSheetV2) {
|
|||
async _onDrop(event) {
|
||||
const data = TextEditor.getDragEventData(event);
|
||||
const item = await fromUuid(data.uuid);
|
||||
const target = event.target.closest('fieldset.drop-section');
|
||||
if (item.type === 'subclass') {
|
||||
await this.document.update({
|
||||
'system.subclasses': [...this.document.system.subclasses.map(x => x.uuid), item.uuid]
|
||||
});
|
||||
} else if (item.type === 'weapon') {
|
||||
if (event.currentTarget.classList.contains('primary-weapon-section')) {
|
||||
if (target.classList.contains('primary-weapon-section')) {
|
||||
if (!this.document.system.characterGuide.suggestedPrimaryWeapon && !item.system.secondary)
|
||||
await this.document.update({
|
||||
'system.characterGuide.suggestedPrimaryWeapon': item.uuid
|
||||
});
|
||||
} else if (event.currentTarget.classList.contains('secondary-weapon-section')) {
|
||||
} else if (target.classList.contains('secondary-weapon-section')) {
|
||||
if (!this.document.system.characterGuide.suggestedSecondaryWeapon && item.system.secondary)
|
||||
await this.document.update({
|
||||
'system.characterGuide.suggestedSecondaryWeapon': item.uuid
|
||||
});
|
||||
}
|
||||
} else if (item.type === 'armor') {
|
||||
if (event.currentTarget.classList.contains('armor-section')) {
|
||||
if (target.classList.contains('armor-section')) {
|
||||
if (!this.document.system.characterGuide.suggestedArmor)
|
||||
await this.document.update({
|
||||
'system.characterGuide.suggestedArmor': item.uuid
|
||||
});
|
||||
}
|
||||
} else if (event.currentTarget.classList.contains('choice-a-section')) {
|
||||
} else if (target.classList.contains('choice-a-section')) {
|
||||
if (item.type === 'miscellaneous' || item.type === 'consumable') {
|
||||
if (this.document.system.inventory.choiceA.length < 2)
|
||||
await this.document.update({
|
||||
'system.inventory.choiceA': [...this.document.system.inventory.choiceA, item.uuid]
|
||||
'system.inventory.choiceA': [
|
||||
...this.document.system.inventory.choiceA.map(x => x.uuid),
|
||||
item.uuid
|
||||
]
|
||||
});
|
||||
}
|
||||
} else if (item.type === 'miscellaneous') {
|
||||
if (event.currentTarget.classList.contains('take-section')) {
|
||||
if (target.classList.contains('take-section')) {
|
||||
if (this.document.system.inventory.take.length < 3)
|
||||
await this.document.update({
|
||||
'system.inventory.take': [...this.document.system.inventory.take, item.uuid]
|
||||
'system.inventory.take': [...this.document.system.inventory.take.map(x => x.uuid), item.uuid]
|
||||
});
|
||||
} else if (event.currentTarget.classList.contains('choice-b-section')) {
|
||||
} else if (target.classList.contains('choice-b-section')) {
|
||||
if (this.document.system.inventory.choiceB.length < 2)
|
||||
await this.document.update({
|
||||
'system.inventory.choiceB': [...this.document.system.inventory.choiceB, item.uuid]
|
||||
'system.inventory.choiceB': [
|
||||
...this.document.system.inventory.choiceB.map(x => x.uuid),
|
||||
item.uuid
|
||||
]
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -67,6 +67,23 @@
|
|||
flex-direction: column;
|
||||
gap: 4px;
|
||||
|
||||
.selections-container {
|
||||
width: 140px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
text-align: center;
|
||||
|
||||
.card-preview-container {
|
||||
border-color: light-dark(@dark-blue, @golden);
|
||||
}
|
||||
}
|
||||
|
||||
.selections-outer-container {
|
||||
display: flex;
|
||||
justify-content: space-evenly;
|
||||
height: 210px;
|
||||
}
|
||||
|
||||
.section-container {
|
||||
border-radius: 8px;
|
||||
border-color: light-dark(@dark-blue, @golden);
|
||||
|
|
@ -170,23 +187,6 @@
|
|||
}
|
||||
}
|
||||
|
||||
.selections-container {
|
||||
display: flex;
|
||||
justify-content: space-evenly;
|
||||
height: 210px;
|
||||
|
||||
.selections-inner-container {
|
||||
width: 140px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
text-align: center;
|
||||
|
||||
.card-preview-container {
|
||||
border-color: light-dark(@dark-blue, @golden);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.creation-action-footer {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
|
@ -261,6 +261,127 @@
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
.main-equipment-selection {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 2fr;
|
||||
gap: 16px;
|
||||
|
||||
&.triple {
|
||||
grid-template-columns: 1fr 1fr 1fr;
|
||||
}
|
||||
}
|
||||
|
||||
.equipment-selection {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
border: 2px solid light-dark(@dark-blue, @golden);
|
||||
border-radius: 8px;
|
||||
|
||||
legend {
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
font-size: 28px;
|
||||
font-weight: bold;
|
||||
padding: 0 8px;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.equipment-subsection {
|
||||
display: flex;
|
||||
align-items: start;
|
||||
gap: 32px;
|
||||
}
|
||||
|
||||
.equipment-wrapper {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
}
|
||||
|
||||
.simple-equipment-container {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: space-evenly;
|
||||
gap: 8px;
|
||||
height: 100%;
|
||||
|
||||
.simple-equipment {
|
||||
border: 1px solid light-dark(@dark-blue, @golden);
|
||||
border-radius: 8px;
|
||||
position: relative;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
|
||||
&.selectable {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
&.inactive {
|
||||
opacity: 0.4;
|
||||
}
|
||||
|
||||
label {
|
||||
position: absolute;
|
||||
top: -8px;
|
||||
font-size: 12px;
|
||||
white-space: nowrap;
|
||||
border: 1px solid light-dark(@dark-blue, @golden);
|
||||
border-radius: 6px;
|
||||
color: light-dark(@beige, @dark);
|
||||
background-image: url('../assets/parchments/dh-parchment-light.png');
|
||||
padding: 0 2px;
|
||||
}
|
||||
|
||||
img {
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
border-radius: 8px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.suggestion-container {
|
||||
position: relative;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
height: min-content;
|
||||
border: 2px solid light-dark(@dark-blue, @golden);
|
||||
border-radius: 8px;
|
||||
|
||||
legend {
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.suggestion-inner-container {
|
||||
position: relative;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
padding: 6px;
|
||||
cursor: grab;
|
||||
|
||||
&.taken {
|
||||
opacity: 0.4;
|
||||
}
|
||||
|
||||
label {
|
||||
position: absolute;
|
||||
top: -2px;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
img {
|
||||
width: 120px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.creation-action-footer {
|
||||
|
|
|
|||
|
|
@ -2524,7 +2524,7 @@ div.daggerheart.views.multiclass {
|
|||
align-items: center;
|
||||
justify-content: center;
|
||||
background-color: var(--color-cool-4);
|
||||
content: "";
|
||||
content: '';
|
||||
}
|
||||
.daggerheart.dh-style.dialog.character-creation .tab-navigation nav a .finish-marker.active {
|
||||
background-color: var(--color-warm-2);
|
||||
|
|
@ -2547,6 +2547,20 @@ div.daggerheart.views.multiclass {
|
|||
flex-direction: column;
|
||||
gap: 4px;
|
||||
}
|
||||
.daggerheart.dh-style.dialog.character-creation .main-selections-container .selections-container {
|
||||
width: 140px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
text-align: center;
|
||||
}
|
||||
.daggerheart.dh-style.dialog.character-creation .main-selections-container .selections-container .card-preview-container {
|
||||
border-color: light-dark(#18162e, #f3c267);
|
||||
}
|
||||
.daggerheart.dh-style.dialog.character-creation .main-selections-container .selections-outer-container {
|
||||
display: flex;
|
||||
justify-content: space-evenly;
|
||||
height: 210px;
|
||||
}
|
||||
.daggerheart.dh-style.dialog.character-creation .main-selections-container .section-container {
|
||||
border-radius: 8px;
|
||||
border-color: light-dark(#18162e, #f3c267);
|
||||
|
|
@ -2635,20 +2649,6 @@ div.daggerheart.views.multiclass {
|
|||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
.daggerheart.dh-style.dialog.character-creation .main-selections-container .selections-container {
|
||||
display: flex;
|
||||
justify-content: space-evenly;
|
||||
height: 210px;
|
||||
}
|
||||
.daggerheart.dh-style.dialog.character-creation .main-selections-container .selections-container .selections-inner-container {
|
||||
width: 140px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
text-align: center;
|
||||
}
|
||||
.daggerheart.dh-style.dialog.character-creation .main-selections-container .selections-container .selections-inner-container .card-preview-container {
|
||||
border-color: light-dark(#18162e, #f3c267);
|
||||
}
|
||||
.daggerheart.dh-style.dialog.character-creation .main-selections-container .creation-action-footer {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
|
@ -2692,7 +2692,7 @@ div.daggerheart.views.multiclass {
|
|||
align-items: center;
|
||||
justify-content: center;
|
||||
background-color: var(--color-cool-4);
|
||||
content: "";
|
||||
content: '';
|
||||
}
|
||||
.daggerheart.dh-style.dialog.character-creation .main-selections-container .creation-action-footer .footer-section nav a .finish-marker.finished {
|
||||
background-color: var(--color-warm-2);
|
||||
|
|
@ -2715,6 +2715,109 @@ div.daggerheart.views.multiclass {
|
|||
height: 100%;
|
||||
white-space: nowrap;
|
||||
}
|
||||
.daggerheart.dh-style.dialog.character-creation .main-selections-container .main-equipment-selection {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 2fr;
|
||||
gap: 16px;
|
||||
}
|
||||
.daggerheart.dh-style.dialog.character-creation .main-selections-container .main-equipment-selection.triple {
|
||||
grid-template-columns: 1fr 1fr 1fr;
|
||||
}
|
||||
.daggerheart.dh-style.dialog.character-creation .main-selections-container .equipment-selection {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
border: 2px solid light-dark(#18162e, #f3c267);
|
||||
border-radius: 8px;
|
||||
}
|
||||
.daggerheart.dh-style.dialog.character-creation .main-selections-container .equipment-selection legend {
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
font-size: 28px;
|
||||
font-weight: bold;
|
||||
padding: 0 8px;
|
||||
white-space: nowrap;
|
||||
}
|
||||
.daggerheart.dh-style.dialog.character-creation .main-selections-container .equipment-selection .equipment-subsection {
|
||||
display: flex;
|
||||
align-items: start;
|
||||
gap: 32px;
|
||||
}
|
||||
.daggerheart.dh-style.dialog.character-creation .main-selections-container .equipment-selection .equipment-wrapper {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
}
|
||||
.daggerheart.dh-style.dialog.character-creation .main-selections-container .equipment-selection .simple-equipment-container {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: space-evenly;
|
||||
gap: 8px;
|
||||
height: 100%;
|
||||
}
|
||||
.daggerheart.dh-style.dialog.character-creation .main-selections-container .equipment-selection .simple-equipment-container .simple-equipment {
|
||||
border: 1px solid light-dark(#18162e, #f3c267);
|
||||
border-radius: 8px;
|
||||
position: relative;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
}
|
||||
.daggerheart.dh-style.dialog.character-creation .main-selections-container .equipment-selection .simple-equipment-container .simple-equipment.selectable {
|
||||
cursor: pointer;
|
||||
}
|
||||
.daggerheart.dh-style.dialog.character-creation .main-selections-container .equipment-selection .simple-equipment-container .simple-equipment.inactive {
|
||||
opacity: 0.4;
|
||||
}
|
||||
.daggerheart.dh-style.dialog.character-creation .main-selections-container .equipment-selection .simple-equipment-container .simple-equipment label {
|
||||
position: absolute;
|
||||
top: -8px;
|
||||
font-size: 12px;
|
||||
white-space: nowrap;
|
||||
border: 1px solid light-dark(#18162e, #f3c267);
|
||||
border-radius: 6px;
|
||||
color: light-dark(#efe6d8, #222);
|
||||
background-image: url('../assets/parchments/dh-parchment-light.png');
|
||||
padding: 0 2px;
|
||||
}
|
||||
.daggerheart.dh-style.dialog.character-creation .main-selections-container .equipment-selection .simple-equipment-container .simple-equipment img {
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
border-radius: 8px;
|
||||
}
|
||||
.daggerheart.dh-style.dialog.character-creation .main-selections-container .equipment-selection .suggestion-container {
|
||||
position: relative;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
height: min-content;
|
||||
border: 2px solid light-dark(#18162e, #f3c267);
|
||||
border-radius: 8px;
|
||||
}
|
||||
.daggerheart.dh-style.dialog.character-creation .main-selections-container .equipment-selection .suggestion-container legend {
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
font-size: 12px;
|
||||
}
|
||||
.daggerheart.dh-style.dialog.character-creation .main-selections-container .equipment-selection .suggestion-container .suggestion-inner-container {
|
||||
position: relative;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
padding: 6px;
|
||||
cursor: grab;
|
||||
}
|
||||
.daggerheart.dh-style.dialog.character-creation .main-selections-container .equipment-selection .suggestion-container .suggestion-inner-container.taken {
|
||||
opacity: 0.4;
|
||||
}
|
||||
.daggerheart.dh-style.dialog.character-creation .main-selections-container .equipment-selection .suggestion-container .suggestion-inner-container label {
|
||||
position: absolute;
|
||||
top: -2px;
|
||||
font-size: 12px;
|
||||
}
|
||||
.daggerheart.dh-style.dialog.character-creation .main-selections-container .equipment-selection .suggestion-container .suggestion-inner-container img {
|
||||
width: 120px;
|
||||
}
|
||||
.daggerheart.dh-style.dialog.character-creation .creation-action-footer {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
|
|
|||
|
|
@ -3,7 +3,105 @@
|
|||
data-tab='{{tabs.equipment.id}}'
|
||||
data-group='{{tabs.equipment.group}}'
|
||||
>
|
||||
<div>
|
||||
Test
|
||||
<div class="main-selections-container">
|
||||
<div class="main-equipment-selection">
|
||||
<fieldset class="equipment-selection">
|
||||
<legend>{{localize "DAGGERHEART.CharacterCreation.SuggestedArmor"}}</legend>
|
||||
|
||||
<div class="selections-container armor-card">
|
||||
{{#> "systems/daggerheart/templates/components/card-preview.hbs" armor }}
|
||||
{{localize "DAGGERHEART.CharacterCreation.SelectArmor"}}
|
||||
{{/"systems/daggerheart/templates/components/card-preview.hbs"}}
|
||||
</div>
|
||||
{{#if armor.suggestion}}
|
||||
<fieldset class="suggestion-container">
|
||||
<legend>{{armor.suggestion.name}}</legend>
|
||||
<div class="suggestion-inner-container {{#if armor.suggestion.taken}}taken{{/if}}" data-action="viewItem" data-uuid="{{armor.suggestion.uuid}}">
|
||||
<img src="{{armor.suggestion.img}}" />
|
||||
</div>
|
||||
</fieldset>
|
||||
{{/if}}
|
||||
</fieldset>
|
||||
|
||||
<fieldset class="equipment-selection">
|
||||
<legend>{{localize "DAGGERHEART.CharacterCreation.SuggestedWeapons"}}</legend>
|
||||
|
||||
<div class="equipment-subsection">
|
||||
<div class="equipment-wrapper">
|
||||
<div class="selections-container primary-weapon-card">
|
||||
{{#> "systems/daggerheart/templates/components/card-preview.hbs" primaryWeapon }}
|
||||
{{localize "DAGGERHEART.CharacterCreation.SelectPrimaryWeapon"}}
|
||||
{{/"systems/daggerheart/templates/components/card-preview.hbs"}}
|
||||
</div>
|
||||
{{#if primaryWeapon.suggestion}}
|
||||
<fieldset class="suggestion-container">
|
||||
<legend>{{primaryWeapon.suggestion.name}}</legend>
|
||||
<div class="suggestion-inner-container {{#if primaryWeapon.suggestion.taken}}taken{{/if}}" data-action="viewItem" data-uuid="{{primaryWeapon.suggestion.uuid}}">
|
||||
<img src="{{primaryWeapon.suggestion.img}}" />
|
||||
</div>
|
||||
</fieldset>
|
||||
{{/if}}
|
||||
</div>
|
||||
<div class="equipment-wrapper">
|
||||
<div class="selections-container secondary-weapon-card">
|
||||
{{#> "systems/daggerheart/templates/components/card-preview.hbs" secondaryWeapon }}
|
||||
{{localize "DAGGERHEART.CharacterCreation.SelectSecondaryWeapon"}}
|
||||
{{/"systems/daggerheart/templates/components/card-preview.hbs"}}
|
||||
</div>
|
||||
{{#if secondaryWeapon.suggestion}}
|
||||
<fieldset class="suggestion-container">
|
||||
<legend>{{secondaryWeapon.suggestion.name}}</legend>
|
||||
<div
|
||||
class="suggestion-inner-container {{#if secondaryWeapon.suggestion.taken}}taken{{/if}}"
|
||||
data-action="viewItem" data-uuid="{{secondaryWeapon.suggestion.uuid}}"
|
||||
>
|
||||
<img src="{{secondaryWeapon.suggestion.img}}" />
|
||||
</div>
|
||||
</fieldset>
|
||||
{{/if}}
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
</div>
|
||||
<div class="main-equipment-selection triple">
|
||||
<fieldset class="equipment-selection">
|
||||
<legend>{{localize "DAGGERHEART.CharacterCreation.StartingItems"}}</legend>
|
||||
|
||||
<div class="simple-equipment-container">
|
||||
{{#each inventory.take}}
|
||||
<div class="simple-equipment">
|
||||
<label>{{this.name}}</label>
|
||||
<img src="{{this.img}}" />
|
||||
</div>
|
||||
{{/each}}
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
<fieldset class="equipment-selection">
|
||||
<legend>{{localize "DAGGERHEART.CharacterCreation.Choice"}}</legend>
|
||||
|
||||
<div class="simple-equipment-container">
|
||||
{{#each inventory.choiceA.suggestions}}
|
||||
<div class="simple-equipment selectable {{#if (not this.selected)}}inactive{{/if}}" data-action="equipmentChoice" data-path="choiceA" data-uuid="{{this.uuid}}">
|
||||
<label>{{this.name}}</label>
|
||||
<img src="{{this.img}}" />
|
||||
</div>
|
||||
{{/each}}
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
<fieldset class="equipment-selection">
|
||||
<legend>{{localize "DAGGERHEART.CharacterCreation.Choice"}}</legend>
|
||||
|
||||
<div class="simple-equipment-container">
|
||||
{{#each inventory.choiceB.suggestions}}
|
||||
<div class="simple-equipment selectable {{#if (not this.selected)}}inactive{{/if}}" data-action="equipmentChoice" data-path="choiceB" data-uuid="{{this.uuid}}" >
|
||||
<label>{{this.name}}</label>
|
||||
<img src="{{this.img}}" />
|
||||
</div>
|
||||
{{/each}}
|
||||
</div>
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
|
@ -6,14 +6,14 @@
|
|||
<div class="main-selections-container">
|
||||
<fieldset class="section-container">
|
||||
<legend>{{localize "TYPES.Item.class"}}</legend>
|
||||
<div class="selections-container">
|
||||
<div class="selections-inner-container class-card">
|
||||
<div class="selections-outer-container">
|
||||
<div class="selections-container class-card">
|
||||
{{#> "systems/daggerheart/templates/components/card-preview.hbs" class }}
|
||||
{{localize "DAGGERHEART.CharacterCreation.SelectClass"}}
|
||||
{{/"systems/daggerheart/templates/components/card-preview.hbs"}}
|
||||
</div>
|
||||
|
||||
<div class="selections-inner-container subclass-card">
|
||||
<div class="selections-container subclass-card">
|
||||
{{#> "systems/daggerheart/templates/components/card-preview.hbs" subclass disabled=(not class.img) }}
|
||||
{{localize "DAGGERHEART.CharacterCreation.SelectSubclass"}}
|
||||
{{/"systems/daggerheart/templates/components/card-preview.hbs"}}
|
||||
|
|
@ -24,14 +24,14 @@
|
|||
{{#if (gte visibility 2)}}
|
||||
<fieldset class="section-container">
|
||||
<legend>{{localize "DAGGERHEART.CharacterCreation.Heritage"}}</legend>
|
||||
<div class="selections-container">
|
||||
<div class="selections-inner-container ancestry-card">
|
||||
<div class="selections-outer-container">
|
||||
<div class="selections-container ancestry-card">
|
||||
{{#> "systems/daggerheart/templates/components/card-preview.hbs" ancestry }}
|
||||
{{localize "DAGGERHEART.CharacterCreation.SelectAncestry"}}
|
||||
{{/"systems/daggerheart/templates/components/card-preview.hbs"}}
|
||||
</div>
|
||||
|
||||
<div class="selections-inner-container community-card">
|
||||
<div class="selections-container community-card">
|
||||
{{#> "systems/daggerheart/templates/components/card-preview.hbs" community }}
|
||||
{{localize "DAGGERHEART.CharacterCreation.SelectCommunity"}}
|
||||
{{/"systems/daggerheart/templates/components/card-preview.hbs"}}
|
||||
|
|
@ -84,9 +84,9 @@
|
|||
{{#if (gte visibility 5)}}
|
||||
<fieldset class="section-container">
|
||||
<legend>{{localize "TYPES.Item.domainCard"}}</legend>
|
||||
<div class="selections-container">
|
||||
<div class="selections-outer-container">
|
||||
{{#each domainCards as |domainCard id|}}
|
||||
<div class="selections-inner-container domain-card" data-card="{{id}}">
|
||||
<div class="selections-container domain-card" data-card="{{id}}">
|
||||
{{#> "systems/daggerheart/templates/components/card-preview.hbs" domainCard }}
|
||||
{{#each @root.class.system.domains }}
|
||||
<div>{{localize (concat "DAGGERHEART.Domains." this ".label")}}</div>
|
||||
|
|
@ -97,30 +97,5 @@
|
|||
</div>
|
||||
</fieldset>
|
||||
{{/if}}
|
||||
|
||||
{{!-- <footer class="creation-action-footer">
|
||||
<div class="footer-section">
|
||||
<nav class="feature-tab sheet-tabs tabs">
|
||||
<a>
|
||||
{{localize "DAGGERHEART.CharacterCreation.Tabs.Setup"}}
|
||||
<div class="finish-marker finished"><i class="fa-solid fa-check"></i></div>
|
||||
</a>
|
||||
<a>
|
||||
{{localize "DAGGERHEART.CharacterCreation.Tabs.Equipment"}}
|
||||
<div class="finish-marker"></div>
|
||||
<div class="descriptor">{{localize "DAGGERHEART.CharacterCreation.Tabs.Optional"}}</div>
|
||||
</a>
|
||||
<a>
|
||||
{{localize "DAGGERHEART.CharacterCreation.Tabs.Story"}}
|
||||
<div class="finish-marker"></div>
|
||||
<div class="descriptor">{{localize "DAGGERHEART.CharacterCreation.Tabs.Optional"}}</div>
|
||||
</a>
|
||||
</nav>
|
||||
</div>
|
||||
<div class="footer-section">
|
||||
<button data-action="close">{{localize "Cancel"}}</button>
|
||||
<button {{#if this.finished}}data-action="finish"{{else}}disabled{{/if}}>{{localize "DAGGERHEART.CharacterCreation.FinishCreation"}}</button>
|
||||
</div>
|
||||
</footer> --}}
|
||||
</div>
|
||||
</section>
|
||||
|
|
@ -4,6 +4,6 @@
|
|||
data-group='{{tabs.story.group}}'
|
||||
>
|
||||
<div>
|
||||
Test
|
||||
Story
|
||||
</div>
|
||||
</section>
|
||||
Loading…
Add table
Add a link
Reference in a new issue