diff --git a/src/lib/features/database/weapons/sections/WeaponGachaSection.svelte b/src/lib/features/database/weapons/sections/WeaponGachaSection.svelte
new file mode 100644
index 00000000..0680f03b
--- /dev/null
+++ b/src/lib/features/database/weapons/sections/WeaponGachaSection.svelte
@@ -0,0 +1,93 @@
+
+
+
+
+{#if hasGachaData}
+
+ {#if editMode}
+
+
+
+
+
+
+ {:else}
+
+ {#if weapon.recruits}
+
+ {/if}
+ {/if}
+
+{/if}
diff --git a/src/lib/features/database/weapons/sections/WeaponTaxonomySection.svelte b/src/lib/features/database/weapons/sections/WeaponTaxonomySection.svelte
index 0c004397..6e3130bb 100644
--- a/src/lib/features/database/weapons/sections/WeaponTaxonomySection.svelte
+++ b/src/lib/features/database/weapons/sections/WeaponTaxonomySection.svelte
@@ -7,14 +7,12 @@
import DetailsContainer from '$lib/components/ui/DetailsContainer.svelte'
import DetailItem from '$lib/components/ui/DetailItem.svelte'
import SuggestionDetailItem from '$lib/components/ui/SuggestionDetailItem.svelte'
- import MultiSelect from '$lib/components/ui/MultiSelect.svelte'
import ElementLabel from '$lib/components/labels/ElementLabel.svelte'
import ProficiencyLabel from '$lib/components/labels/ProficiencyLabel.svelte'
import { getElementLabel, getElementOptions } from '$lib/utils/element'
import { getProficiencyOptions } from '$lib/utils/proficiency'
import { getSeriesDisplayName } from '$lib/utils/weaponSeries'
- import { isWeaponSeriesRef, type WeaponSeriesRef } from '$lib/types/api/weaponSeries'
- import { PROMOTION_NAMES, getPromotionNames } from '$lib/types/enums'
+ import type { WeaponSeriesRef } from '$lib/types/api/weaponSeries'
type ElementName = 'wind' | 'fire' | 'water' | 'earth' | 'dark' | 'light'
@@ -58,12 +56,6 @@
]
})
- // Promotion options for multiselect
- const promotionOptions = Object.entries(PROMOTION_NAMES).map(([value, label]) => ({
- value: Number(value),
- label
- }))
-
// Get element name for checkbox theming
const elementName = $derived.by((): ElementName | undefined => {
const el = editMode ? editData.element : weapon?.element
@@ -76,12 +68,6 @@
if (!series) return '—'
return getSeriesDisplayName(series, 'en') || '—'
}
-
- // Format promotions for display
- function formatPromotionsDisplay(promotions: number[]): string {
- if (!promotions || promotions.length === 0) return '—'
- return getPromotionNames(promotions).join(', ')
- }
@@ -139,15 +125,6 @@
type="checkbox"
element={elementName}
/>
-
-
-
{:else}
@@ -170,10 +147,5 @@
value={weapon.limit ? 'Yes' : 'No'}
/>
-
{/if}
diff --git a/src/routes/(app)/database/weapons/[id]/edit/+page.svelte b/src/routes/(app)/database/weapons/[id]/edit/+page.svelte
index 847d9fa5..9dc8688c 100644
--- a/src/routes/(app)/database/weapons/[id]/edit/+page.svelte
+++ b/src/routes/(app)/database/weapons/[id]/edit/+page.svelte
@@ -16,6 +16,7 @@
import WeaponUncapSection from '$lib/features/database/weapons/sections/WeaponUncapSection.svelte'
import WeaponTaxonomySection from '$lib/features/database/weapons/sections/WeaponTaxonomySection.svelte'
import WeaponStatsSection from '$lib/features/database/weapons/sections/WeaponStatsSection.svelte'
+ import WeaponGachaSection from '$lib/features/database/weapons/sections/WeaponGachaSection.svelte'
import DetailsContainer from '$lib/components/ui/DetailsContainer.svelte'
import DetailItem from '$lib/components/ui/DetailItem.svelte'
import TagInput from '$lib/components/ui/TagInput.svelte'
@@ -218,6 +219,7 @@
+
@@ -299,17 +301,6 @@
width="480px"
/>
-
-
-
-
{:else}