feat: refine builder skill chip flows
This commit is contained in:
@@ -16,6 +16,7 @@ export async function loadSharedBuildSummaryCatalog(database: Database) {
|
||||
talentEffects,
|
||||
talentTemplates,
|
||||
chipSets,
|
||||
abilitySkillChipLinks,
|
||||
chipTwoPiece,
|
||||
chipPrimaryOptions,
|
||||
chipPrimaryQualityValues,
|
||||
@@ -31,6 +32,8 @@ export async function loadSharedBuildSummaryCatalog(database: Database) {
|
||||
protocolTalentEffects,
|
||||
specializations,
|
||||
specializationFocuses,
|
||||
specializationAbilities,
|
||||
focusAbilities,
|
||||
specializationNodes,
|
||||
specializationRanks,
|
||||
specializationRankEffects,
|
||||
@@ -85,6 +88,14 @@ export async function loadSharedBuildSummaryCatalog(database: Database) {
|
||||
'SELECT * FROM skill_chip_sets ORDER BY name COLLATE NOCASE',
|
||||
)
|
||||
).all(),
|
||||
(
|
||||
await database.prepare(
|
||||
`SELECT link.ability_id,link.compatible_ability_id
|
||||
FROM specialization_ability_skill_chip_links link
|
||||
JOIN specialization_abilities ability ON ability.id=link.ability_id AND ability.active=1
|
||||
JOIN specialization_abilities compatible ON compatible.id=link.compatible_ability_id AND compatible.active=1`,
|
||||
)
|
||||
).all(),
|
||||
(
|
||||
await database.prepare('SELECT * FROM skill_chip_two_piece_bonuses')
|
||||
).all(),
|
||||
@@ -136,6 +147,16 @@ export async function loadSharedBuildSummaryCatalog(database: Database) {
|
||||
'SELECT * FROM specialization_focuses ORDER BY specialization_id,display_order,name COLLATE NOCASE',
|
||||
)
|
||||
).all(),
|
||||
(
|
||||
await database.prepare(
|
||||
'SELECT * FROM specialization_abilities ORDER BY specialization_id,name COLLATE NOCASE',
|
||||
)
|
||||
).all(),
|
||||
(
|
||||
await database.prepare(
|
||||
'SELECT * FROM specialization_focus_abilities ORDER BY focus_id,ability_slot',
|
||||
)
|
||||
).all(),
|
||||
(
|
||||
await database.prepare(
|
||||
'SELECT * FROM specialization_tree_nodes ORDER BY focus_id,row_number,column_number',
|
||||
@@ -194,6 +215,16 @@ export async function loadSharedBuildSummaryCatalog(database: Database) {
|
||||
);
|
||||
return {
|
||||
...set,
|
||||
compatibleAbilityIds: [
|
||||
String(set.specialization_ability_id),
|
||||
...abilitySkillChipLinks.flatMap((link) =>
|
||||
link.ability_id === set.specialization_ability_id
|
||||
? [String(link.compatible_ability_id)]
|
||||
: link.compatible_ability_id === set.specialization_ability_id
|
||||
? [String(link.ability_id)]
|
||||
: [],
|
||||
),
|
||||
],
|
||||
twoPiece:
|
||||
chipTwoPiece.find((item) => item.skill_chip_set_id === set.id) ??
|
||||
null,
|
||||
@@ -242,6 +273,18 @@ export async function loadSharedBuildSummaryCatalog(database: Database) {
|
||||
.filter((focus) => focus.specialization_id === specialization.id)
|
||||
.map((focus) => ({
|
||||
...focus,
|
||||
abilities: focusAbilities
|
||||
.filter((link) => link.focus_id === focus.id)
|
||||
.sort(
|
||||
(left, right) =>
|
||||
Number(left.ability_slot) - Number(right.ability_slot),
|
||||
)
|
||||
.map((link) =>
|
||||
specializationAbilities.find(
|
||||
(ability) => ability.id === link.ability_id,
|
||||
),
|
||||
)
|
||||
.filter(Boolean),
|
||||
nodes: specializationNodes
|
||||
.filter((node) => node.focus_id === focus.id)
|
||||
.map((node) => ({
|
||||
|
||||
Reference in New Issue
Block a user