/** Простые SVG-иконки ловушек (MVP). */ import type { SceneTrapStatus, SceneTrapType } from '../../../shared/types'; const TYPE_COLOR: Record = { mimic: '#c4783a', explosion: '#e85d3a', poison: '#6bcb5a', pit: '#5a5a6e', arrow: '#d4a017', laser: '#3ad0e8', freeform: '#a78bfa', }; export function trapAccentColor(type: SceneTrapType, status: SceneTrapStatus = 'inactive'): string { if (status === 'disarmed') return '#6b7280'; if (status === 'active') return TYPE_COLOR[type]; return TYPE_COLOR[type]; } export function TrapGlyph({ type, status = 'inactive', size = 28, }: { type: SceneTrapType; status?: SceneTrapStatus; size?: number; }) { const stroke = trapAccentColor(type, status); const opacity = status === 'disarmed' ? 0.55 : 1; const common = { width: size, height: size, viewBox: '0 0 24 24', fill: 'none', stroke, strokeWidth: 1.8, strokeLinecap: 'round' as const, strokeLinejoin: 'round' as const, opacity, 'aria-hidden': true as const, }; switch (type) { case 'mimic': return ( ); case 'explosion': return ( ); case 'poison': return ( ); case 'pit': return ( ); case 'arrow': return ( ); case 'laser': return ( ); case 'freeform': return ( ); default: { const _x: never = type; return {String(_x)}; } } }