fix skill lookup for slots 3-4 by matching skill group
This commit is contained in:
parent
3f13f16998
commit
7c93cf8aab
2 changed files with 22 additions and 12 deletions
|
|
@ -9,6 +9,7 @@
|
|||
*/
|
||||
import {
|
||||
calculateSkillDisplayValue,
|
||||
getSkillGroupForSlot,
|
||||
type ArtifactSkillInstance
|
||||
} from '$lib/types/api/artifact'
|
||||
import { createQuery } from '@tanstack/svelte-query'
|
||||
|
|
@ -18,19 +19,24 @@
|
|||
|
||||
interface Props {
|
||||
skill: ArtifactSkillInstance
|
||||
/** Skill slot number (1-4) for skill group lookup */
|
||||
skillSlot: number
|
||||
/** Element for max value highlighting */
|
||||
element?: ElementType
|
||||
}
|
||||
|
||||
const { skill, element }: Props = $props()
|
||||
const { skill, skillSlot, element }: Props = $props()
|
||||
|
||||
// Query skills to get the full skill definition
|
||||
const skillsQuery = createQuery(() => artifactQueries.skills())
|
||||
|
||||
// Find the skill definition
|
||||
const skillDef = $derived(
|
||||
skillsQuery.data?.find((s) => s.modifier === skill.modifier)
|
||||
)
|
||||
// Find the skill definition (must match both modifier and skill group)
|
||||
const skillDef = $derived.by(() => {
|
||||
const group = getSkillGroupForSlot(skillSlot)
|
||||
return skillsQuery.data?.find(
|
||||
(s) => s.modifier === skill.modifier && s.skillGroup === group
|
||||
)
|
||||
})
|
||||
|
||||
const suffix = $derived(skillDef?.suffix?.en ?? '')
|
||||
const isNegative = $derived(skillDef?.polarity === 'negative')
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@
|
|||
*/
|
||||
import { onMount } from 'svelte'
|
||||
import type { CollectionArtifact, ArtifactSkillInstance } from '$lib/types/api/artifact'
|
||||
import { isQuirkArtifact } from '$lib/types/api/artifact'
|
||||
import { isQuirkArtifact, getSkillGroupForSlot } from '$lib/types/api/artifact'
|
||||
import { createQuery } from '@tanstack/svelte-query'
|
||||
import { artifactQueries } from '$lib/api/queries/artifact.queries'
|
||||
import { useDeleteCollectionArtifact } from '$lib/api/mutations/artifact.mutations'
|
||||
|
|
@ -59,9 +59,12 @@
|
|||
// Query skill definitions to get names
|
||||
const skillsQuery = createQuery(() => artifactQueries.skills())
|
||||
|
||||
// Get skill name by modifier
|
||||
function getSkillName(skill: ArtifactSkillInstance): string {
|
||||
const skillDef = skillsQuery.data?.find((s) => s.modifier === skill.modifier)
|
||||
// Get skill name by modifier and slot (different slots use different skill groups)
|
||||
function getSkillName(skill: ArtifactSkillInstance, slot: number): string {
|
||||
const group = getSkillGroupForSlot(slot)
|
||||
const skillDef = skillsQuery.data?.find(
|
||||
(s) => s.modifier === skill.modifier && s.skillGroup === group
|
||||
)
|
||||
return skillDef?.name?.en ?? 'Unknown Skill'
|
||||
}
|
||||
|
||||
|
|
@ -149,10 +152,11 @@
|
|||
|
||||
{#if hasSkills}
|
||||
<DetailsSection title="Skills">
|
||||
{#each skills as skill}
|
||||
{#each skills as skill, index}
|
||||
{@const skillSlot = index + 1}
|
||||
{#if skill}
|
||||
<DetailRow label={getSkillName(skill)}>
|
||||
<ArtifactSkillDisplay {skill} element={elementType} />
|
||||
<DetailRow label={getSkillName(skill, skillSlot)}>
|
||||
<ArtifactSkillDisplay {skill} {skillSlot} element={elementType} />
|
||||
</DetailRow>
|
||||
{/if}
|
||||
{/each}
|
||||
|
|
|
|||
Loading…
Reference in a new issue