diff --git a/src/lib/features/database/summons/sections/SummonStatsSection.svelte b/src/lib/features/database/summons/sections/SummonStatsSection.svelte index cb9d1211..3eef8095 100644 --- a/src/lib/features/database/summons/sections/SummonStatsSection.svelte +++ b/src/lib/features/database/summons/sections/SummonStatsSection.svelte @@ -1,40 +1,150 @@ - {#if editMode} - - - - {:else} - - - {#if flb} - - {/if} - {/if} + {#if editMode} + + + {#if flb} + + {/if} + {#if ulb} + + {/if} + {#if transcendence} + + {/if} + {:else} + + + {#if flb} + + {/if} + {#if ulb} + + {/if} + {#if transcendence} + + {/if} + {/if} - {#if editMode} - - - - {:else} - - - {#if flb} - - {/if} - {/if} + {#if editMode} + + + {#if flb} + + {/if} + {#if ulb} + + {/if} + {#if transcendence} + + {/if} + {:else} + + + {#if flb} + + {/if} + {#if ulb} + + {/if} + {#if transcendence} + + {/if} + {/if} + + {#if editMode} + + {:else} + + {/if} + diff --git a/src/lib/features/database/summons/sections/SummonTaxonomySection.svelte b/src/lib/features/database/summons/sections/SummonTaxonomySection.svelte index 39316427..03543c42 100644 --- a/src/lib/features/database/summons/sections/SummonTaxonomySection.svelte +++ b/src/lib/features/database/summons/sections/SummonTaxonomySection.svelte @@ -1,21 +1,41 @@ - {#if editMode} - - {:else} - - {/if} + {#if editMode} + + + {:else} + + {#if summon.series} + + {/if} + {/if} - diff --git a/src/lib/features/database/summons/sections/SummonUncapSection.svelte b/src/lib/features/database/summons/sections/SummonUncapSection.svelte index 0722529e..dd51aef1 100644 --- a/src/lib/features/database/summons/sections/SummonUncapSection.svelte +++ b/src/lib/features/database/summons/sections/SummonUncapSection.svelte @@ -1,27 +1,123 @@ - - - + {#if summon?.uncap || editMode} + + + + {/if} - {#if editMode} - - - - {/if} + {#if editMode} + + + + + + {/if} - diff --git a/src/lib/utils/uncap.ts b/src/lib/utils/uncap.ts index 818b21c5..df8c3699 100644 --- a/src/lib/utils/uncap.ts +++ b/src/lib/utils/uncap.ts @@ -13,6 +13,10 @@ export interface CharacterUncapData { uncap: UncapData } +export interface SummonUncapData { + uncap: UncapData +} + /** * Calculate the maximum uncap level for a character based on their uncap data * @param special - Whether the character is special (limited/seasonal) @@ -40,6 +44,19 @@ export function getCharacterMaxUncapLevel(character: CharacterUncapData): number return getMaxUncapLevel(special, uncap.flb, uncap.ulb) } +/** + * Calculate the maximum uncap level from summon uncap data + * Summons: 3 base, +1 for FLB (4), +1 for ULB (5), transcendence stage tracked separately + * @param summon - Summon data with uncap information + * @returns The maximum uncap level + */ +export function getSummonMaxUncapLevel(summon: SummonUncapData): number { + const { uncap } = summon + if (uncap.ulb) return 5 + if (uncap.flb) return 4 + return 3 +} + /** * Get the default max uncap level for an item type (without transcendence) * @param type - The type of item (character, weapon, or summon) diff --git a/src/routes/(app)/database/summons/new/+page.svelte b/src/routes/(app)/database/summons/new/+page.svelte new file mode 100644 index 00000000..80003104 --- /dev/null +++ b/src/routes/(app)/database/summons/new/+page.svelte @@ -0,0 +1,396 @@ + + + + +
+ + {#snippet leftAccessory()} + + {/snippet} + {#snippet rightAccessory()} + + {/snippet} + + + {#if saveError} +
{saveError}
+ {/if} + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + {#if editData.flb} + + {/if} + {#if editData.ulb} + + {/if} + {#if editData.transcendence} + + {/if} + + + + + + + + +
+
+ +