@almadar/std 1.0.0 → 1.0.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.
Files changed (40) hide show
  1. package/dist/behaviors/async.d.ts +8 -8
  2. package/dist/behaviors/async.js +548 -500
  3. package/dist/behaviors/async.js.map +1 -1
  4. package/dist/behaviors/data-management.d.ts +11 -19
  5. package/dist/behaviors/data-management.js +468 -449
  6. package/dist/behaviors/data-management.js.map +1 -1
  7. package/dist/behaviors/feedback.d.ts +6 -6
  8. package/dist/behaviors/feedback.js +312 -278
  9. package/dist/behaviors/feedback.js.map +1 -1
  10. package/dist/behaviors/game-core.d.ts +11 -12
  11. package/dist/behaviors/game-core.js +357 -406
  12. package/dist/behaviors/game-core.js.map +1 -1
  13. package/dist/behaviors/game-entity.d.ts +13 -14
  14. package/dist/behaviors/game-entity.js +622 -592
  15. package/dist/behaviors/game-entity.js.map +1 -1
  16. package/dist/behaviors/game-ui.d.ts +9 -10
  17. package/dist/behaviors/game-ui.js +522 -459
  18. package/dist/behaviors/game-ui.js.map +1 -1
  19. package/dist/behaviors/index.d.ts +3 -3
  20. package/dist/behaviors/index.js +3876 -3843
  21. package/dist/behaviors/index.js.map +1 -1
  22. package/dist/behaviors/registry.d.ts +14 -24
  23. package/dist/behaviors/registry.js +3868 -3803
  24. package/dist/behaviors/registry.js.map +1 -1
  25. package/dist/behaviors/types.d.ts +14 -138
  26. package/dist/behaviors/types.js +10 -47
  27. package/dist/behaviors/types.js.map +1 -1
  28. package/dist/behaviors/ui-interaction.d.ts +13 -20
  29. package/dist/behaviors/ui-interaction.js +961 -1043
  30. package/dist/behaviors/ui-interaction.js.map +1 -1
  31. package/dist/index.d.ts +44 -11
  32. package/dist/index.js +3913 -3870
  33. package/dist/index.js.map +1 -1
  34. package/dist/modules/index.js +11 -0
  35. package/dist/modules/index.js.map +1 -1
  36. package/dist/modules/str.js +11 -0
  37. package/dist/modules/str.js.map +1 -1
  38. package/dist/registry.js +11 -0
  39. package/dist/registry.js.map +1 -1
  40. package/package.json +3 -2
