feat(isac): add OS protocol management

This commit is contained in:
JB
2026-07-25 05:20:25 -04:00
parent fa21913112
commit 9f712e7790
27 changed files with 555 additions and 11 deletions
+18
View File
@@ -0,0 +1,18 @@
<script lang="ts">
import { gameIcons, type GameIconName } from '$lib/game-icons';
let {
name,
decorative = false,
class: className = ''
}: { name: GameIconName; decorative?: boolean; class?: string } = $props();
const icon = $derived(gameIcons[name]);
</script>
<img
class={`game-icon ${className}`}
src={icon.src}
alt={decorative ? '' : icon.label}
aria-hidden={decorative ? 'true' : undefined}
/>
+17
View File
@@ -0,0 +1,17 @@
export const gameIcons = {
blast: { src: '/blast.png', label: 'Blast damage' },
pierce: { src: '/pierce.png', label: 'Pierce damage' },
shredding: { src: '/shredding.png', label: 'Shredding damage' },
firepower: { src: '/firepower.png', label: 'Firepower' },
toughness: { src: '/toughness.png', label: 'Toughness' },
engineering: { src: '/engineering.png', label: 'Engineering' },
bulwark: { src: '/bulwark.png', label: 'Bulwark specialization' },
combat_medic: { src: '/combat_medic.png', label: 'Combat Medic specialization' },
demolitionist: { src: '/demolitionist.png', label: 'Demolitionist specialization' },
tech_operator: { src: '/tech_operator.png', label: 'Tech Operator specialization' },
vanguard: { src: '/vanguard.png', label: 'Vanguard specialization' },
legendary: { src: '/legendary.png', label: 'Legendary difficulty' },
shd_ticket: { src: '/shd_ticket.png', label: 'SHD ticket' }
} as const;
export type GameIconName = keyof typeof gameIcons;
+1 -1
View File
@@ -27,7 +27,7 @@ export async function recordIsacAudit(input: {
}
export async function auditRecord(table: string, id: string): Promise<Record<string, unknown> | null> {
if (!['stat_attributes', 'talents', 'talent_triggers', 'brand_sets', 'gear', 'weapons', 'roles'].includes(table)) {
if (!['stat_attributes', 'talents', 'talent_triggers', 'brand_sets', 'gear', 'weapons', 'os_protocols', 'roles'].includes(table)) {
throw new Error('Unsupported audit table');
}
const database = await getDatabase();