feat(database): add public game data registries
This commit is contained in:
@@ -0,0 +1,14 @@
|
||||
export const databaseCategories = [
|
||||
{ slug: 'gear', label: 'Gear', code: 'GEAR', description: 'Equipment slots, base health and armor, tiers, Brand Sets, and talents.' },
|
||||
{ slug: 'weapons', label: 'Weapons', code: 'WPN', description: 'Weapon families, damage types, tier ranges, handling, talents, and bonuses.' },
|
||||
{ slug: 'weapon-mods', label: 'Weapon Mods', code: 'WMOD', description: 'Slot and weapon compatibility, quality rolls, secondary pools, and Mod Effects.' },
|
||||
{ slug: 'gear-mods', label: 'Gear Mods', code: 'GMOD', description: 'Quality-scaled primary rolls and selectable secondary attribute pools.' },
|
||||
{ slug: 'os-protocols', label: 'OS Protocols', code: 'OSPR', description: 'Quality, core profile, primary effect, and unique upgradeable talent.' },
|
||||
{ slug: 'talents', label: 'Talents', code: 'TLNT', description: 'Equipment and weapon talents with tiered descriptions and combat mechanics.' },
|
||||
{ slug: 'brands', label: 'Brands', code: 'BRND', description: 'Brand Set identities and their two-, three-, and four-piece bonuses.' },
|
||||
{ slug: 'skill-chips', label: 'Skill Chips', code: 'CHIP', description: 'Set bonuses, primary and secondary pools, and quality-scaled unique talents.' }
|
||||
] as const;
|
||||
|
||||
export type DatabaseCategorySlug = typeof databaseCategories[number]['slug'];
|
||||
|
||||
export const databaseCategory = (slug: string) => databaseCategories.find((category) => category.slug === slug);
|
||||
@@ -0,0 +1,31 @@
|
||||
export type DatabaseBadge = { label: string; tone?: string };
|
||||
export type DatabaseFact = { label: string; value: string };
|
||||
|
||||
export type DatabaseItem = {
|
||||
id: string;
|
||||
name: string;
|
||||
kicker: string;
|
||||
iconUrl?: string;
|
||||
gameIcon?: string;
|
||||
badges?: DatabaseBadge[];
|
||||
facts: DatabaseFact[];
|
||||
factLayout?: 'grid' | 'stack';
|
||||
actions?: Array<{ label: string; href: string }>;
|
||||
lines?: DatabaseFact[];
|
||||
iconGroups?: DatabaseIconGroup[];
|
||||
description?: string;
|
||||
secondaryDescription?: string;
|
||||
};
|
||||
|
||||
export type DatabaseRelatedItem = {
|
||||
id: string;
|
||||
name: string;
|
||||
iconUrl?: string;
|
||||
preview?: DatabaseItem;
|
||||
};
|
||||
|
||||
export type DatabaseIconGroup = {
|
||||
label: string;
|
||||
items: DatabaseRelatedItem[];
|
||||
emptyLabel?: string;
|
||||
};
|
||||
Reference in New Issue
Block a user