@@ -1 +1 @@
1
- {"version":3,"sources":["../../behaviors/game-ui.ts"],"names":[],"mappings":"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","file":"game-ui.js","sourcesContent":["/**\n * Game UI Behaviors\n *\n * Game interface behaviors: flow, dialogue, level progression.\n * These use the Trait architecture with stateMachine and ticks.\n *\n * @packageDocumentation\n */\n\nimport type { StandardBehavior } from './types.js';\n\n// ============================================================================\n// std/GameFlow - Game State Machine\n// ============================================================================\n\n/**\n * std/GameFlow - Master game state management.\n *\n * States: Menu → Playing → Paused → GameOver/Victory\n */\nexport const GAME_FLOW_BEHAVIOR: StandardBehavior = {\n name: 'std/GameFlow',\n category: 'game-ui',\n description: 'Master game flow: menu, play, pause, game over, victory',\n suggestedFor: [\n 'All games',\n 'Game state management',\n 'Menu systems',\n 'Win/lose conditions',\n ],\n\n dataEntities: [\n {\n name: 'GameFlowState',\n runtime: true,\n singleton: true,\n fields: [\n { name: 'playTime', type: 'number', default: 0 },\n { name: 'attempts', type: 'number', default: 0 },\n { name: 'lastState', type: 'string', default: 'Menu' },\n ],\n },\n ],\n\n stateMachine: {\n initial: 'Menu',\n states: [\n { name: 'Menu', isInitial: true },\n { name: 'Playing' },\n { name: 'Paused' },\n { name: 'GameOver' },\n { name: 'Victory' },\n ],\n events: [\n { key: 'START' },\n { key: 'PAUSE' },\n { key: 'RESUME' },\n { key: 'GAME_OVER' },\n { key: 'VICTORY' },\n { key: 'RESTART' },\n { key: 'QUIT' },\n ],\n transitions: [\n {\n from: '*',\n to: 'Menu',\n event: 'QUIT',\n effects: [\n ['emit', 'STOP'],\n ['render', 'screen', 'game-menu', {\n title: '@config.title',\n onStart: 'START',\n }],\n ],\n },\n {\n from: 'Menu',\n to: 'Playing',\n event: 'START',\n effects: [\n ['set', '@entity.attempts', ['+', '@entity.attempts', 1]],\n ['set', '@entity.playTime', 0],\n ['emit', 'GAME_LOOP_START'],\n ['render', 'screen', null],\n ['render', 'canvas', 'game-canvas', {}],\n ],\n },\n {\n from: 'Playing',\n to: 'Paused',\n event: 'PAUSE',\n guard: '@config.allowPause',\n effects: [\n ['set', '@entity.lastState', 'Playing'],\n ['emit', 'GAME_LOOP_PAUSE'],\n ['render', 'overlay', 'game-pause-overlay', {\n onResume: 'RESUME',\n onQuit: 'QUIT',\n playTime: '@entity.playTime',\n }],\n ],\n },\n {\n from: 'Paused',\n to: 'Playing',\n event: 'RESUME',\n effects: [\n ['emit', 'GAME_LOOP_RESUME'],\n ['render', 'overlay', null],\n ],\n },\n {\n from: 'Playing',\n to: 'GameOver',\n event: 'GAME_OVER',\n effects: [\n ['emit', 'STOP'],\n ['render', 'overlay', 'game-over-screen', {\n victory: false,\n playTime: '@entity.playTime',\n attempts: '@entity.attempts',\n onRestart: 'RESTART',\n onQuit: 'QUIT',\n }],\n ],\n },\n {\n from: 'Playing',\n to: 'Victory',\n event: 'VICTORY',\n effects: [\n ['emit', 'STOP'],\n ['render', 'overlay', 'game-over-screen', {\n victory: true,\n playTime: '@entity.playTime',\n attempts: '@entity.attempts',\n onRestart: 'RESTART',\n onQuit: 'QUIT',\n }],\n ],\n },\n {\n from: ['GameOver', 'Victory'],\n to: 'Playing',\n event: 'RESTART',\n effects: [\n ['render', 'overlay', null],\n ['emit', 'GAME_RESET'],\n ['emit', 'START'],\n ],\n },\n ],\n },\n\n configSchema: {\n required: [],\n optional: [\n { name: 'title', type: 'string', description: 'Game title', default: 'Game' },\n { name: 'showMenu', type: 'boolean', description: 'Show main menu', default: true },\n { name: 'allowPause', type: 'boolean', description: 'Allow pausing', default: true },\n ],\n },\n};\n\n// ============================================================================\n// std/Dialogue - NPC Conversation System\n// ============================================================================\n\n/**\n * std/Dialogue - Manages NPC dialogue and branching conversations.\n */\nexport const DIALOGUE_BEHAVIOR: StandardBehavior = {\n name: 'std/Dialogue',\n category: 'game-ui',\n description: 'NPC dialogue system with branching conversations',\n suggestedFor: [\n 'RPGs',\n 'Adventure games',\n 'Story-driven games',\n 'NPC interactions',\n ],\n\n dataEntities: [\n {\n name: 'DialogueState',\n runtime: true,\n fields: [\n { name: 'dialogueTree', type: 'array', default: [] },\n { name: 'currentNode', type: 'number', default: 0 },\n { name: 'displayedText', type: 'string', default: '' },\n { name: 'isTyping', type: 'boolean', default: false },\n { name: 'speaker', type: 'string', default: '' },\n { name: 'typeIndex', type: 'number', default: 0 },\n { name: 'lastTypeTime', type: 'number', default: 0 },\n ],\n },\n ],\n\n stateMachine: {\n initial: 'Hidden',\n states: [\n { name: 'Hidden', isInitial: true },\n { name: 'Typing' },\n { name: 'Showing' },\n { name: 'Choice' },\n ],\n events: [\n { key: 'SHOW' },\n { key: 'NEXT' },\n { key: 'SELECT_CHOICE' },\n { key: 'SKIP' },\n { key: 'CLOSE' },\n { key: 'TYPE_CHAR' },\n { key: 'TYPE_COMPLETE' },\n ],\n transitions: [\n {\n from: 'Hidden',\n to: 'Typing',\n event: 'SHOW',\n effects: [\n ['set', '@entity.dialogueTree', '@payload.dialogue'],\n ['set', '@entity.currentNode', 0],\n ['set', '@entity.isTyping', true],\n ['set', '@entity.displayedText', ''],\n ['set', '@entity.typeIndex', 0],\n ['set', '@entity.lastTypeTime', '@now'],\n ['emit', 'GAME_PAUSE'],\n ['render', 'overlay.dialogue', 'dialogue-box', {\n speaker: '@entity.speaker',\n text: '@entity.displayedText',\n isTyping: '@entity.isTyping',\n onNext: 'NEXT',\n onSkip: 'SKIP',\n }],\n ],\n },\n {\n from: 'Typing',\n event: 'TYPE_CHAR',\n effects: [\n ['let', [['currentDialogue', ['array/nth', '@entity.dialogueTree', '@entity.currentNode']]],\n ['do',\n ['set', '@entity.typeIndex', ['+', '@entity.typeIndex', 1]],\n ['set', '@entity.displayedText', ['str/slice', '@currentDialogue.text', 0, '@entity.typeIndex']],\n ['set', '@entity.lastTypeTime', '@now']]],\n ],\n },\n {\n from: 'Typing',\n to: 'Showing',\n event: 'TYPE_COMPLETE',\n effects: [\n ['set', '@entity.isTyping', false],\n ],\n },\n {\n from: 'Typing',\n to: 'Showing',\n event: 'SKIP',\n effects: [\n ['let', [['currentDialogue', ['array/nth', '@entity.dialogueTree', '@entity.currentNode']]],\n ['do',\n ['set', '@entity.isTyping', false],\n ['set', '@entity.displayedText', '@currentDialogue.text']]],\n ],\n },\n {\n from: 'Showing',\n event: 'NEXT',\n guard: ['not', ['object/get', ['array/nth', '@entity.dialogueTree', '@entity.currentNode'], 'choices']],\n effects: [\n ['if', ['>=', '@entity.currentNode', ['-', ['array/len', '@entity.dialogueTree'], 1]],\n ['emit', 'CLOSE'],\n ['do',\n ['set', '@entity.currentNode', ['+', '@entity.currentNode', 1]],\n ['set', '@entity.isTyping', true],\n ['set', '@entity.displayedText', ''],\n ['set', '@entity.typeIndex', 0]]],\n ],\n },\n {\n from: 'Showing',\n to: 'Choice',\n event: 'NEXT',\n guard: ['object/get', ['array/nth', '@entity.dialogueTree', '@entity.currentNode'], 'choices'],\n effects: [\n ['let', [['currentDialogue', ['array/nth', '@entity.dialogueTree', '@entity.currentNode']]],\n ['render', 'overlay.dialogue', 'dialogue-box', {\n choices: '@currentDialogue.choices',\n onSelect: 'SELECT_CHOICE',\n }]],\n ],\n },\n {\n from: 'Choice',\n to: 'Typing',\n event: 'SELECT_CHOICE',\n effects: [\n ['let', [['currentDialogue', ['array/nth', '@entity.dialogueTree', '@entity.currentNode']]],\n ['let', [['choice', ['array/nth', '@currentDialogue.choices', '@payload.index']]],\n ['do',\n ['if', '@choice.nextNode',\n ['set', '@entity.currentNode', '@choice.nextNode'],\n ['set', '@entity.currentNode', ['+', '@entity.currentNode', 1]]],\n ['if', '@choice.effect',\n ['emit', '@choice.effect']]]]],\n ['set', '@entity.isTyping', true],\n ['set', '@entity.displayedText', ''],\n ['set', '@entity.typeIndex', 0],\n ],\n },\n {\n from: ['Typing', 'Showing', 'Choice'],\n to: 'Hidden',\n event: 'CLOSE',\n effects: [\n ['set', '@entity.dialogueTree', []],\n ['set', '@entity.currentNode', 0],\n ['emit', 'GAME_RESUME'],\n ['render', 'overlay.dialogue', null],\n ],\n },\n ],\n },\n\n ticks: [\n {\n name: 'TypewriterEffect',\n interval: 'frame',\n guard: ['and', '@entity.isTyping', ['>', ['-', '@now', '@entity.lastTypeTime'], ['/', 1000, '@config.typingSpeed']]],\n effects: [\n ['let', [['currentDialogue', ['array/nth', '@entity.dialogueTree', '@entity.currentNode']]],\n ['if', ['<', '@entity.typeIndex', ['str/len', '@currentDialogue.text']],\n ['emit', 'TYPE_CHAR'],\n ['emit', 'TYPE_COMPLETE']]],\n ],\n },\n ],\n\n configSchema: {\n required: [],\n optional: [\n { name: 'typingSpeed', type: 'number', description: 'Characters per second', default: 30 },\n { name: 'autoAdvance', type: 'boolean', description: 'Auto-advance after typing', default: false },\n { name: 'autoAdvanceDelay', type: 'number', description: 'Delay before auto-advance (ms)', default: 2000 },\n { name: 'showPortrait', type: 'boolean', description: 'Show speaker portrait', default: true },\n ],\n },\n};\n\n// ============================================================================\n// std/LevelProgress - Level Unlock and Progression\n// ============================================================================\n\n/**\n * std/LevelProgress - Manages level unlock, selection, and completion.\n */\nexport const LEVEL_PROGRESS_BEHAVIOR: StandardBehavior = {\n name: 'std/LevelProgress',\n category: 'game-ui',\n description: 'Level progression with unlock, selection, and completion tracking',\n suggestedFor: [\n 'Level-based games',\n 'Puzzle games',\n 'Platformers with levels',\n 'Mobile games',\n ],\n\n dataEntities: [\n {\n name: 'LevelProgressState',\n runtime: true,\n singleton: true,\n fields: [\n { name: 'currentLevel', type: 'number', default: 0 },\n { name: 'unlockedLevels', type: 'array', default: [0] },\n { name: 'levelStars', type: 'object', default: {} },\n { name: 'totalStars', type: 'number', default: 0 },\n ],\n },\n ],\n\n stateMachine: {\n initial: 'Browsing',\n states: [\n { name: 'Browsing', isInitial: true },\n { name: 'LevelLoading' },\n { name: 'InLevel' },\n ],\n events: [\n { key: 'INIT' },\n { key: 'SELECT_LEVEL' },\n { key: 'LEVEL_LOADED' },\n { key: 'COMPLETE_LEVEL' },\n { key: 'UNLOCK_LEVEL' },\n { key: 'BACK_TO_SELECT' },\n ],\n transitions: [\n {\n from: '*',\n to: 'Browsing',\n event: 'INIT',\n effects: [\n ['render', 'screen', 'level-select', {\n levels: '@config.levels',\n unlockedLevels: '@entity.unlockedLevels',\n levelStars: '@entity.levelStars',\n starsPerLevel: '@config.starsPerLevel',\n totalStars: '@entity.totalStars',\n onSelect: 'SELECT_LEVEL',\n }],\n ],\n },\n {\n from: 'Browsing',\n to: 'LevelLoading',\n event: 'SELECT_LEVEL',\n guard: ['array/includes', '@entity.unlockedLevels', '@payload.levelIndex'],\n effects: [\n ['set', '@entity.currentLevel', '@payload.levelIndex'],\n ['render', 'screen', 'loading-screen', {\n level: ['array/nth', '@config.levels', '@payload.levelIndex'],\n }],\n ['emit', 'LOAD_LEVEL', { levelData: ['array/nth', '@config.levels', '@payload.levelIndex'] }],\n ],\n },\n {\n from: 'LevelLoading',\n to: 'InLevel',\n event: 'LEVEL_LOADED',\n effects: [\n ['render', 'screen', null],\n ['emit', 'START'],\n ],\n },\n {\n from: 'InLevel',\n event: 'COMPLETE_LEVEL',\n effects: [\n ['set', '@entity.levelStars', ['object/set', '@entity.levelStars', ['str/toString', '@entity.currentLevel'],\n ['math/max', '@payload.stars', ['object/get', '@entity.levelStars', ['str/toString', '@entity.currentLevel'], 0]]]],\n ['set', '@entity.totalStars', ['array/reduce', ['object/values', '@entity.levelStars'], ['fn', 'sum', 'v', ['+', '@sum', '@v']], 0]],\n ['if', ['and', '@config.unlockNext', ['<', '@entity.currentLevel', ['-', ['array/len', '@config.levels'], 1]]],\n ['emit', 'UNLOCK_LEVEL', { levelIndex: ['+', '@entity.currentLevel', 1] }]],\n ['if', '@config.persistProgress',\n ['persist', 'save', 'LevelProgress', {\n unlockedLevels: '@entity.unlockedLevels',\n levelStars: '@entity.levelStars',\n }]],\n ],\n },\n {\n event: 'UNLOCK_LEVEL',\n guard: ['not', ['array/includes', '@entity.unlockedLevels', '@payload.levelIndex']],\n effects: [\n ['set', '@entity.unlockedLevels', ['array/append', '@entity.unlockedLevels', '@payload.levelIndex']],\n ],\n },\n {\n from: 'InLevel',\n to: 'Browsing',\n event: 'BACK_TO_SELECT',\n effects: [\n ['emit', 'INIT'],\n ],\n },\n ],\n },\n\n configSchema: {\n required: [\n { name: 'levels', type: 'array', description: 'Level definitions' },\n ],\n optional: [\n { name: 'starsPerLevel', type: 'number', description: 'Max stars per level', default: 3 },\n { name: 'unlockNext', type: 'boolean', description: 'Auto-unlock next level on complete', default: true },\n { name: 'persistProgress', type: 'boolean', description: 'Save progress to storage', default: true },\n ],\n },\n};\n\n// ============================================================================\n// Export All Behaviors\n// ============================================================================\n\nexport const GAME_UI_BEHAVIORS: StandardBehavior[] = [\n GAME_FLOW_BEHAVIOR,\n DIALOGUE_BEHAVIOR,\n LEVEL_PROGRESS_BEHAVIOR,\n];\n"]}
1
+ {"version":3,"sources":["../../behaviors/game-ui.ts"],"names":[],"mappings":"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","file":"game-ui.js","sourcesContent":["/**\n * Game UI Behaviors\n *\n * Game interface behaviors: flow, dialogue, level progression.\n * Each behavior is a self-contained OrbitalSchema that can function as a standalone .orb file.\n *\n * @packageDocumentation\n */\n\nimport type { OrbitalSchema } from './types.js';\n\n// ============================================================================\n// std-gameflow - Game State Machine\n// ============================================================================\n\n/**\n * std-gameflow - Master game state management.\n *\n * States: Menu → Playing → Paused → GameOver/Victory\n */\nexport const GAME_FLOW_BEHAVIOR: OrbitalSchema = {\n name: 'std-gameflow',\n version: '1.0.0',\n description: 'Master game flow: menu, play, pause, game over, victory',\n orbitals: [\n {\n name: 'GameFlowOrbital',\n entity: {\n name: 'GameFlowState',\n persistence: 'runtime',\n fields: [\n { name: 'id', type: 'string', required: true },\n { name: 'playTime', type: 'number', default: 0 },\n { name: 'attempts', type: 'number', default: 0 },\n { name: 'lastState', type: 'string', default: 'Menu' },\n { name: 'title', type: 'string', default: 'Game' },\n { name: 'allowPause', type: 'boolean', default: true },\n ],\n },\n traits: [\n {\n name: 'GameFlow',\n linkedEntity: 'GameFlowState',\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'Menu', isInitial: true },\n { name: 'Playing' },\n { name: 'Paused' },\n { name: 'GameOver', isTerminal: true },\n { name: 'Victory', isTerminal: true },\n ],\n events: [\n { key: 'START', name: 'Start' },\n { key: 'PAUSE', name: 'Pause' },\n { key: 'RESUME', name: 'Resume' },\n { key: 'GAME_OVER', name: 'Game Over' },\n { key: 'VICTORY', name: 'Victory' },\n { key: 'RESTART', name: 'Restart' },\n { key: 'QUIT', name: 'Quit' },\n ],\n transitions: [\n {\n from: 'Menu',\n to: 'Menu',\n event: 'QUIT',\n effects: [\n ['emit', 'STOP'],\n ['render-ui', 'screen', {\n type: 'game-menu',\n title: '@entity.title',\n options: [{ event: 'START', label: 'Start Game' }],\n onSelect: 'START',\n }],\n ],\n },\n {\n from: 'Menu',\n to: 'Playing',\n event: 'START',\n effects: [\n ['set', '@entity.attempts', ['+', '@entity.attempts', 1]],\n ['set', '@entity.playTime', 0],\n ['emit', 'GAME_LOOP_START'],\n ],\n },\n {\n from: 'Playing',\n to: 'Paused',\n event: 'PAUSE',\n guard: '@entity.allowPause',\n effects: [\n ['set', '@entity.lastState', 'Playing'],\n ['emit', 'GAME_LOOP_PAUSE'],\n ['render-ui', 'overlay', {\n type: 'game-pause-overlay',\n title: 'Paused',\n visible: true,\n options: [\n { event: 'RESUME', label: 'Resume' },\n { event: 'QUIT', label: 'Quit' },\n ],\n }],\n ],\n },\n {\n from: 'Paused',\n to: 'Playing',\n event: 'RESUME',\n effects: [['emit', 'GAME_LOOP_RESUME']],\n },\n {\n from: 'Playing',\n to: 'GameOver',\n event: 'GAME_OVER',\n effects: [\n ['emit', 'STOP'],\n ['render-ui', 'overlay', {\n type: 'game-over-screen',\n title: 'Game Over',\n stats: [\n { label: 'Play Time', value: '@entity.playTime' },\n { label: 'Attempts', value: '@entity.attempts' },\n ],\n actions: [\n { event: 'RESTART', label: 'Try Again' },\n { event: 'QUIT', label: 'Quit' },\n ],\n }],\n ],\n },\n {\n from: 'Playing',\n to: 'Victory',\n event: 'VICTORY',\n effects: [\n ['emit', 'STOP'],\n ['render-ui', 'overlay', {\n type: 'game-over-screen',\n title: 'Victory!',\n variant: 'success',\n stats: [\n { label: 'Play Time', value: '@entity.playTime' },\n { label: 'Attempts', value: '@entity.attempts' },\n ],\n actions: [\n { event: 'RESTART', label: 'Play Again' },\n { event: 'QUIT', label: 'Quit' },\n ],\n }],\n ],\n },\n {\n from: 'GameOver',\n to: 'Playing',\n event: 'RESTART',\n effects: [\n ['emit', 'GAME_RESET'],\n ['emit', 'START'],\n ],\n },\n {\n from: 'Victory',\n to: 'Playing',\n event: 'RESTART',\n effects: [\n ['emit', 'GAME_RESET'],\n ['emit', 'START'],\n ],\n },\n {\n from: 'Playing',\n to: 'Menu',\n event: 'QUIT',\n effects: [['emit', 'STOP']],\n },\n {\n from: 'Paused',\n to: 'Menu',\n event: 'QUIT',\n effects: [['emit', 'STOP']],\n },\n {\n from: 'GameOver',\n to: 'Menu',\n event: 'QUIT',\n effects: [['emit', 'STOP']],\n },\n {\n from: 'Victory',\n to: 'Menu',\n event: 'QUIT',\n effects: [['emit', 'STOP']],\n },\n ],\n },\n },\n ],\n pages: [],\n },\n ],\n};\n\n// ============================================================================\n// std-dialogue - NPC Conversation System\n// ============================================================================\n\n/**\n * std-dialogue - Manages NPC dialogue and branching conversations.\n */\nexport const DIALOGUE_BEHAVIOR: OrbitalSchema = {\n name: 'std-dialogue',\n version: '1.0.0',\n description: 'NPC dialogue system with branching conversations',\n orbitals: [\n {\n name: 'DialogueOrbital',\n entity: {\n name: 'DialogueState',\n persistence: 'runtime',\n fields: [\n { name: 'id', type: 'string', required: true },\n { name: 'dialogueTree', type: 'array', default: [] },\n { name: 'currentNode', type: 'number', default: 0 },\n { name: 'displayedText', type: 'string', default: '' },\n { name: 'isTyping', type: 'boolean', default: false },\n { name: 'speaker', type: 'string', default: '' },\n { name: 'typeIndex', type: 'number', default: 0 },\n { name: 'lastTypeTime', type: 'number', default: 0 },\n { name: 'typingSpeed', type: 'number', default: 50 },\n ],\n },\n traits: [\n {\n name: 'Dialogue',\n linkedEntity: 'DialogueState',\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'Hidden', isInitial: true },\n { name: 'Typing' },\n { name: 'Showing' },\n { name: 'Choice' },\n ],\n events: [\n { key: 'SHOW', name: 'Show' },\n { key: 'NEXT', name: 'Next' },\n { key: 'SELECT_CHOICE', name: 'Select Choice' },\n { key: 'SKIP', name: 'Skip' },\n { key: 'CLOSE', name: 'Close' },\n { key: 'TYPE_CHAR', name: 'Type Char' },\n { key: 'TYPE_COMPLETE', name: 'Type Complete' },\n ],\n transitions: [\n {\n from: 'Hidden',\n to: 'Typing',\n event: 'SHOW',\n effects: [\n ['set', '@entity.dialogueTree', '@payload.dialogue'],\n ['set', '@entity.currentNode', 0],\n ['set', '@entity.isTyping', true],\n ['set', '@entity.displayedText', ''],\n ['set', '@entity.typeIndex', 0],\n ['set', '@entity.lastTypeTime', '@now'],\n ['emit', 'GAME_PAUSE'],\n ['render-ui', 'overlay.dialogue', {\n type: 'dialogue-box',\n dialogue: {\n speaker: '@entity.speaker',\n text: '@entity.displayedText',\n isTyping: '@entity.isTyping',\n },\n onAdvance: 'NEXT',\n }],\n ],\n },\n {\n from: 'Typing',\n to: 'Typing',\n event: 'TYPE_CHAR',\n effects: [\n ['let', [['currentDialogue', ['array/nth', '@entity.dialogueTree', '@entity.currentNode']]],\n ['do',\n ['set', '@entity.typeIndex', ['+', '@entity.typeIndex', 1]],\n ['set', '@entity.displayedText', ['str/slice', '@currentDialogue.text', 0, '@entity.typeIndex']],\n ['set', '@entity.lastTypeTime', '@now']]],\n ],\n },\n {\n from: 'Typing',\n to: 'Showing',\n event: 'TYPE_COMPLETE',\n effects: [['set', '@entity.isTyping', false]],\n },\n {\n from: 'Typing',\n to: 'Showing',\n event: 'SKIP',\n effects: [\n ['let', [['currentDialogue', ['array/nth', '@entity.dialogueTree', '@entity.currentNode']]],\n ['do',\n ['set', '@entity.isTyping', false],\n ['set', '@entity.displayedText', '@currentDialogue.text']]],\n ],\n },\n {\n from: 'Showing',\n to: 'Typing',\n event: 'NEXT',\n guard: ['not', ['object/get', ['array/nth', '@entity.dialogueTree', '@entity.currentNode'], 'choices']],\n effects: [\n ['if', ['>=', '@entity.currentNode', ['-', ['array/len', '@entity.dialogueTree'], 1]],\n ['emit', 'CLOSE'],\n ['do',\n ['set', '@entity.currentNode', ['+', '@entity.currentNode', 1]],\n ['set', '@entity.isTyping', true],\n ['set', '@entity.displayedText', ''],\n ['set', '@entity.typeIndex', 0]]],\n ],\n },\n {\n from: 'Showing',\n to: 'Choice',\n event: 'NEXT',\n guard: ['object/get', ['array/nth', '@entity.dialogueTree', '@entity.currentNode'], 'choices'],\n effects: [\n ['let', [['currentDialogue', ['array/nth', '@entity.dialogueTree', '@entity.currentNode']]],\n ['render-ui', 'overlay.dialogue', {\n type: 'dialogue-box',\n dialogue: {\n speaker: 'Choose',\n choices: '@currentDialogue.choices',\n },\n onChoice: 'SELECT_CHOICE',\n }]],\n ],\n },\n {\n from: 'Choice',\n to: 'Typing',\n event: 'SELECT_CHOICE',\n effects: [\n ['let', [['currentDialogue', ['array/nth', '@entity.dialogueTree', '@entity.currentNode']]],\n ['let', [['choice', ['array/nth', '@currentDialogue.choices', '@payload.index']]],\n ['do',\n ['if', '@choice.nextNode',\n ['set', '@entity.currentNode', '@choice.nextNode'],\n ['set', '@entity.currentNode', ['+', '@entity.currentNode', 1]]],\n ['if', '@choice.effect', ['emit', '@choice.effect']]]]],\n ['set', '@entity.isTyping', true],\n ['set', '@entity.displayedText', ''],\n ['set', '@entity.typeIndex', 0],\n ],\n },\n {\n from: 'Typing',\n to: 'Hidden',\n event: 'CLOSE',\n effects: [\n ['set', '@entity.dialogueTree', []],\n ['set', '@entity.currentNode', 0],\n ['emit', 'GAME_RESUME'],\n ],\n },\n {\n from: 'Showing',\n to: 'Hidden',\n event: 'CLOSE',\n effects: [\n ['set', '@entity.dialogueTree', []],\n ['set', '@entity.currentNode', 0],\n ['emit', 'GAME_RESUME'],\n ],\n },\n {\n from: 'Choice',\n to: 'Hidden',\n event: 'CLOSE',\n effects: [\n ['set', '@entity.dialogueTree', []],\n ['set', '@entity.currentNode', 0],\n ['emit', 'GAME_RESUME'],\n ],\n },\n ],\n },\n ticks: [\n {\n name: 'TypewriterEffect',\n interval: 'frame',\n guard: ['and', '@entity.isTyping', ['>', ['-', '@now', '@entity.lastTypeTime'], ['/', 1000, '@entity.typingSpeed']]],\n effects: [\n ['let', [['currentDialogue', ['array/nth', '@entity.dialogueTree', '@entity.currentNode']]],\n ['if', ['<', '@entity.typeIndex', ['str/len', '@currentDialogue.text']],\n ['emit', 'TYPE_CHAR'],\n ['emit', 'TYPE_COMPLETE']]],\n ],\n },\n ],\n },\n ],\n pages: [],\n },\n ],\n};\n\n// ============================================================================\n// std-levelprogress - Level Unlock and Progression\n// ============================================================================\n\n/**\n * std-levelprogress - Manages level unlock, selection, and completion.\n */\nexport const LEVEL_PROGRESS_BEHAVIOR: OrbitalSchema = {\n name: 'std-levelprogress',\n version: '1.0.0',\n description: 'Level progression with unlock, selection, and completion tracking',\n orbitals: [\n {\n name: 'LevelProgressOrbital',\n entity: {\n name: 'LevelProgressState',\n persistence: 'runtime',\n fields: [\n { name: 'id', type: 'string', required: true },\n { name: 'currentLevel', type: 'number', default: 0 },\n { name: 'unlockedLevels', type: 'array', default: [0] },\n { name: 'levelStars', type: 'object', default: {} },\n { name: 'totalStars', type: 'number', default: 0 },\n { name: 'levels', type: 'array', default: [] },\n { name: 'starsPerLevel', type: 'number', default: 3 },\n { name: 'unlockNext', type: 'boolean', default: true },\n { name: 'persistProgress', type: 'boolean', default: true },\n ],\n },\n traits: [\n {\n name: 'LevelProgress',\n linkedEntity: 'LevelProgressState',\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'Browsing', isInitial: true },\n { name: 'LevelLoading' },\n { name: 'InLevel' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'SELECT_LEVEL', name: 'Select Level' },\n { key: 'LEVEL_LOADED', name: 'Level Loaded' },\n { key: 'COMPLETE_LEVEL', name: 'Complete Level' },\n { key: 'UNLOCK_LEVEL', name: 'Unlock Level' },\n { key: 'BACK_TO_SELECT', name: 'Back To Select' },\n ],\n transitions: [\n {\n from: 'Browsing',\n to: 'Browsing',\n event: 'INIT',\n effects: [\n ['render-ui', 'screen', {\n type: 'level-select',\n title: 'Select Level',\n levels: '@entity.levels',\n onSelect: 'SELECT_LEVEL',\n }],\n ],\n },\n {\n from: 'Browsing',\n to: 'LevelLoading',\n event: 'SELECT_LEVEL',\n guard: ['array/includes', '@entity.unlockedLevels', '@payload.levelIndex'],\n effects: [\n ['set', '@entity.currentLevel', '@payload.levelIndex'],\n ['emit', 'LOAD_LEVEL', { levelData: ['array/nth', '@entity.levels', '@payload.levelIndex'] }],\n ],\n },\n {\n from: 'LevelLoading',\n to: 'InLevel',\n event: 'LEVEL_LOADED',\n effects: [['emit', 'START']],\n },\n {\n from: 'InLevel',\n to: 'InLevel',\n event: 'COMPLETE_LEVEL',\n effects: [\n ['set', '@entity.levelStars', ['object/set', '@entity.levelStars', ['str/toString', '@entity.currentLevel'],\n ['math/max', '@payload.stars', ['object/get', '@entity.levelStars', ['str/toString', '@entity.currentLevel'], 0]]]],\n ['set', '@entity.totalStars', ['array/reduce', ['object/values', '@entity.levelStars'], ['fn', 'sum', 'v', ['+', '@sum', '@v']], 0]],\n ['if', ['and', '@entity.unlockNext', ['<', '@entity.currentLevel', ['-', ['array/len', '@entity.levels'], 1]]],\n ['emit', 'UNLOCK_LEVEL', { levelIndex: ['+', '@entity.currentLevel', 1] }]],\n ['if', '@entity.persistProgress',\n ['persist', 'save', 'LevelProgress', {\n unlockedLevels: '@entity.unlockedLevels',\n levelStars: '@entity.levelStars',\n }]],\n ],\n },\n {\n from: 'InLevel',\n to: 'InLevel',\n event: 'UNLOCK_LEVEL',\n guard: ['not', ['array/includes', '@entity.unlockedLevels', '@payload.levelIndex']],\n effects: [\n ['set', '@entity.unlockedLevels', ['array/append', '@entity.unlockedLevels', '@payload.levelIndex']],\n ],\n },\n {\n from: 'InLevel',\n to: 'Browsing',\n event: 'BACK_TO_SELECT',\n effects: [['emit', 'INIT']],\n },\n {\n from: 'LevelLoading',\n to: 'Browsing',\n event: 'INIT',\n effects: [],\n },\n {\n from: 'InLevel',\n to: 'Browsing',\n event: 'INIT',\n effects: [],\n },\n ],\n },\n },\n ],\n pages: [],\n },\n ],\n};\n\n// ============================================================================\n// Export All Behaviors\n// ============================================================================\n\nexport const GAME_UI_BEHAVIORS: OrbitalSchema[] = [\n GAME_FLOW_BEHAVIOR,\n DIALOGUE_BEHAVIOR,\n LEVEL_PROGRESS_BEHAVIOR,\n];\n"]}
@@ -1,4 +1,4 @@
1
- export { BEHAVIOR_CATEGORIES, BehaviorCategory, BehaviorConfig, BehaviorDataEntity, BehaviorEntityField, BehaviorEvent, BehaviorMetadata, BehaviorState, BehaviorStateMachine, BehaviorTick, BehaviorTransition, ConfigField, FieldType, ItemAction, StandardBehavior, getBehaviorMetadata, isBehaviorCategory, isGameBehaviorCategory, validateBehaviorEvents, validateBehaviorStates, validateBehaviorStructure } from './types.js';
1
+ export { BehaviorMetadata, BehaviorTrait, ItemAction, getBehaviorMetadata, validateBehaviorEvents, validateBehaviorStates, validateBehaviorStructure } from './types.js';
2
2
  export { ACTION_AFFINITY, ActionAffinity, ActionPlacement, UIEventInfo, UI_EVENTS, getAllKnownComponents, getComponentsByCategory, getComponentsForEvent, getInvalidActionsForComponent, getValidActionsForComponent, isActionInvalidForComponent, isActionValidForComponent, validateActionsForComponent } from './action-affinity.js';
3
3
  export { DETAIL_BEHAVIOR, DRAWER_BEHAVIOR, FORM_BEHAVIOR, LIST_BEHAVIOR, MASTER_DETAIL_BEHAVIOR, MODAL_BEHAVIOR, TABS_BEHAVIOR, UI_INTERACTION_BEHAVIORS, WIZARD_BEHAVIOR } from './ui-interaction.js';
4
4
  export { DATA_MANAGEMENT_BEHAVIORS, FILTER_BEHAVIOR, PAGINATION_BEHAVIOR, SEARCH_BEHAVIOR, SELECTION_BEHAVIOR, SORT_BEHAVIOR } from './data-management.js';
@@ -7,5 +7,5 @@ export { CONFIRMATION_BEHAVIOR, FEEDBACK_BEHAVIORS, NOTIFICATION_BEHAVIOR, UNDO_
7
7
  export { COLLISION_BEHAVIOR, GAME_CORE_BEHAVIORS, GAME_LOOP_BEHAVIOR, INPUT_BEHAVIOR, PHYSICS_2D_BEHAVIOR } from './game-core.js';
8
8
  export { COMBAT_BEHAVIOR, GAME_ENTITY_BEHAVIORS, HEALTH_BEHAVIOR, INVENTORY_BEHAVIOR, MOVEMENT_BEHAVIOR, SCORE_BEHAVIOR } from './game-entity.js';
9
9
  export { DIALOGUE_BEHAVIOR, GAME_FLOW_BEHAVIOR, GAME_UI_BEHAVIORS, LEVEL_PROGRESS_BEHAVIOR } from './game-ui.js';
10
- export { BEHAVIORS_BY_CATEGORY, BEHAVIOR_REGISTRY, STANDARD_BEHAVIORS, findBehaviorsForUseCase, getAllBehaviorMetadata, getAllBehaviorNames, getAllBehaviors, getBehavior, getBehaviorLibraryStats, getBehaviorsByCategory, getBehaviorsForEvent, getBehaviorsWithState, isKnownBehavior, validateBehaviorReference } from './registry.js';
11
- import '@almadar/core/types';
10
+ export { BEHAVIOR_REGISTRY, STANDARD_BEHAVIORS, findBehaviorsForUseCase, getAllBehaviorMetadata, getAllBehaviorNames, getAllBehaviors, getBehavior, getBehaviorLibraryStats, getBehaviorsForEvent, getBehaviorsWithState, isKnownBehavior, validateBehaviorReference } from './registry.js';
11
+ export { Effect, Entity, Event, Expression, Orbital, OrbitalSchema, State, StateMachine, Trait, TraitCategory, TraitDataEntity, TraitEntityField, TraitTick, Transition } from '@almadar/core/types';