@almadar/std 2.1.1 → 2.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/behaviors/async.d.ts +12 -7
- package/dist/behaviors/async.js +1085 -312
- package/dist/behaviors/async.js.map +1 -1
- package/dist/behaviors/data-management.d.ts +27 -13
- package/dist/behaviors/data-management.js +600 -244
- package/dist/behaviors/data-management.js.map +1 -1
- package/dist/behaviors/domain/commerce.d.ts +51 -0
- package/dist/behaviors/domain/commerce.js +1093 -0
- package/dist/behaviors/domain/commerce.js.map +1 -0
- package/dist/behaviors/domain/content.d.ts +51 -0
- package/dist/behaviors/domain/content.js +1294 -0
- package/dist/behaviors/domain/content.js.map +1 -0
- package/dist/behaviors/domain/dashboard.d.ts +45 -0
- package/dist/behaviors/domain/dashboard.js +783 -0
- package/dist/behaviors/domain/dashboard.js.map +1 -0
- package/dist/behaviors/domain/education.d.ts +41 -0
- package/dist/behaviors/domain/education.js +738 -0
- package/dist/behaviors/domain/education.js.map +1 -0
- package/dist/behaviors/domain/finance.d.ts +49 -0
- package/dist/behaviors/domain/finance.js +660 -0
- package/dist/behaviors/domain/finance.js.map +1 -0
- package/dist/behaviors/domain/game-2d-platformer.d.ts +50 -0
- package/dist/behaviors/domain/game-2d-platformer.js +810 -0
- package/dist/behaviors/domain/game-2d-platformer.js.map +1 -0
- package/dist/behaviors/domain/game-2d-puzzle.d.ts +42 -0
- package/dist/behaviors/domain/game-2d-puzzle.js +622 -0
- package/dist/behaviors/domain/game-2d-puzzle.js.map +1 -0
- package/dist/behaviors/domain/game-2d-rpg.d.ts +48 -0
- package/dist/behaviors/domain/game-2d-rpg.js +860 -0
- package/dist/behaviors/domain/game-2d-rpg.js.map +1 -0
- package/dist/behaviors/domain/game-2d-strategy.d.ts +48 -0
- package/dist/behaviors/domain/game-2d-strategy.js +692 -0
- package/dist/behaviors/domain/game-2d-strategy.js.map +1 -0
- package/dist/behaviors/domain/geospatial.d.ts +35 -0
- package/dist/behaviors/domain/geospatial.js +634 -0
- package/dist/behaviors/domain/geospatial.js.map +1 -0
- package/dist/behaviors/domain/healthcare.d.ts +36 -0
- package/dist/behaviors/domain/healthcare.js +1068 -0
- package/dist/behaviors/domain/healthcare.js.map +1 -0
- package/dist/behaviors/domain/iot.d.ts +45 -0
- package/dist/behaviors/domain/iot.js +589 -0
- package/dist/behaviors/domain/iot.js.map +1 -0
- package/dist/behaviors/domain/media.d.ts +41 -0
- package/dist/behaviors/domain/media.js +771 -0
- package/dist/behaviors/domain/media.js.map +1 -0
- package/dist/behaviors/domain/scheduling.d.ts +41 -0
- package/dist/behaviors/domain/scheduling.js +930 -0
- package/dist/behaviors/domain/scheduling.js.map +1 -0
- package/dist/behaviors/domain/simulation.d.ts +36 -0
- package/dist/behaviors/domain/simulation.js +706 -0
- package/dist/behaviors/domain/simulation.js.map +1 -0
- package/dist/behaviors/domain/social.d.ts +41 -0
- package/dist/behaviors/domain/social.js +840 -0
- package/dist/behaviors/domain/social.js.map +1 -0
- package/dist/behaviors/domain/workflow.d.ts +41 -0
- package/dist/behaviors/domain/workflow.js +879 -0
- package/dist/behaviors/domain/workflow.js.map +1 -0
- package/dist/behaviors/feedback.d.ts +10 -5
- package/dist/behaviors/feedback.js +279 -194
- package/dist/behaviors/feedback.js.map +1 -1
- package/dist/behaviors/game-core.d.ts +15 -8
- package/dist/behaviors/game-core.js +412 -80
- package/dist/behaviors/game-core.js.map +1 -1
- package/dist/behaviors/game-entity.d.ts +17 -10
- package/dist/behaviors/game-entity.js +544 -237
- package/dist/behaviors/game-entity.js.map +1 -1
- package/dist/behaviors/game-ui.d.ts +16 -8
- package/dist/behaviors/game-ui.js +451 -316
- package/dist/behaviors/game-ui.js.map +1 -1
- package/dist/behaviors/index.d.ts +18 -1
- package/dist/behaviors/index.js +18905 -2140
- package/dist/behaviors/index.js.map +1 -1
- package/dist/behaviors/infrastructure.d.ts +9 -8
- package/dist/behaviors/infrastructure.js +597 -169
- package/dist/behaviors/infrastructure.js.map +1 -1
- package/dist/behaviors/registry.d.ts +11 -11
- package/dist/behaviors/registry.js +18904 -2139
- package/dist/behaviors/registry.js.map +1 -1
- package/dist/behaviors/types.d.ts +19 -2
- package/dist/behaviors/types.js.map +1 -1
- package/dist/behaviors/ui-interaction.d.ts +20 -14
- package/dist/behaviors/ui-interaction.js +928 -518
- package/dist/behaviors/ui-interaction.js.map +1 -1
- package/dist/index.js +18906 -2141
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../behaviors/domain/game-2d-puzzle.ts"],"names":[],"mappings":"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","file":"game-2d-puzzle.js","sourcesContent":["/**\n * 2D Puzzle Game Behaviors\n *\n * Standard behaviors for 2D puzzle games: grid puzzles, timers,\n * and combo scoring chains.\n * Each behavior is a self-contained OrbitalSchema that passes orbital validate\n * with 0 errors and 0 warnings when exported as a standalone .orb file.\n *\n * UI Composition: molecule-first (atoms + molecules only, no organisms).\n * Each behavior has unique, domain-appropriate layouts composed with\n * VStack/HStack/Box wrappers around atoms and molecules.\n *\n * @packageDocumentation\n */\n\nimport type { BehaviorSchema } from '../types.js';\n\n// ── Shared Puzzle Theme ─────────────────────────────────────────────\n\nconst PUZZLE_THEME = {\n name: 'game-puzzle-yellow',\n tokens: {\n colors: {\n primary: '#ca8a04',\n 'primary-hover': '#a16207',\n 'primary-foreground': '#ffffff',\n accent: '#eab308',\n 'accent-foreground': '#000000',\n success: '#22c55e',\n warning: '#f59e0b',\n error: '#ef4444',\n },\n },\n};\n\n// ============================================================================\n// std-grid-puzzle - Grid-Based Puzzle\n// ============================================================================\n\n// ── Reusable main-view effects (grid puzzle board) ──────────────────\n\nconst gridPuzzleMainEffect = ['render-ui', 'main', { type: 'stack', direction: 'vertical', gap: 'lg', children: [\n // Header: puzzle icon + title\n { type: 'stack', direction: 'horizontal', justify: 'space-between', children: [\n { type: 'stack', direction: 'horizontal', gap: 'sm', children: [\n { type: 'icon', name: 'puzzle', size: 'lg' },\n { type: 'typography', variant: 'h2', content: 'Grid Puzzle' },\n ]},\n { type: 'badge', label: 'Playing', variant: 'success', icon: 'zap' },\n ]},\n { type: 'divider' },\n // Stats row: grid size, moves, matches\n { type: 'stack', direction: 'horizontal', gap: 'md', children: [\n { type: 'stats', label: 'Grid Size', icon: 'grid-3x3', value: '@entity.gridSize' },\n { type: 'stats', label: 'Moves', icon: 'target', value: '@entity.moves' },\n { type: 'stats', label: 'Matches', icon: 'star', value: '@entity.matchCount' },\n ]},\n { type: 'divider' },\n // Puzzle grid area\n { type: 'data-grid', entity: 'GridPuzzleData', columns: 3,\n fields: [\n { name: 'gridSize', label: 'Grid', icon: 'grid-3x3', variant: 'h4' },\n { name: 'moves', label: 'Moves', icon: 'target', variant: 'body' },\n { name: 'matchCount', label: 'Matches', icon: 'star', variant: 'badge' },\n ],\n },\n]}];\n\nconst gridPuzzleMatchedMainEffect = ['render-ui', 'main', { type: 'stack', direction: 'vertical', gap: 'lg', children: [\n // Header with match indicator\n { type: 'stack', direction: 'horizontal', justify: 'space-between', children: [\n { type: 'stack', direction: 'horizontal', gap: 'sm', children: [\n { type: 'icon', name: 'star', size: 'lg' },\n { type: 'typography', variant: 'h2', content: 'Match Found!' },\n ]},\n { type: 'badge', label: 'Matched', variant: 'warning', icon: 'zap' },\n ]},\n { type: 'divider' },\n // Stats row\n { type: 'stack', direction: 'horizontal', gap: 'md', children: [\n { type: 'stats', label: 'Moves', icon: 'target', value: '@entity.moves' },\n { type: 'stats', label: 'Matches', icon: 'star', value: '@entity.matchCount' },\n ]},\n { type: 'divider' },\n { type: 'data-grid', entity: 'GridPuzzleData', columns: 3,\n fields: [\n { name: 'gridSize', label: 'Grid', icon: 'grid-3x3', variant: 'h4' },\n { name: 'moves', label: 'Moves', icon: 'target', variant: 'body' },\n { name: 'matchCount', label: 'Matches', icon: 'star', variant: 'badge' },\n ],\n },\n]}];\n\nconst gridPuzzleCompletedMainEffect = ['render-ui', 'main', { type: 'stack', direction: 'vertical', gap: 'lg', children: [\n // Victory header\n { type: 'stack', direction: 'horizontal', justify: 'center', gap: 'sm', children: [\n { type: 'icon', name: 'trophy', size: 'xl' },\n { type: 'typography', variant: 'h1', content: 'Puzzle Complete!' },\n ]},\n { type: 'divider' },\n // Final stats\n { type: 'stack', direction: 'horizontal', gap: 'md', children: [\n { type: 'stats', label: 'Total Moves', icon: 'target', value: '@entity.moves' },\n { type: 'stats', label: 'Total Matches', icon: 'star', value: '@entity.matchCount' },\n ]},\n { type: 'divider' },\n // Restart button\n { type: 'stack', direction: 'horizontal', justify: 'center', children: [\n { type: 'button', label: 'Play Again', icon: 'refresh-cw', variant: 'primary', action: 'RESTART' },\n ]},\n]}];\n\n/**\n * std-grid-puzzle - Grid-based match puzzle mechanics.\n *\n * States: Playing -> Matched -> Completed\n * Tracks grid size, moves, match count, and completion.\n */\nexport const GRID_PUZZLE_BEHAVIOR: BehaviorSchema = {\n name: 'std-grid-puzzle',\n version: '1.0.0',\n description: 'Grid-based puzzle with match detection',\n theme: PUZZLE_THEME,\n orbitals: [\n {\n name: 'GridPuzzleOrbital',\n entity: {\n name: 'GridPuzzleData',\n persistence: 'runtime',\n fields: [\n { name: 'id', type: 'string', required: true },\n { name: 'gridSize', type: 'number', default: 8 },\n { name: 'moves', type: 'number', default: 0 },\n { name: 'matchCount', type: 'number', default: 0 },\n { name: 'isComplete', type: 'boolean', default: false },\n ],\n },\n traits: [\n {\n name: 'GridPuzzle',\n linkedEntity: 'GridPuzzleData',\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'Playing', isInitial: true },\n { name: 'Matched' },\n { name: 'Completed' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'SWAP', name: 'Swap Tiles', payloadSchema: [\n { name: 'tileA', type: 'number', required: true },\n { name: 'tileB', type: 'number', required: true },\n ] },\n { key: 'MATCH_FOUND', name: 'Match Found' },\n { key: 'SETTLE', name: 'Settle Board' },\n { key: 'WIN', name: 'Win' },\n { key: 'RESTART', name: 'Restart' },\n ],\n transitions: [\n {\n from: 'Playing',\n to: 'Playing',\n event: 'INIT',\n effects: [\n ['fetch', 'GridPuzzleData'],\n ['set', '@entity.moves', 0],\n ['set', '@entity.matchCount', 0],\n ['set', '@entity.isComplete', false],\n gridPuzzleMainEffect,\n ],\n },\n {\n from: 'Playing',\n to: 'Playing',\n event: 'SWAP',\n effects: [\n ['fetch', 'GridPuzzleData'],\n ['set', '@entity.moves', ['+', '@entity.moves', 1]],\n gridPuzzleMainEffect,\n ],\n },\n {\n from: 'Playing',\n to: 'Matched',\n event: 'MATCH_FOUND',\n effects: [\n ['fetch', 'GridPuzzleData'],\n ['set', '@entity.matchCount', ['+', '@entity.matchCount', 1]],\n gridPuzzleMatchedMainEffect,\n ],\n },\n {\n from: 'Matched',\n to: 'Playing',\n event: 'SETTLE',\n effects: [\n ['fetch', 'GridPuzzleData'],\n gridPuzzleMainEffect,\n ],\n },\n {\n from: 'Playing',\n to: 'Completed',\n event: 'WIN',\n effects: [\n ['set', '@entity.isComplete', true],\n gridPuzzleCompletedMainEffect,\n ],\n },\n {\n from: 'Matched',\n to: 'Completed',\n event: 'WIN',\n effects: [\n ['set', '@entity.isComplete', true],\n gridPuzzleCompletedMainEffect,\n ],\n },\n {\n from: 'Completed',\n to: 'Playing',\n event: 'RESTART',\n effects: [\n ['fetch', 'GridPuzzleData'],\n ['set', '@entity.moves', 0],\n ['set', '@entity.matchCount', 0],\n ['set', '@entity.isComplete', false],\n gridPuzzleMainEffect,\n ],\n },\n ],\n },\n },\n ],\n pages: [\n {\n name: 'GridPuzzlePage',\n path: '/grid-puzzle',\n isInitial: true,\n traits: [{ ref: 'GridPuzzle' }],\n },\n ],\n },\n ],\n};\n\n// ============================================================================\n// std-timer - Game Timer\n// ============================================================================\n\n// ── Reusable main-view effects (timer display) ──────────────────────\n\nconst timerIdleMainEffect = ['render-ui', 'main', { type: 'stack', direction: 'vertical', gap: 'lg', children: [\n // Header: timer icon + title\n { type: 'stack', direction: 'horizontal', justify: 'space-between', children: [\n { type: 'stack', direction: 'horizontal', gap: 'sm', children: [\n { type: 'icon', name: 'timer', size: 'lg' },\n { type: 'typography', variant: 'h2', content: 'Timer' },\n ]},\n { type: 'badge', label: 'Idle', variant: 'default', icon: 'timer' },\n ]},\n { type: 'divider' },\n // Time display\n { type: 'stack', direction: 'horizontal', gap: 'md', justify: 'center', children: [\n { type: 'stats', label: 'Remaining', icon: 'timer', value: '@entity.remaining' },\n { type: 'stats', label: 'Total', icon: 'target', value: '@entity.total' },\n ]},\n // Progress bar\n { type: 'progress-bar', value: 0, max: 100, label: 'Time', icon: 'timer' },\n]}];\n\nconst timerRunningMainEffect = ['render-ui', 'main', { type: 'stack', direction: 'vertical', gap: 'lg', children: [\n // Header: running state\n { type: 'stack', direction: 'horizontal', justify: 'space-between', children: [\n { type: 'stack', direction: 'horizontal', gap: 'sm', children: [\n { type: 'icon', name: 'timer', size: 'lg' },\n { type: 'typography', variant: 'h2', content: 'Timer' },\n ]},\n { type: 'badge', label: 'Running', variant: 'success', icon: 'zap' },\n ]},\n { type: 'divider' },\n // Time display\n { type: 'stack', direction: 'horizontal', gap: 'md', justify: 'center', children: [\n { type: 'stats', label: 'Remaining', icon: 'timer', value: '@entity.remaining' },\n { type: 'stats', label: 'Total', icon: 'target', value: '@entity.total' },\n ]},\n // Progress bar\n { type: 'progress-bar', value: '@entity.remaining', max: '@entity.total', label: 'Time Left', icon: 'timer' },\n { type: 'divider' },\n // Pause button\n { type: 'stack', direction: 'horizontal', justify: 'center', children: [\n { type: 'button', label: 'Pause', icon: 'pause-circle', variant: 'secondary', action: 'PAUSE' },\n ]},\n]}];\n\nconst timerPausedMainEffect = ['render-ui', 'main', { type: 'stack', direction: 'vertical', gap: 'lg', children: [\n // Header: paused state\n { type: 'stack', direction: 'horizontal', justify: 'space-between', children: [\n { type: 'stack', direction: 'horizontal', gap: 'sm', children: [\n { type: 'icon', name: 'timer', size: 'lg' },\n { type: 'typography', variant: 'h2', content: 'Timer' },\n ]},\n { type: 'badge', label: 'Paused', variant: 'warning', icon: 'pause-circle' },\n ]},\n { type: 'divider' },\n // Time display\n { type: 'stack', direction: 'horizontal', gap: 'md', justify: 'center', children: [\n { type: 'stats', label: 'Remaining', icon: 'timer', value: '@entity.remaining' },\n { type: 'stats', label: 'Total', icon: 'target', value: '@entity.total' },\n ]},\n // Progress bar\n { type: 'progress-bar', value: '@entity.remaining', max: '@entity.total', label: 'Paused', icon: 'pause-circle' },\n { type: 'divider' },\n // Resume button\n { type: 'stack', direction: 'horizontal', justify: 'center', children: [\n { type: 'button', label: 'Resume', icon: 'play-circle', variant: 'primary', action: 'RESUME' },\n ]},\n]}];\n\nconst timerExpiredMainEffect = ['render-ui', 'main', { type: 'stack', direction: 'vertical', gap: 'lg', children: [\n // Header: expired state\n { type: 'stack', direction: 'horizontal', justify: 'center', gap: 'sm', children: [\n { type: 'icon', name: 'timer', size: 'xl' },\n { type: 'typography', variant: 'h1', content: 'Time Expired' },\n ]},\n { type: 'divider' },\n // Final stats\n { type: 'stack', direction: 'horizontal', gap: 'md', justify: 'center', children: [\n { type: 'stats', label: 'Duration', icon: 'target', value: '@entity.total' },\n ]},\n // Progress bar at zero\n { type: 'progress-bar', value: 0, max: '@entity.total', label: 'Expired', icon: 'timer' },\n { type: 'divider' },\n // Reset button\n { type: 'stack', direction: 'horizontal', justify: 'center', children: [\n { type: 'button', label: 'Reset', icon: 'refresh-cw', variant: 'primary', action: 'RESET' },\n ]},\n]}];\n\n/**\n * std-timer - Countdown timer for timed game modes.\n *\n * States: Idle -> Running -> Paused -> Expired\n * Tick counts down remaining time each frame.\n */\nexport const TIMER_BEHAVIOR: BehaviorSchema = {\n name: 'std-timer',\n version: '1.0.0',\n description: 'Countdown timer with pause and expiry',\n theme: PUZZLE_THEME,\n orbitals: [\n {\n name: 'TimerOrbital',\n entity: {\n name: 'TimerData',\n persistence: 'runtime',\n fields: [\n { name: 'id', type: 'string', required: true },\n { name: 'remaining', type: 'number', default: 0 },\n { name: 'total', type: 'number', default: 0 },\n { name: 'isRunning', type: 'boolean', default: false },\n { name: 'isPaused', type: 'boolean', default: false },\n ],\n },\n traits: [\n {\n name: 'Timer',\n linkedEntity: 'TimerData',\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'Idle', isInitial: true },\n { name: 'Running' },\n { name: 'Paused' },\n { name: 'Expired' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'START', name: 'Start Timer', payloadSchema: [\n { name: 'duration', type: 'number', required: true },\n ] },\n { key: 'PAUSE', name: 'Pause Timer' },\n { key: 'RESUME', name: 'Resume Timer' },\n { key: 'EXPIRE', name: 'Timer Expired' },\n { key: 'RESET', name: 'Reset Timer' },\n ],\n transitions: [\n {\n from: 'Idle',\n to: 'Idle',\n event: 'INIT',\n effects: [\n ['set', '@entity.remaining', 0],\n ['set', '@entity.total', 0],\n ['set', '@entity.isRunning', false],\n ['set', '@entity.isPaused', false],\n timerIdleMainEffect,\n ],\n },\n {\n from: 'Idle',\n to: 'Running',\n event: 'START',\n effects: [\n ['set', '@entity.total', '@payload.duration'],\n ['set', '@entity.remaining', '@payload.duration'],\n ['set', '@entity.isRunning', true],\n ['set', '@entity.isPaused', false],\n timerRunningMainEffect,\n ],\n },\n {\n from: 'Running',\n to: 'Paused',\n event: 'PAUSE',\n effects: [\n ['set', '@entity.isRunning', false],\n ['set', '@entity.isPaused', true],\n timerPausedMainEffect,\n ],\n },\n {\n from: 'Paused',\n to: 'Running',\n event: 'RESUME',\n effects: [\n ['set', '@entity.isRunning', true],\n ['set', '@entity.isPaused', false],\n timerRunningMainEffect,\n ],\n },\n {\n from: 'Running',\n to: 'Expired',\n event: 'EXPIRE',\n effects: [\n ['set', '@entity.remaining', 0],\n ['set', '@entity.isRunning', false],\n timerExpiredMainEffect,\n ],\n },\n {\n from: 'Expired',\n to: 'Idle',\n event: 'RESET',\n effects: [\n ['set', '@entity.remaining', 0],\n ['set', '@entity.total', 0],\n ['set', '@entity.isRunning', false],\n ['set', '@entity.isPaused', false],\n timerIdleMainEffect,\n ],\n },\n ],\n },\n ticks: [\n {\n name: 'Countdown',\n interval: 'frame',\n guard: ['and', ['=', '@state', 'Running'], ['>', '@entity.remaining', 0]],\n effects: [\n ['set', '@entity.remaining', ['-', '@entity.remaining', 1]],\n ],\n },\n ],\n },\n ],\n pages: [\n {\n name: 'TimerPage',\n path: '/timer',\n isInitial: true,\n traits: [{ ref: 'Timer' }],\n },\n ],\n },\n ],\n};\n\n// ============================================================================\n// std-scoring-chain - Combo Scoring\n// ============================================================================\n\n// ── Reusable main-view effects (scoring display) ────────────────────\n\nconst scoringIdleMainEffect = ['render-ui', 'main', { type: 'stack', direction: 'vertical', gap: 'lg', children: [\n // Header: scoring icon + title\n { type: 'stack', direction: 'horizontal', justify: 'space-between', children: [\n { type: 'stack', direction: 'horizontal', gap: 'sm', children: [\n { type: 'icon', name: 'trophy', size: 'lg' },\n { type: 'typography', variant: 'h2', content: 'Combo Scoring' },\n ]},\n { type: 'badge', label: 'Ready', variant: 'default', icon: 'target' },\n ]},\n { type: 'divider' },\n // Score stats\n { type: 'stack', direction: 'horizontal', gap: 'md', children: [\n { type: 'stats', label: 'Score', icon: 'trophy', value: '@entity.totalScore' },\n { type: 'stats', label: 'Chain', icon: 'zap', value: '@entity.chainLength' },\n { type: 'stats', label: 'Multiplier', icon: 'star', value: '@entity.multiplier' },\n ]},\n // Multiplier meter\n { type: 'meter', value: '@entity.multiplier', max: 10, label: 'Combo Multiplier', icon: 'zap' },\n]}];\n\nconst scoringChainingMainEffect = ['render-ui', 'main', { type: 'stack', direction: 'vertical', gap: 'lg', children: [\n // Header: chaining state\n { type: 'stack', direction: 'horizontal', justify: 'space-between', children: [\n { type: 'stack', direction: 'horizontal', gap: 'sm', children: [\n { type: 'icon', name: 'zap', size: 'lg' },\n { type: 'typography', variant: 'h2', content: 'Combo Active!' },\n ]},\n { type: 'badge', label: 'Chaining', variant: 'success', icon: 'zap' },\n ]},\n { type: 'divider' },\n // Score stats\n { type: 'stack', direction: 'horizontal', gap: 'md', children: [\n { type: 'stats', label: 'Score', icon: 'trophy', value: '@entity.totalScore' },\n { type: 'stats', label: 'Chain', icon: 'zap', value: '@entity.chainLength' },\n { type: 'stats', label: 'Multiplier', icon: 'star', value: '@entity.multiplier' },\n ]},\n // Multiplier meter (growing)\n { type: 'meter', value: '@entity.multiplier', max: 10, label: 'Combo Multiplier', icon: 'zap' },\n { type: 'divider' },\n // Chain progress\n { type: 'progress-bar', value: '@entity.chainLength', max: 20, label: 'Chain Length', icon: 'zap' },\n]}];\n\nconst scoringBreakingMainEffect = ['render-ui', 'main', { type: 'stack', direction: 'vertical', gap: 'lg', children: [\n // Header: chain broken\n { type: 'stack', direction: 'horizontal', justify: 'space-between', children: [\n { type: 'stack', direction: 'horizontal', gap: 'sm', children: [\n { type: 'icon', name: 'target', size: 'lg' },\n { type: 'typography', variant: 'h2', content: 'Chain Broken' },\n ]},\n { type: 'badge', label: 'Broken', variant: 'error', icon: 'target' },\n ]},\n { type: 'divider' },\n // Final score\n { type: 'stack', direction: 'horizontal', gap: 'md', justify: 'center', children: [\n { type: 'stats', label: 'Total Score', icon: 'trophy', value: '@entity.totalScore' },\n ]},\n // Meter reset\n { type: 'meter', value: 1, max: 10, label: 'Multiplier Reset', icon: 'target' },\n { type: 'divider' },\n // Resume button\n { type: 'stack', direction: 'horizontal', justify: 'center', children: [\n { type: 'button', label: 'Continue', icon: 'refresh-cw', variant: 'primary', action: 'RESUME' },\n ]},\n]}];\n\n/**\n * std-scoring-chain - Combo-based scoring with multiplier.\n *\n * States: Idle -> Chaining -> Breaking\n * Tracks chain length, multiplier, and total score.\n */\nexport const SCORING_CHAIN_BEHAVIOR: BehaviorSchema = {\n name: 'std-scoring-chain',\n version: '1.0.0',\n description: 'Combo scoring with chain multiplier',\n theme: PUZZLE_THEME,\n orbitals: [\n {\n name: 'ScoringChainOrbital',\n entity: {\n name: 'ScoringChainData',\n persistence: 'runtime',\n fields: [\n { name: 'id', type: 'string', required: true },\n { name: 'chainLength', type: 'number', default: 0 },\n { name: 'multiplier', type: 'number', default: 1 },\n { name: 'totalScore', type: 'number', default: 0 },\n ],\n },\n traits: [\n {\n name: 'ScoringChain',\n linkedEntity: 'ScoringChainData',\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'Idle', isInitial: true },\n { name: 'Chaining' },\n { name: 'Breaking' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'HIT', name: 'Chain Hit', payloadSchema: [\n { name: 'points', type: 'number', required: true },\n ] },\n { key: 'BREAK', name: 'Break Chain' },\n { key: 'RESET_SCORE', name: 'Reset Score' },\n { key: 'RESUME', name: 'Resume' },\n ],\n transitions: [\n {\n from: 'Idle',\n to: 'Idle',\n event: 'INIT',\n effects: [\n ['set', '@entity.chainLength', 0],\n ['set', '@entity.multiplier', 1],\n ['set', '@entity.totalScore', 0],\n scoringIdleMainEffect,\n ],\n },\n {\n from: 'Idle',\n to: 'Chaining',\n event: 'HIT',\n effects: [\n ['set', '@entity.chainLength', 1],\n ['set', '@entity.multiplier', 1],\n ['set', '@entity.totalScore', ['+', '@entity.totalScore', '@payload.points']],\n scoringChainingMainEffect,\n ],\n },\n {\n from: 'Chaining',\n to: 'Chaining',\n event: 'HIT',\n effects: [\n ['set', '@entity.chainLength', ['+', '@entity.chainLength', 1]],\n ['set', '@entity.multiplier', ['+', '@entity.multiplier', 1]],\n ['set', '@entity.totalScore', ['+', '@entity.totalScore', ['*', '@payload.points', '@entity.multiplier']]],\n scoringChainingMainEffect,\n ],\n },\n {\n from: 'Chaining',\n to: 'Breaking',\n event: 'BREAK',\n effects: [\n ['set', '@entity.chainLength', 0],\n ['set', '@entity.multiplier', 1],\n scoringBreakingMainEffect,\n ],\n },\n {\n from: 'Breaking',\n to: 'Idle',\n event: 'RESUME',\n effects: [\n scoringIdleMainEffect,\n ],\n },\n {\n from: 'Idle',\n to: 'Idle',\n event: 'RESET_SCORE',\n effects: [\n ['set', '@entity.chainLength', 0],\n ['set', '@entity.multiplier', 1],\n ['set', '@entity.totalScore', 0],\n scoringIdleMainEffect,\n ],\n },\n ],\n },\n },\n ],\n pages: [\n {\n name: 'ScoringChainPage',\n path: '/scoring-chain',\n isInitial: true,\n traits: [{ ref: 'ScoringChain' }],\n },\n ],\n },\n ],\n};\n\n// ============================================================================\n// Export All Behaviors\n// ============================================================================\n\nexport const GAME_2D_PUZZLE_BEHAVIORS: BehaviorSchema[] = [\n GRID_PUZZLE_BEHAVIOR,\n TIMER_BEHAVIOR,\n SCORING_CHAIN_BEHAVIOR,\n];\n"]}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { BehaviorSchema } from '../types.js';
|
|
2
|
+
import '@almadar/core/types';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* 2D RPG Game Behaviors
|
|
6
|
+
*
|
|
7
|
+
* Standard behaviors for 2D RPG games: overworld navigation, quests,
|
|
8
|
+
* NPC interaction, and crafting.
|
|
9
|
+
* Each behavior is a self-contained OrbitalSchema that passes orbital validate
|
|
10
|
+
* with 0 errors and 0 warnings when exported as a standalone .orb file.
|
|
11
|
+
*
|
|
12
|
+
* UI Composition: game-first patterns (isometric-canvas, game-hud, dialogue-box)
|
|
13
|
+
* replacing stat-card dashboard layouts with proper game components.
|
|
14
|
+
*
|
|
15
|
+
* @packageDocumentation
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* std-overworld - Zone-based world map navigation.
|
|
20
|
+
*
|
|
21
|
+
* States: Exploring -> Traveling -> Event
|
|
22
|
+
* Tracks current zone and player position on the overworld.
|
|
23
|
+
*/
|
|
24
|
+
declare const OVERWORLD_BEHAVIOR: BehaviorSchema;
|
|
25
|
+
/**
|
|
26
|
+
* std-quest - Quest lifecycle management.
|
|
27
|
+
*
|
|
28
|
+
* States: Available -> Active -> Completed / Failed
|
|
29
|
+
* CRUD-like quest tracking with status progression.
|
|
30
|
+
*/
|
|
31
|
+
declare const QUEST_BEHAVIOR: BehaviorSchema;
|
|
32
|
+
/**
|
|
33
|
+
* std-npc - NPC interaction flow.
|
|
34
|
+
*
|
|
35
|
+
* States: Idle -> Talking -> Trading
|
|
36
|
+
* Simple conversation and trade flow with NPCs.
|
|
37
|
+
*/
|
|
38
|
+
declare const NPC_BEHAVIOR: BehaviorSchema;
|
|
39
|
+
/**
|
|
40
|
+
* std-crafting - Recipe-based item crafting.
|
|
41
|
+
*
|
|
42
|
+
* States: Browsing -> Crafting -> Done
|
|
43
|
+
* Recipe selection and crafting execution flow.
|
|
44
|
+
*/
|
|
45
|
+
declare const CRAFTING_BEHAVIOR: BehaviorSchema;
|
|
46
|
+
declare const GAME_2D_RPG_BEHAVIORS: BehaviorSchema[];
|
|
47
|
+
|
|
48
|
+
export { CRAFTING_BEHAVIOR, GAME_2D_RPG_BEHAVIORS, NPC_BEHAVIOR, OVERWORLD_BEHAVIOR, QUEST_BEHAVIOR };
|