Improve sort order and remove list header that's inaccurate now
This commit is contained in:
parent
1302d91469
commit
7d9993b158
3 changed files with 26 additions and 7 deletions
|
|
@ -128,7 +128,7 @@ export class HeroSkillsCardV1 extends GenericAppMixin(HandlebarsApplicationMixin
|
||||||
ctx.skills = {};
|
ctx.skills = {};
|
||||||
const abilities = Object.values(gameTerms.Abilities);
|
const abilities = Object.values(gameTerms.Abilities);
|
||||||
const heroRank = ctx.actor.system.level.rank;
|
const heroRank = ctx.actor.system.level.rank;
|
||||||
const embeddedSkills = ctx.actor.itemTypes.skill.sort(documentSorter);
|
const embeddedSkills = ctx.actor.itemTypes.skill;
|
||||||
|
|
||||||
for (let ability of abilities) {
|
for (let ability of abilities) {
|
||||||
const skills = [];
|
const skills = [];
|
||||||
|
|
@ -137,6 +137,7 @@ export class HeroSkillsCardV1 extends GenericAppMixin(HandlebarsApplicationMixin
|
||||||
skills.push({
|
skills.push({
|
||||||
uuid: skill.uuid,
|
uuid: skill.uuid,
|
||||||
name: skill.name,
|
name: skill.name,
|
||||||
|
sort: skill.sort,
|
||||||
use: skill.system.advances[heroRank],
|
use: skill.system.advances[heroRank],
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
@ -162,6 +163,9 @@ export class HeroSkillsCardV1 extends GenericAppMixin(HandlebarsApplicationMixin
|
||||||
.concat(Array(limit - length).fill(null))
|
.concat(Array(limit - length).fill(null))
|
||||||
.slice(0, limit);
|
.slice(0, limit);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// Sort the skills
|
||||||
|
ctx.skills[ability] = ctx.skills[ability].sort(documentSorter);
|
||||||
}
|
}
|
||||||
return ctx;
|
return ctx;
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -7,11 +7,30 @@ export function filePath(path) {
|
||||||
};
|
};
|
||||||
|
|
||||||
// MARK: documentSorter
|
// MARK: documentSorter
|
||||||
|
/**
|
||||||
|
* @typedef {Object} Sortable
|
||||||
|
* @property {integer} sort
|
||||||
|
* @property {string} name
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Compares two Sortable documents in order to determine ordering
|
||||||
|
* @param {Sortable} a
|
||||||
|
* @param {Sortable} b
|
||||||
|
* @returns An integer dictating which order the two documents should be sorted in
|
||||||
|
*/
|
||||||
export function documentSorter(a, b) {
|
export function documentSorter(a, b) {
|
||||||
|
if (!a && !b) {
|
||||||
|
return 0;
|
||||||
|
} else if (!a) {
|
||||||
|
return 1;
|
||||||
|
} else if (!b) {
|
||||||
|
return -1;
|
||||||
|
};
|
||||||
|
|
||||||
const sortDelta = b.sort - a.sort;
|
const sortDelta = b.sort - a.sort;
|
||||||
if (sortDelta !== 0) {
|
if (sortDelta !== 0) {
|
||||||
return sortDelta;
|
return sortDelta;
|
||||||
};
|
};
|
||||||
// TODO alphabetical sort
|
return Math.sign(a.name.localeCompare(b.name));
|
||||||
return 0;
|
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,6 @@
|
||||||
<div class="HeroSkillsCardV1">
|
<div class="HeroSkillsCardV1">
|
||||||
<div class="label col-header list-header gait-skills-header">
|
<div class="label col-header list-header gait-skills-header">
|
||||||
<span>{{ rc-i18n "RipCrypt.Apps.grit-skills" }}</span>
|
<span>{{ rc-i18n "RipCrypt.Apps.grit-skills" }}</span>
|
||||||
<span class="small">{{ rc-i18n "RipCrypt.common.rank" }}</span>
|
|
||||||
</div>
|
</div>
|
||||||
<ol class="num-before skill-list even grit-skills">
|
<ol class="num-before skill-list even grit-skills">
|
||||||
{{#each skills.grit as | skill |}}
|
{{#each skills.grit as | skill |}}
|
||||||
|
|
@ -24,7 +23,6 @@
|
||||||
|
|
||||||
<div class="label col-header list-header gait-skills-header">
|
<div class="label col-header list-header gait-skills-header">
|
||||||
<span>{{ rc-i18n "RipCrypt.Apps.gait-skills" }}</span>
|
<span>{{ rc-i18n "RipCrypt.Apps.gait-skills" }}</span>
|
||||||
<span class="small">{{ rc-i18n "RipCrypt.common.rank" }}</span>
|
|
||||||
</div>
|
</div>
|
||||||
<ol class="num-before skill-list even gait-skills">
|
<ol class="num-before skill-list even gait-skills">
|
||||||
{{#each skills.gait as | skill |}}
|
{{#each skills.gait as | skill |}}
|
||||||
|
|
@ -47,7 +45,6 @@
|
||||||
|
|
||||||
<div class="label col-header list-header grip-skills-header">
|
<div class="label col-header list-header grip-skills-header">
|
||||||
<span>{{ rc-i18n "RipCrypt.Apps.grip-skills" }}</span>
|
<span>{{ rc-i18n "RipCrypt.Apps.grip-skills" }}</span>
|
||||||
<span class="small">{{ rc-i18n "RipCrypt.common.rank" }}</span>
|
|
||||||
</div>
|
</div>
|
||||||
<ol class="num-before skill-list odd grip-skills">
|
<ol class="num-before skill-list odd grip-skills">
|
||||||
{{#each skills.grip as | skill |}}
|
{{#each skills.grip as | skill |}}
|
||||||
|
|
@ -70,7 +67,6 @@
|
||||||
|
|
||||||
<div class="label col-header list-header glim-skills-header">
|
<div class="label col-header list-header glim-skills-header">
|
||||||
<span>{{ rc-i18n "RipCrypt.Apps.glim-skills" }}</span>
|
<span>{{ rc-i18n "RipCrypt.Apps.glim-skills" }}</span>
|
||||||
<span class="small">{{ rc-i18n "RipCrypt.common.rank" }}</span>
|
|
||||||
</div>
|
</div>
|
||||||
<ol class="num-before skill-list odd glim-skills">
|
<ol class="num-before skill-list odd glim-skills">
|
||||||
{{#each skills.glim as | skill |}}
|
{{#each skills.glim as | skill |}}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue