Add deck analysis panel with mana production/consumption bars and oracle text search
Threads a new produced_mana/produces_colorless field through the whole card read path (ingest, library, filters, decks, search) so the deck view can show what colors a deck's manabase actually produces, alongside its existing color identity. Also adds a mana consumption bar (colored casting costs of nonland spells) and stacks the mana curve histogram by color. Adds an oracle-text substring filter to the library search, mirroring the existing location filter. Rearranges the deck sidebar list into two rows (name, then format chip + actions) so long names and action buttons no longer collide, and removes the drop shadows from the commander hero panel/image. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
10
src/api.ts
10
src/api.ts
@@ -12,6 +12,8 @@ export interface CardRef {
|
||||
type_line: string;
|
||||
image_uri: string; // Scryfall "normal" image URL, or "" if unavailable
|
||||
back_image_uri: string; // back face for transform/MDFC/reversible cards, else ""
|
||||
produced_mana: number; // WUBRG bitmask of mana this card can tap for
|
||||
produces_colorless: boolean; // can produce {C}
|
||||
}
|
||||
|
||||
export interface LibraryCard extends CardRef {
|
||||
@@ -47,6 +49,7 @@ export interface LibraryFilter {
|
||||
keywords?: string[];
|
||||
in_deck?: number | null;
|
||||
location?: string | null;
|
||||
oracle_text?: string | null;
|
||||
}
|
||||
|
||||
export interface Status {
|
||||
@@ -65,6 +68,12 @@ export interface LibraryStats {
|
||||
colorless_count: number;
|
||||
}
|
||||
|
||||
export interface LibraryFacets {
|
||||
types: string[];
|
||||
subtypes: string[];
|
||||
keywords: string[];
|
||||
}
|
||||
|
||||
export interface IngestStageInfo {
|
||||
id: string;
|
||||
label: string;
|
||||
@@ -115,6 +124,7 @@ export const api = {
|
||||
searchLibrary: (filter: LibraryFilter) =>
|
||||
invoke<LibraryCard[]>("search_library", { filter }),
|
||||
getLibraryStats: () => invoke<LibraryStats>("get_library_stats"),
|
||||
getLibraryFacets: () => invoke<LibraryFacets>("get_library_facets"),
|
||||
|
||||
listDecks: () => invoke<Deck[]>("list_decks"),
|
||||
createDeck: (name: string, commanderOracleId: string | null) =>
|
||||
|
||||
Reference in New Issue
Block a user