Added markers

This commit is contained in:
WBHarry 2025-06-06 02:55:53 +02:00
parent 43444dfd42
commit c5f8f88c1f
7 changed files with 59 additions and 64 deletions

View file

@ -794,8 +794,6 @@
}, },
"notifications": { "notifications": {
"info": { "info": {
"tierAdvancementInfo": "Advancements from a higher tier can always be used to select advancements in a lower tier.",
"remainingAdvancementInfo": "Remaining Choices: {choices}",
"insufficentAdvancements": "You don't have enough advancements left.", "insufficentAdvancements": "You don't have enough advancements left.",
"insufficientTierAdvancements": "You have no available advancements for this tier." "insufficientTierAdvancements": "You have no available advancements for this tier."
}, },

View file

@ -112,6 +112,9 @@ export default class DhlevelUp extends HandlebarsApplicationMixin(ApplicationV2)
show: this.tabGroups.primary !== 'summary' show: this.tabGroups.primary !== 'summary'
} }
}; };
const { selections } = currentLevel.nrSelections;
context.tabs.advancements.progress = { selected: selections, max: currentLevel.maxSelections };
break; break;
case 'selections': case 'selections':
const advancementChoices = Object.keys(currentLevel.choices).reduce((acc, choiceKey) => { const advancementChoices = Object.keys(currentLevel.choices).reduce((acc, choiceKey) => {
@ -131,19 +134,29 @@ export default class DhlevelUp extends HandlebarsApplicationMixin(ApplicationV2)
}, {}); }, {});
const traits = Object.values(advancementChoices.trait ?? {}); const traits = Object.values(advancementChoices.trait ?? {});
const traitValues = traits.filter(trait => trait.data.length > 0).flatMap(trait => trait.data);
context.traits = { context.traits = {
values: traits.filter(trait => trait.data.length > 0).flatMap(trait => trait.data), values: traitValues,
active: traits.length > 0 active: traits.length > 0,
progress: {
selected: traitValues.length,
max: traits.reduce((acc, exp) => acc + exp.amount, 0)
}
}; };
const experienceIncreases = Object.values(advancementChoices.experience ?? {}); const experienceIncreases = Object.values(advancementChoices.experience ?? {});
const experienceIncreaseValues = experienceIncreases
.filter(exp => exp.data.length > 0)
.flatMap(exp =>
exp.data.map(data => this.actor.system.experiences.find(x => x.id === data).description)
);
context.experienceIncreases = { context.experienceIncreases = {
values: experienceIncreases values: experienceIncreaseValues,
.filter(exp => exp.data.length > 0) active: experienceIncreases.length > 0,
.flatMap(exp => progress: {
exp.data.map(data => this.actor.system.experiences.find(x => x.id === data).description) selected: experienceIncreaseValues.length,
), max: experienceIncreases.reduce((acc, exp) => acc + exp.amount, 0)
active: experienceIncreases.length > 0 }
}; };
context.newExperiences = Object.keys(currentLevel.achievements.experiences).map(key => { context.newExperiences = Object.keys(currentLevel.achievements.experiences).map(key => {

View file

@ -2743,6 +2743,11 @@ div.daggerheart.views.multiclass {
.daggerheart.levelup .levelup-navigation-container nav { .daggerheart.levelup .levelup-navigation-container nav {
flex: 1; flex: 1;
} }
.daggerheart.levelup .levelup-navigation-container nav .levelup-tab-container {
display: flex;
align-items: center;
gap: 4px;
}
.daggerheart.levelup .levelup-navigation-container .levelup-navigation-actions { .daggerheart.levelup .levelup-navigation-container .levelup-navigation-actions {
width: 306px; width: 306px;
display: flex; display: flex;
@ -2884,6 +2889,11 @@ div.daggerheart.views.multiclass {
position: relative; position: relative;
right: 2px; right: 2px;
} }
.daggerheart.levelup .levelup-selections-container .levelup-selections-title {
display: flex;
align-items: center;
gap: 4px;
}
.daggerheart.levelup .levelup-summary-container .level-achievements-container, .daggerheart.levelup .levelup-summary-container .level-achievements-container,
.daggerheart.levelup .levelup-summary-container .level-advancements-container { .daggerheart.levelup .levelup-summary-container .level-advancements-container {
display: flex; display: flex;
@ -2920,24 +2930,6 @@ div.daggerheart.views.multiclass {
.daggerheart.levelup .levelup-footer { .daggerheart.levelup .levelup-footer {
display: flex; display: flex;
} }
.daggerheart.levelup .levelup-footer .advancement-information-container {
display: flex;
gap: 8px;
border-bottom: 3px solid;
border-radius: 4px;
margin-left: 8px;
align-items: center;
padding: 0 8px;
border-color: #9f8475;
}
.daggerheart.levelup .levelup-footer .advancement-information-container .advancement-tier-stats {
border: 1px solid;
padding: 0 2px;
border-radius: 6px;
}
.daggerheart.levelup .levelup-footer .advancement-information-container .advancement-tier-info {
font-size: 14px;
}
:root { :root {
--primary-color-fear: rgba(9, 71, 179, 0.75); --primary-color-fear: rgba(9, 71, 179, 0.75);
--secondary-color-fear: rgba(9, 71, 179, 0.75); --secondary-color-fear: rgba(9, 71, 179, 0.75);

View file

@ -35,6 +35,12 @@
nav { nav {
flex: 1; flex: 1;
.levelup-tab-container {
display: flex;
align-items: center;
gap: 4px;
}
} }
.levelup-navigation-actions { .levelup-navigation-actions {
@ -204,6 +210,12 @@
} }
} }
} }
.levelup-selections-title {
display: flex;
align-items: center;
gap: 4px;
}
} }
.levelup-summary-container { .levelup-summary-container {
@ -244,26 +256,5 @@
.levelup-footer { .levelup-footer {
display: flex; display: flex;
.advancement-information-container {
display: flex;
gap: 8px;
border-bottom: 3px solid;
border-radius: 4px;
margin-left: 8px;
align-items: center;
padding: 0 8px;
border-color: rgb(159, 132, 117);
.advancement-tier-stats {
border: 1px solid;
padding: 0 2px;
border-radius: 6px;
}
.advancement-tier-info {
font-size: 14px;
}
}
} }
} }

View file

@ -36,15 +36,5 @@
</fieldset> </fieldset>
{{/each}} {{/each}}
</div> </div>
<footer class="levelup-footer">
<div class="advancement-information-container">
{{localize "DAGGERHEART.Application.LevelUp.notifications.info.remainingAdvancementInfo" choices=this.levelup.levelSelections.totalAvailable}}
{{#each this.levelup.tiers as |tier key|}}
<div class="advancement-tier-stats">Tier {{tier.tier}}: {{tier.selections.totalAvailable}}</div>
{{/each}}
<i class="advancement-tier-info fa-solid fa-circle-question" data-tooltip="{{localize "DAGGERHEART.Application.LevelUp.notifications.info.tierAdvancementInfo"}}"></i>
</div>
</footer>
</div> </div>
</section> </section>

View file

@ -25,7 +25,10 @@
{{#if this.traits.active}} {{#if this.traits.active}}
<div> <div>
<h3>{{localize "DAGGERHEART.Application.LevelUp.summary.traits"}}</h3> <h3 class="levelup-selections-title">
<div>{{localize "DAGGERHEART.Application.LevelUp.summary.traits"}}</div>
<div>{{this.traits.progress.selected}}/{{this.traits.progress.max}}</div>
</h3>
<input type="text" class="levelup-trait-increases" value="{{this.traits.values}}" /> <input type="text" class="levelup-trait-increases" value="{{this.traits.values}}" />
</div> </div>
@ -33,7 +36,10 @@
{{#if this.experienceIncreases.active}} {{#if this.experienceIncreases.active}}
<div> <div>
<h3>{{localize "DAGGERHEART.Application.LevelUp.summary.experienceIncreases"}}</h3> <h3 class="levelup-selections-title">
<div>{{localize "DAGGERHEART.Application.LevelUp.summary.experienceIncreases"}}</div>
<div>{{this.experienceIncreases.progress.selected}}/{{this.experienceIncreases.progress.max}}</div>
</h3>
<input type="text" class="levelup-experience-increases" value="{{this.experienceIncreases.values}}" /> <input type="text" class="levelup-experience-increases" value="{{this.experienceIncreases.values}}" />
</div> </div>

View file

@ -4,9 +4,14 @@
<nav class='feature-tab sheet-tabs tabs' data-group='primary'> <nav class='feature-tab sheet-tabs tabs' data-group='primary'>
{{#each tabs as |tab|}} {{#each tabs as |tab|}}
{{#if (not (eq tab.id 'summary'))}} {{#if (not (eq tab.id 'summary'))}}
<a class='{{tab.id}} {{tab.cssClass}}' data-action='tab' data-group='{{tab.group}}' data-tab='{{tab.id}}'> <div class="levelup-tab-container">
{{localize tab.label}} <a class='{{tab.id}} {{tab.cssClass}}' data-action='tab' data-group='{{tab.group}}' data-tab='{{tab.id}}'>
</a> {{localize tab.label}}
</a>
{{#if tab.progress}}
<div>{{tab.progress.selected}}/{{tab.progress.max}}</div>
{{/if}}
</div>
{{/if}} {{/if}}
{{/each}} {{/each}}
</nav> </nav>