@almadar/std 2.1.0 → 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.
Files changed (86) hide show
  1. package/dist/behaviors/async.d.ts +12 -7
  2. package/dist/behaviors/async.js +1085 -312
  3. package/dist/behaviors/async.js.map +1 -1
  4. package/dist/behaviors/data-management.d.ts +27 -13
  5. package/dist/behaviors/data-management.js +600 -244
  6. package/dist/behaviors/data-management.js.map +1 -1
  7. package/dist/behaviors/domain/commerce.d.ts +51 -0
  8. package/dist/behaviors/domain/commerce.js +1093 -0
  9. package/dist/behaviors/domain/commerce.js.map +1 -0
  10. package/dist/behaviors/domain/content.d.ts +51 -0
  11. package/dist/behaviors/domain/content.js +1294 -0
  12. package/dist/behaviors/domain/content.js.map +1 -0
  13. package/dist/behaviors/domain/dashboard.d.ts +45 -0
  14. package/dist/behaviors/domain/dashboard.js +783 -0
  15. package/dist/behaviors/domain/dashboard.js.map +1 -0
  16. package/dist/behaviors/domain/education.d.ts +41 -0
  17. package/dist/behaviors/domain/education.js +738 -0
  18. package/dist/behaviors/domain/education.js.map +1 -0
  19. package/dist/behaviors/domain/finance.d.ts +49 -0
  20. package/dist/behaviors/domain/finance.js +660 -0
  21. package/dist/behaviors/domain/finance.js.map +1 -0
  22. package/dist/behaviors/domain/game-2d-platformer.d.ts +50 -0
  23. package/dist/behaviors/domain/game-2d-platformer.js +810 -0
  24. package/dist/behaviors/domain/game-2d-platformer.js.map +1 -0
  25. package/dist/behaviors/domain/game-2d-puzzle.d.ts +42 -0
  26. package/dist/behaviors/domain/game-2d-puzzle.js +622 -0
  27. package/dist/behaviors/domain/game-2d-puzzle.js.map +1 -0
  28. package/dist/behaviors/domain/game-2d-rpg.d.ts +48 -0
  29. package/dist/behaviors/domain/game-2d-rpg.js +860 -0
  30. package/dist/behaviors/domain/game-2d-rpg.js.map +1 -0
  31. package/dist/behaviors/domain/game-2d-strategy.d.ts +48 -0
  32. package/dist/behaviors/domain/game-2d-strategy.js +692 -0
  33. package/dist/behaviors/domain/game-2d-strategy.js.map +1 -0
  34. package/dist/behaviors/domain/geospatial.d.ts +35 -0
  35. package/dist/behaviors/domain/geospatial.js +634 -0
  36. package/dist/behaviors/domain/geospatial.js.map +1 -0
  37. package/dist/behaviors/domain/healthcare.d.ts +36 -0
  38. package/dist/behaviors/domain/healthcare.js +1068 -0
  39. package/dist/behaviors/domain/healthcare.js.map +1 -0
  40. package/dist/behaviors/domain/iot.d.ts +45 -0
  41. package/dist/behaviors/domain/iot.js +589 -0
  42. package/dist/behaviors/domain/iot.js.map +1 -0
  43. package/dist/behaviors/domain/media.d.ts +41 -0
  44. package/dist/behaviors/domain/media.js +771 -0
  45. package/dist/behaviors/domain/media.js.map +1 -0
  46. package/dist/behaviors/domain/scheduling.d.ts +41 -0
  47. package/dist/behaviors/domain/scheduling.js +930 -0
  48. package/dist/behaviors/domain/scheduling.js.map +1 -0
  49. package/dist/behaviors/domain/simulation.d.ts +36 -0
  50. package/dist/behaviors/domain/simulation.js +706 -0
  51. package/dist/behaviors/domain/simulation.js.map +1 -0
  52. package/dist/behaviors/domain/social.d.ts +41 -0
  53. package/dist/behaviors/domain/social.js +840 -0
  54. package/dist/behaviors/domain/social.js.map +1 -0
  55. package/dist/behaviors/domain/workflow.d.ts +41 -0
  56. package/dist/behaviors/domain/workflow.js +879 -0
  57. package/dist/behaviors/domain/workflow.js.map +1 -0
  58. package/dist/behaviors/feedback.d.ts +10 -5
  59. package/dist/behaviors/feedback.js +279 -194
  60. package/dist/behaviors/feedback.js.map +1 -1
  61. package/dist/behaviors/game-core.d.ts +15 -8
  62. package/dist/behaviors/game-core.js +412 -80
  63. package/dist/behaviors/game-core.js.map +1 -1
  64. package/dist/behaviors/game-entity.d.ts +17 -10
  65. package/dist/behaviors/game-entity.js +544 -237
  66. package/dist/behaviors/game-entity.js.map +1 -1
  67. package/dist/behaviors/game-ui.d.ts +16 -8
  68. package/dist/behaviors/game-ui.js +451 -316
  69. package/dist/behaviors/game-ui.js.map +1 -1
  70. package/dist/behaviors/index.d.ts +18 -1
  71. package/dist/behaviors/index.js +18905 -2140
  72. package/dist/behaviors/index.js.map +1 -1
  73. package/dist/behaviors/infrastructure.d.ts +9 -8
  74. package/dist/behaviors/infrastructure.js +597 -169
  75. package/dist/behaviors/infrastructure.js.map +1 -1
  76. package/dist/behaviors/registry.d.ts +11 -11
  77. package/dist/behaviors/registry.js +18904 -2139
  78. package/dist/behaviors/registry.js.map +1 -1
  79. package/dist/behaviors/types.d.ts +19 -2
  80. package/dist/behaviors/types.js.map +1 -1
  81. package/dist/behaviors/ui-interaction.d.ts +20 -14
  82. package/dist/behaviors/ui-interaction.js +928 -518
  83. package/dist/behaviors/ui-interaction.js.map +1 -1
  84. package/dist/index.js +18906 -2141
  85. package/dist/index.js.map +1 -1
  86. package/package.json +4 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../behaviors/game-entity.ts"],"names":[],"mappings":"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","file":"game-entity.js","sourcesContent":["/**\n * Game Entity Behaviors\n *\n * Entity state behaviors: health, score, movement, combat, inventory.\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-health - Entity Health System\n// ============================================================================\n\n/**\n * std-health - Manages entity health with damage, healing, and death.\n *\n * States: Alive → Damaged → Dead\n */\nexport const HEALTH_BEHAVIOR: OrbitalSchema = {\n name: 'std-health',\n version: '1.0.0',\n description: 'Entity health with damage, healing, invulnerability, and death',\n orbitals: [\n {\n name: 'HealthOrbital',\n entity: {\n name: 'HealthState',\n persistence: 'runtime',\n fields: [\n { name: 'id', type: 'string', required: true },\n { name: 'currentHealth', type: 'number', default: 100 },\n { name: 'maxHealth', type: 'number', default: 100 },\n { name: 'isInvulnerable', type: 'boolean', default: false },\n { name: 'lastDamageTime', type: 'number', default: 0 },\n { name: 'invulnerabilityTime', type: 'number', default: 1000 },\n { name: 'onDeath', type: 'string', default: null },\n ],\n },\n traits: [\n {\n name: 'Health',\n linkedEntity: 'HealthState',\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'Alive', isInitial: true },\n { name: 'Damaged' },\n { name: 'Invulnerable' },\n { name: 'Dead', isTerminal: true },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'DAMAGE', name: 'Damage' },\n { key: 'HEAL', name: 'Heal' },\n { key: 'DIE', name: 'Die' },\n { key: 'RESPAWN', name: 'Respawn' },\n { key: 'INVULNERABILITY_END', name: 'Invulnerability End' },\n ],\n transitions: [\n {\n from: 'Alive',\n to: 'Alive',\n event: 'INIT',\n effects: [\n ['set', '@entity.currentHealth', '@entity.maxHealth'],\n ['set', '@entity.isInvulnerable', false],\n ['render-ui', 'hud-top', {\n type: 'stats',\n label: 'Health',\n value: '@entity.currentHealth',\n }],\n ],\n },\n {\n from: 'Alive',\n to: 'Damaged',\n event: 'DAMAGE',\n guard: ['not', '@entity.isInvulnerable'],\n effects: [\n ['set', '@entity.currentHealth', ['math/max', 0, ['-', '@entity.currentHealth', '@payload.amount']]],\n ['set', '@entity.lastDamageTime', '@now'],\n ['if', ['<=', '@entity.currentHealth', 0],\n ['emit', 'DIE'],\n ['do',\n ['set', '@entity.isInvulnerable', true]]],\n ],\n },\n {\n from: 'Damaged',\n to: 'Alive',\n event: 'INVULNERABILITY_END',\n effects: [['set', '@entity.isInvulnerable', false]],\n },\n {\n from: 'Invulnerable',\n to: 'Alive',\n event: 'INVULNERABILITY_END',\n effects: [['set', '@entity.isInvulnerable', false]],\n },\n {\n from: 'Alive',\n to: 'Alive',\n event: 'HEAL',\n effects: [\n ['set', '@entity.currentHealth', ['math/min', '@entity.maxHealth', ['+', '@entity.currentHealth', '@payload.amount']]],\n ],\n },\n {\n from: 'Damaged',\n to: 'Damaged',\n event: 'HEAL',\n effects: [\n ['set', '@entity.currentHealth', ['math/min', '@entity.maxHealth', ['+', '@entity.currentHealth', '@payload.amount']]],\n ],\n },\n {\n from: 'Alive',\n to: 'Dead',\n event: 'DIE',\n effects: [\n ['set', '@entity.currentHealth', 0],\n ['if', '@entity.onDeath', ['emit', '@entity.onDeath', { entityId: '@entity.id' }]],\n ],\n },\n {\n from: 'Damaged',\n to: 'Dead',\n event: 'DIE',\n effects: [\n ['set', '@entity.currentHealth', 0],\n ['if', '@entity.onDeath', ['emit', '@entity.onDeath', { entityId: '@entity.id' }]],\n ],\n },\n {\n from: 'Dead',\n to: 'Alive',\n event: 'RESPAWN',\n effects: [['emit', 'INIT']],\n },\n ],\n },\n ticks: [\n {\n name: 'InvulnerabilityTimer',\n interval: 'frame',\n guard: ['and', '@entity.isInvulnerable', ['>', ['-', '@now', '@entity.lastDamageTime'], '@entity.invulnerabilityTime']],\n effects: [['emit', 'INVULNERABILITY_END']],\n },\n ],\n },\n ],\n pages: [],\n },\n ],\n};\n\n// ============================================================================\n// std-score - Points and Combo System\n// ============================================================================\n\n/**\n * std-score - Manages score with points, combos, and multipliers.\n */\nexport const SCORE_BEHAVIOR: OrbitalSchema = {\n name: 'std-score',\n version: '1.0.0',\n description: 'Score tracking with points, combos, and multipliers',\n orbitals: [\n {\n name: 'ScoreOrbital',\n entity: {\n name: 'ScoreState',\n persistence: 'runtime',\n fields: [\n { name: 'id', type: 'string', required: true },\n { name: 'currentScore', type: 'number', default: 0 },\n { name: 'highScore', type: 'number', default: 0 },\n { name: 'comboCount', type: 'number', default: 0 },\n { name: 'multiplier', type: 'number', default: 1 },\n { name: 'lastScoreTime', type: 'number', default: 0 },\n { name: 'maxMultiplier', type: 'number', default: 5 },\n { name: 'comboTimeWindow', type: 'number', default: 2000 },\n ],\n },\n traits: [\n {\n name: 'Score',\n linkedEntity: 'ScoreState',\n category: 'interaction',\n stateMachine: {\n states: [{ name: 'Active', isInitial: true }],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'ADD_POINTS', name: 'Add Points' },\n { key: 'COMBO_HIT', name: 'Combo Hit' },\n { key: 'COMBO_BREAK', name: 'Combo Break' },\n { key: 'RESET', name: 'Reset' },\n { key: 'SAVE_HIGH_SCORE', name: 'Save High Score' },\n ],\n transitions: [\n {\n from: 'Active',\n to: 'Active',\n event: 'INIT',\n effects: [\n ['set', '@entity.currentScore', 0],\n ['set', '@entity.comboCount', 0],\n ['set', '@entity.multiplier', 1],\n ['render-ui', 'hud-top', {\n type: 'stats',\n label: 'Score',\n value: '@entity.currentScore',\n subtitle: 'High: @entity.highScore',\n }],\n ],\n },\n {\n from: 'Active',\n to: 'Active',\n event: 'ADD_POINTS',\n effects: [\n ['set', '@entity.currentScore', ['+', '@entity.currentScore', ['*', '@payload.points', '@entity.multiplier']]],\n ['set', '@entity.lastScoreTime', '@now'],\n ],\n },\n {\n from: 'Active',\n to: 'Active',\n event: 'COMBO_HIT',\n effects: [\n ['set', '@entity.comboCount', ['+', '@entity.comboCount', 1]],\n ['set', '@entity.multiplier', ['math/min', '@entity.maxMultiplier', ['+', 1, ['/', '@entity.comboCount', 5]]]],\n ['set', '@entity.lastScoreTime', '@now'],\n ],\n },\n {\n from: 'Active',\n to: 'Active',\n event: 'COMBO_BREAK',\n effects: [\n ['set', '@entity.comboCount', 0],\n ['set', '@entity.multiplier', 1],\n ],\n },\n {\n from: 'Active',\n to: 'Active',\n event: 'RESET',\n effects: [\n ['if', ['>', '@entity.currentScore', '@entity.highScore'],\n ['set', '@entity.highScore', '@entity.currentScore']],\n ['emit', 'INIT'],\n ],\n },\n {\n from: 'Active',\n to: 'Active',\n event: 'SAVE_HIGH_SCORE',\n guard: ['>', '@entity.currentScore', '@entity.highScore'],\n effects: [\n ['set', '@entity.highScore', '@entity.currentScore'],\n ['persist', 'update', 'HighScore', { score: '@entity.highScore' }],\n ],\n },\n ],\n },\n ticks: [\n {\n name: 'ComboTimeout',\n interval: 'frame',\n guard: ['and', ['>', '@entity.comboCount', 0], ['>', ['-', '@now', '@entity.lastScoreTime'], '@entity.comboTimeWindow']],\n effects: [['emit', 'COMBO_BREAK']],\n },\n ],\n },\n ],\n pages: [],\n },\n ],\n};\n\n// ============================================================================\n// std-movement - Entity Position and Velocity\n// ============================================================================\n\n/**\n * std-movement - Basic movement for any entity.\n *\n * Handles position updates based on input or AI.\n */\nexport const MOVEMENT_BEHAVIOR: OrbitalSchema = {\n name: 'std-movement',\n version: '1.0.0',\n description: 'Entity movement with speed and direction',\n orbitals: [\n {\n name: 'MovementOrbital',\n entity: {\n name: 'MovementState',\n persistence: 'runtime',\n fields: [\n { name: 'id', type: 'string', required: true },\n { name: 'x', type: 'number', default: 0 },\n { name: 'y', type: 'number', default: 0 },\n { name: 'direction', type: 'number', default: 0 },\n { name: 'facingRight', type: 'boolean', default: true },\n { name: 'canJump', type: 'boolean', default: true },\n { name: 'moveSpeed', type: 'number', default: 5 },\n { name: 'jumpForce', type: 'number', default: -15 },\n ],\n },\n traits: [\n {\n name: 'Movement',\n linkedEntity: 'MovementState',\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'Idle', isInitial: true },\n { name: 'Moving' },\n { name: 'Jumping' },\n { name: 'Falling' },\n ],\n events: [\n { key: 'MOVE', name: 'Move' },\n { key: 'STOP', name: 'Stop' },\n { key: 'JUMP', name: 'Jump' },\n { key: 'LAND', name: 'Land' },\n ],\n transitions: [\n {\n from: 'Idle',\n to: 'Moving',\n event: 'MOVE',\n effects: [\n ['set', '@entity.direction', '@payload.direction'],\n ['if', ['>', '@payload.direction', 0], ['set', '@entity.facingRight', true]],\n ['if', ['<', '@payload.direction', 0], ['set', '@entity.facingRight', false]],\n ],\n },\n {\n from: 'Moving',\n to: 'Moving',\n event: 'MOVE',\n effects: [\n ['set', '@entity.direction', '@payload.direction'],\n ['if', ['>', '@payload.direction', 0], ['set', '@entity.facingRight', true]],\n ['if', ['<', '@payload.direction', 0], ['set', '@entity.facingRight', false]],\n ],\n },\n {\n from: 'Moving',\n to: 'Idle',\n event: 'STOP',\n effects: [['set', '@entity.direction', 0]],\n },\n {\n from: 'Idle',\n to: 'Jumping',\n event: 'JUMP',\n guard: '@entity.canJump',\n effects: [\n ['set', '@entity.canJump', false],\n ['emit', 'APPLY_FORCE', { fx: 0, fy: '@entity.jumpForce' }],\n ],\n },\n {\n from: 'Moving',\n to: 'Jumping',\n event: 'JUMP',\n guard: '@entity.canJump',\n effects: [\n ['set', '@entity.canJump', false],\n ['emit', 'APPLY_FORCE', { fx: 0, fy: '@entity.jumpForce' }],\n ],\n },\n {\n from: 'Jumping',\n to: 'Idle',\n event: 'LAND',\n effects: [\n ['set', '@entity.canJump', true],\n ['if', ['!=', '@entity.direction', 0], ['emit', 'MOVE', { direction: '@entity.direction' }]],\n ],\n },\n {\n from: 'Falling',\n to: 'Idle',\n event: 'LAND',\n effects: [\n ['set', '@entity.canJump', true],\n ['if', ['!=', '@entity.direction', 0], ['emit', 'MOVE', { direction: '@entity.direction' }]],\n ],\n },\n ],\n },\n ticks: [\n {\n name: 'ApplyMovement',\n interval: 'frame',\n guard: ['!=', '@entity.direction', 0],\n effects: [\n ['set', '@entity.x', ['+', '@entity.x', ['*', '@entity.direction', '@entity.moveSpeed']]],\n ],\n },\n ],\n },\n ],\n pages: [],\n },\n ],\n};\n\n// ============================================================================\n// std-combat - Attack and Damage System\n// ============================================================================\n\n/**\n * std-combat - Handles attacks, cooldowns, and hit detection.\n */\nexport const COMBAT_BEHAVIOR: OrbitalSchema = {\n name: 'std-combat',\n version: '1.0.0',\n description: 'Combat system with attacks, cooldowns, and hitboxes',\n orbitals: [\n {\n name: 'CombatOrbital',\n entity: {\n name: 'CombatState',\n persistence: 'runtime',\n fields: [\n { name: 'id', type: 'string', required: true },\n { name: 'isAttacking', type: 'boolean', default: false },\n { name: 'attackStartTime', type: 'number', default: 0 },\n { name: 'hitEntities', type: 'array', default: [] },\n { name: 'attackDamage', type: 'number', default: 10 },\n { name: 'attackDuration', type: 'number', default: 300 },\n { name: 'cooldownDuration', type: 'number', default: 500 },\n { name: 'hitboxOffset', type: 'object', default: { x: 20, y: 0 } },\n { name: 'hitboxSize', type: 'object', default: { width: 30, height: 30 } },\n ],\n },\n traits: [\n {\n name: 'Combat',\n linkedEntity: 'CombatState',\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'Ready', isInitial: true },\n { name: 'Attacking' },\n { name: 'Cooldown' },\n ],\n events: [\n { key: 'ATTACK', name: 'Attack' },\n { key: 'ATTACK_END', name: 'Attack End' },\n { key: 'HIT_CONNECT', name: 'Hit Connect' },\n { key: 'COOLDOWN_END', name: 'Cooldown End' },\n ],\n transitions: [\n {\n from: 'Ready',\n to: 'Attacking',\n event: 'ATTACK',\n effects: [\n ['set', '@entity.isAttacking', true],\n ['set', '@entity.attackStartTime', '@now'],\n ['set', '@entity.hitEntities', []],\n ],\n },\n {\n from: 'Attacking',\n to: 'Attacking',\n event: 'HIT_CONNECT',\n guard: ['not', ['array/includes', '@entity.hitEntities', '@payload.entityId']],\n effects: [\n ['set', '@entity.hitEntities', ['array/append', '@entity.hitEntities', '@payload.entityId']],\n ['emit', 'DAMAGE', { target: '@payload.entityId', amount: '@entity.attackDamage' }],\n ],\n },\n {\n from: 'Attacking',\n to: 'Cooldown',\n event: 'ATTACK_END',\n effects: [['set', '@entity.isAttacking', false]],\n },\n {\n from: 'Cooldown',\n to: 'Ready',\n event: 'COOLDOWN_END',\n effects: [],\n },\n ],\n },\n ticks: [\n {\n name: 'AttackDuration',\n interval: 'frame',\n guard: ['and', '@entity.isAttacking', ['>', ['-', '@now', '@entity.attackStartTime'], '@entity.attackDuration']],\n effects: [['emit', 'ATTACK_END']],\n },\n {\n name: 'CooldownTimer',\n interval: 'frame',\n guard: ['and', ['=', '@state', 'Cooldown'], ['>', ['-', '@now', '@entity.attackStartTime'], ['+', '@entity.attackDuration', '@entity.cooldownDuration']]],\n effects: [['emit', 'COOLDOWN_END']],\n },\n ],\n },\n ],\n pages: [],\n },\n ],\n};\n\n// ============================================================================\n// std-inventory - Item Collection and Management\n// ============================================================================\n\n/**\n * std-inventory - Manages collected items and equipment.\n */\nexport const INVENTORY_BEHAVIOR: OrbitalSchema = {\n name: 'std-inventory',\n version: '1.0.0',\n description: 'Item collection, storage, and usage',\n orbitals: [\n {\n name: 'InventoryOrbital',\n entity: {\n name: 'InventoryState',\n persistence: 'runtime',\n fields: [\n { name: 'id', type: 'string', required: true },\n { name: 'x', type: 'number', default: 0 },\n { name: 'y', type: 'number', default: 0 },\n { name: 'items', type: 'array', default: [] },\n { name: 'selectedSlot', type: 'number', default: 0 },\n { name: 'isOpen', type: 'boolean', default: false },\n { name: 'equipped', type: 'object', default: {} },\n { name: 'maxSlots', type: 'number', default: 20 },\n ],\n },\n traits: [\n {\n name: 'Inventory',\n linkedEntity: 'InventoryState',\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'Empty', isInitial: true },\n { name: 'HasItems' },\n { name: 'Full' },\n ],\n events: [\n { key: 'COLLECT', name: 'Collect' },\n { key: 'USE', name: 'Use' },\n { key: 'DROP', name: 'Drop' },\n { key: 'EQUIP', name: 'Equip' },\n { key: 'UNEQUIP', name: 'Unequip' },\n { key: 'OPEN', name: 'Open' },\n { key: 'CLOSE', name: 'Close' },\n { key: 'INVENTORY_EMPTY', name: 'Inventory Empty' },\n ],\n transitions: [\n {\n from: 'Empty',\n to: 'HasItems',\n event: 'COLLECT',\n guard: ['<', ['array/len', '@entity.items'], '@entity.maxSlots'],\n effects: [\n ['set', '@entity.items', ['array/append', '@entity.items', '@payload.item']],\n ['notify', 'in_app', ['str/concat', 'Collected ', '@payload.item.name']],\n ],\n },\n {\n from: 'HasItems',\n to: 'HasItems',\n event: 'COLLECT',\n guard: ['<', ['array/len', '@entity.items'], '@entity.maxSlots'],\n effects: [\n ['set', '@entity.items', ['array/append', '@entity.items', '@payload.item']],\n ['notify', 'in_app', ['str/concat', 'Collected ', '@payload.item.name']],\n ],\n },\n {\n from: 'HasItems',\n to: 'HasItems',\n event: 'USE',\n effects: [\n ['let', [['item', ['array/nth', '@entity.items', '@payload.slot']]],\n ['if', '@item.onUse', ['emit', '@item.onUse', { item: '@item' }]],\n ['if', '@item.consumable',\n ['set', '@entity.items', ['array/filter', '@entity.items', ['fn', 'i', 'idx', ['!=', '@idx', '@payload.slot']]]]]],\n ['if', ['=', ['array/len', '@entity.items'], 0], ['emit', 'INVENTORY_EMPTY']],\n ],\n },\n {\n from: 'HasItems',\n to: 'HasItems',\n event: 'DROP',\n effects: [\n ['let', [['item', ['array/nth', '@entity.items', '@payload.slot']]],\n ['set', '@entity.items', ['array/filter', '@entity.items', ['fn', 'i', 'idx', ['!=', '@idx', '@payload.slot']]]],\n ['emit', 'ITEM_DROPPED', { item: '@item', position: { x: '@entity.x', y: '@entity.y' } }]],\n ['if', ['=', ['array/len', '@entity.items'], 0], ['emit', 'INVENTORY_EMPTY']],\n ],\n },\n {\n from: 'HasItems',\n to: 'Empty',\n event: 'INVENTORY_EMPTY',\n effects: [],\n },\n {\n from: 'Empty',\n to: 'Empty',\n event: 'EQUIP',\n effects: [\n ['set', '@entity.equipped', ['object/set', '@entity.equipped', '@payload.slot', '@payload.item']],\n ['emit', 'STATS_UPDATED', { equipped: '@entity.equipped' }],\n ],\n },\n {\n from: 'HasItems',\n to: 'HasItems',\n event: 'EQUIP',\n effects: [\n ['set', '@entity.equipped', ['object/set', '@entity.equipped', '@payload.slot', '@payload.item']],\n ['emit', 'STATS_UPDATED', { equipped: '@entity.equipped' }],\n ],\n },\n {\n from: 'Empty',\n to: 'Empty',\n event: 'UNEQUIP',\n effects: [\n ['set', '@entity.equipped', ['object/remove', '@entity.equipped', '@payload.slot']],\n ['emit', 'STATS_UPDATED', { equipped: '@entity.equipped' }],\n ],\n },\n {\n from: 'HasItems',\n to: 'HasItems',\n event: 'UNEQUIP',\n effects: [\n ['set', '@entity.equipped', ['object/remove', '@entity.equipped', '@payload.slot']],\n ['emit', 'STATS_UPDATED', { equipped: '@entity.equipped' }],\n ],\n },\n {\n from: 'Empty',\n to: 'Empty',\n event: 'OPEN',\n effects: [\n ['render-ui', 'modal', {\n type: 'modal',\n title: 'Inventory',\n isOpen: '@entity.isOpen',\n onClose: 'CLOSE',\n }],\n ],\n },\n {\n from: 'HasItems',\n to: 'HasItems',\n event: 'OPEN',\n effects: [\n ['render-ui', 'modal', {\n type: 'modal',\n title: 'Inventory',\n isOpen: '@entity.isOpen',\n onClose: 'CLOSE',\n }],\n ],\n },\n {\n from: 'Empty',\n to: 'Empty',\n event: 'CLOSE',\n effects: [['set', '@entity.isOpen', false]],\n },\n {\n from: 'HasItems',\n to: 'HasItems',\n event: 'CLOSE',\n effects: [['set', '@entity.isOpen', false]],\n },\n ],\n },\n },\n ],\n pages: [],\n },\n ],\n};\n\n// ============================================================================\n// Export All Behaviors\n// ============================================================================\n\nexport const GAME_ENTITY_BEHAVIORS: OrbitalSchema[] = [\n HEALTH_BEHAVIOR,\n SCORE_BEHAVIOR,\n MOVEMENT_BEHAVIOR,\n COMBAT_BEHAVIOR,\n INVENTORY_BEHAVIOR,\n];\n"]}
1
+ {"version":3,"sources":["../../behaviors/game-entity.ts"],"names":[],"mappings":"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","file":"game-entity.js","sourcesContent":["/**\n * Game Entity Behaviors\n *\n * Entity state behaviors: health, score, movement, combat, inventory.\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 * @packageDocumentation\n */\n\nimport type { BehaviorSchema, BehaviorEffect } from './types.js';\n\n// ============================================================================\n// Shared theme for all game-entity behaviors\n// ============================================================================\n\nconst GAME_ENTITY_THEME = {\n name: 'game-entity-rose',\n tokens: {\n colors: {\n primary: '#e11d48',\n 'primary-hover': '#be123c',\n 'primary-foreground': '#ffffff',\n accent: '#fb7185',\n 'accent-foreground': '#000000',\n success: '#22c55e',\n warning: '#f59e0b',\n error: '#ef4444',\n },\n },\n};\n\n// ============================================================================\n// Game Asset Constants\n// ============================================================================\n\nconst KFLOW_ASSETS = 'https://almadar-kflow-assets.web.app/shared';\n\nconst GAME_MANIFEST = {\n terrain: {\n stone: '/terrain/Isometric/stoneSide_N.png',\n dirt: '/terrain/Isometric/dirt_N.png',\n bridge: '/terrain/Isometric/stoneStep_N.png',\n wall: '/terrain/Isometric/stoneWallArchway_N.png',\n },\n units: {\n guardian: '/sprite-sheets/guardian-sprite-sheet-se.png',\n breaker: '/sprite-sheets/breaker-sprite-sheet-se.png',\n archivist: '/sprite-sheets/archivist-sprite-sheet-se.png',\n },\n features: {\n gold_mine: '/world-map/gold_mine.png',\n portal: '/world-map/portal_open.png',\n treasure: '/world-map/treasure_chest_closed.png',\n },\n};\n\nconst TILES_5X5 = [\n { x: 0, y: 0, terrain: 'stone' }, { x: 1, y: 0, terrain: 'dirt' }, { x: 2, y: 0, terrain: 'stone' }, { x: 3, y: 0, terrain: 'dirt' }, { x: 4, y: 0, terrain: 'stone' },\n { x: 0, y: 1, terrain: 'dirt' }, { x: 1, y: 1, terrain: 'stone' }, { x: 2, y: 1, terrain: 'dirt' }, { x: 3, y: 1, terrain: 'stone' }, { x: 4, y: 1, terrain: 'dirt' },\n { x: 0, y: 2, terrain: 'stone' }, { x: 1, y: 2, terrain: 'dirt' }, { x: 2, y: 2, terrain: 'bridge' }, { x: 3, y: 2, terrain: 'dirt' }, { x: 4, y: 2, terrain: 'stone' },\n { x: 0, y: 3, terrain: 'dirt' }, { x: 1, y: 3, terrain: 'stone' }, { x: 2, y: 3, terrain: 'dirt' }, { x: 3, y: 3, terrain: 'stone' }, { x: 4, y: 3, terrain: 'dirt' },\n { x: 0, y: 4, terrain: 'stone' }, { x: 1, y: 4, terrain: 'dirt' }, { x: 2, y: 4, terrain: 'stone' }, { x: 3, y: 4, terrain: 'wall' }, { x: 4, y: 4, terrain: 'stone' },\n];\n\n// ============================================================================\n// Shared render-ui compositions\n// ============================================================================\n\nconst healthCanvasView: BehaviorEffect = ['render-ui', 'main', {\n type: 'isometric-canvas',\n tiles: TILES_5X5,\n units: [{ id: 'guardian-1', unitType: 'guardian', x: 2, y: 2 }],\n scale: 1,\n boardWidth: 5,\n boardHeight: 5,\n enableCamera: true,\n assetBaseUrl: KFLOW_ASSETS,\n assetManifest: GAME_MANIFEST,\n tileClickEvent: 'TILE_CLICK',\n unitClickEvent: 'UNIT_CLICK',\n}];\n\nconst healthOverlayView: BehaviorEffect = ['render-ui', 'overlay', {\n type: 'game-hud',\n elements: [\n { type: 'stat', label: 'HP', value: '@entity.currentHealth', icon: 'heart' },\n { type: 'stat', label: 'Max HP', value: '@entity.maxHealth', icon: 'heart' },\n { type: 'stat', label: 'Invulnerable', value: '@entity.isInvulnerable', icon: 'shield' },\n { type: 'button', label: 'Damage', action: 'DAMAGE', icon: 'sword', variant: 'secondary' },\n { type: 'button', label: 'Heal', action: 'HEAL', icon: 'heart', variant: 'primary' },\n { type: 'button', label: 'Respawn', action: 'RESPAWN', icon: 'refresh-cw', variant: 'secondary' },\n ],\n}];\n\nconst healthDamageEffectOverlay: BehaviorEffect = ['render-ui', 'overlay', {\n type: 'canvas-effect',\n actionType: 'hit',\n x: 200,\n y: 200,\n duration: 600,\n}];\n\nconst scoreCanvasView: BehaviorEffect = ['render-ui', 'main', {\n type: 'isometric-canvas',\n tiles: TILES_5X5,\n units: [{ id: 'scorer-1', unitType: 'guardian', x: 2, y: 2 }],\n scale: 1,\n boardWidth: 5,\n boardHeight: 5,\n enableCamera: true,\n assetBaseUrl: KFLOW_ASSETS,\n assetManifest: GAME_MANIFEST,\n tileClickEvent: 'TILE_CLICK',\n unitClickEvent: 'UNIT_CLICK',\n}];\n\nconst scoreOverlayView: BehaviorEffect = ['render-ui', 'overlay', {\n type: 'game-hud',\n elements: [\n { type: 'stat', label: 'Score', value: '@entity.currentScore', icon: 'star' },\n { type: 'stat', label: 'High Score', value: '@entity.highScore', icon: 'award' },\n { type: 'stat', label: 'Combo', value: '@entity.comboCount', icon: 'zap' },\n { type: 'stat', label: 'Multiplier', value: '@entity.multiplier', icon: 'trending-up' },\n { type: 'button', label: 'Add Points', action: 'ADD_POINTS', icon: 'plus', variant: 'primary' },\n { type: 'button', label: 'Reset', action: 'RESET', icon: 'refresh-cw', variant: 'secondary' },\n ],\n}];\n\nconst movementCanvasView: BehaviorEffect = ['render-ui', 'main', {\n type: 'isometric-canvas',\n tiles: TILES_5X5,\n units: [{ id: 'mover-1', unitType: 'guardian', x: 2, y: 2 }],\n scale: 1,\n boardWidth: 5,\n boardHeight: 5,\n enableCamera: true,\n assetBaseUrl: KFLOW_ASSETS,\n assetManifest: GAME_MANIFEST,\n tileClickEvent: 'TILE_CLICK',\n unitClickEvent: 'UNIT_CLICK',\n}];\n\nconst movementOverlayView: BehaviorEffect = ['render-ui', 'overlay', {\n type: 'game-hud',\n elements: [\n { type: 'stat', label: 'X', value: '@entity.x', icon: 'arrow-right' },\n { type: 'stat', label: 'Y', value: '@entity.y', icon: 'arrow-up' },\n { type: 'stat', label: 'Speed', value: '@entity.moveSpeed', icon: 'gauge' },\n { type: 'stat', label: 'Direction', value: '@entity.direction', icon: 'compass' },\n { type: 'button', label: 'Move Left', action: 'MOVE_LEFT', icon: 'arrow-left', variant: 'secondary' },\n { type: 'button', label: 'Move Right', action: 'MOVE_RIGHT', icon: 'arrow-right', variant: 'secondary' },\n { type: 'button', label: 'Jump', action: 'JUMP', icon: 'arrow-big-up', variant: 'primary' },\n { type: 'button', label: 'Stop', action: 'STOP', icon: 'square', variant: 'secondary' },\n ],\n}];\n\nconst combatCanvasView: BehaviorEffect = ['render-ui', 'main', {\n type: 'isometric-canvas',\n tiles: TILES_5X5,\n units: [\n { id: 'attacker-1', unitType: 'guardian', x: 1, y: 2 },\n { id: 'target-1', unitType: 'breaker', x: 3, y: 2 },\n ],\n scale: 1,\n boardWidth: 5,\n boardHeight: 5,\n enableCamera: true,\n assetBaseUrl: KFLOW_ASSETS,\n assetManifest: GAME_MANIFEST,\n tileClickEvent: 'TILE_CLICK',\n unitClickEvent: 'UNIT_CLICK',\n}];\n\nconst combatLogOverlay: BehaviorEffect = ['render-ui', 'overlay', {\n type: 'combat-log',\n events: [],\n maxVisible: 10,\n title: 'Battle Log',\n}];\n\nconst combatHudOverlay: BehaviorEffect = ['render-ui', 'overlay', {\n type: 'game-hud',\n elements: [\n { type: 'stat', label: 'Damage', value: '@entity.attackDamage', icon: 'sword' },\n { type: 'stat', label: 'Duration', value: '@entity.attackDuration', icon: 'timer' },\n { type: 'stat', label: 'Cooldown', value: '@entity.cooldownDuration', icon: 'clock' },\n { type: 'stat', label: 'Hit Count', value: '@entity.hitCount', icon: 'target' },\n { type: 'button', label: 'Attack', action: 'ATTACK', icon: 'sword', variant: 'primary' },\n { type: 'button', label: 'Defend', action: 'DEFEND', icon: 'shield', variant: 'secondary' },\n ],\n}];\n\nconst combatAttackEffect: BehaviorEffect = ['render-ui', 'overlay', {\n type: 'canvas-effect',\n actionType: 'melee',\n x: 200,\n y: 200,\n duration: 600,\n}];\n\nconst inventoryBrowseView: BehaviorEffect = ['render-ui', 'main', {\n type: 'inventory-panel',\n items: '@entity',\n slots: 12,\n columns: 4,\n selectSlotEvent: 'SELECT',\n showTooltips: true,\n}];\n\nconst inventoryDetailView: BehaviorEffect = ['render-ui', 'main', {\n type: 'stack', direction: 'vertical', children: [\n { type: 'stack', direction: 'horizontal', children: [\n { type: 'icon', name: 'package' },\n { type: 'typography', content: 'Item Detail', variant: 'h2' },\n ] },\n { type: 'divider' },\n { type: 'stack', direction: 'vertical', gap: 'md', children: [\n { type: 'typography', content: '@entity.name', variant: 'h2' },\n { type: 'stack', direction: 'horizontal', gap: 'sm', children: [\n { type: 'typography', content: 'Quantity:', variant: 'body' },\n { type: 'typography', content: '@entity.quantity', variant: 'body' },\n ] },\n { type: 'stack', direction: 'horizontal', gap: 'sm', children: [\n { type: 'typography', content: 'Slot:', variant: 'body' },\n { type: 'typography', content: '@entity.slot', variant: 'body' },\n ] },\n { type: 'badge', label: '@entity.isEquipped', variant: 'outline' },\n ] },\n ],\n}];\n\n// ============================================================================\n// std-health - Entity Health System\n// ============================================================================\n\n/**\n * std-health - Manages entity health with damage, healing, and death.\n *\n * States: Alive -> Damaged -> Dead\n */\nexport const HEALTH_BEHAVIOR: BehaviorSchema = {\n name: 'std-health',\n version: '1.0.0',\n description: 'Entity health with damage, healing, invulnerability, and death',\n orbitals: [\n {\n name: 'HealthOrbital',\n theme: GAME_ENTITY_THEME,\n entity: {\n name: 'HealthData',\n persistence: 'runtime',\n fields: [\n { name: 'id', type: 'string', required: true },\n { name: 'currentHealth', type: 'number', default: 100 },\n { name: 'maxHealth', type: 'number', default: 100 },\n { name: 'isInvulnerable', type: 'boolean', default: false },\n { name: 'lastDamageTime', type: 'number', default: 0 },\n { name: 'invulnerabilityTime', type: 'number', default: 1000 },\n ],\n },\n traits: [\n {\n name: 'Health',\n linkedEntity: 'HealthData',\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'Alive', isInitial: true },\n { name: 'Damaged' },\n { name: 'Dead' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n {\n key: 'DAMAGE',\n name: 'Damage',\n payloadSchema: [{ name: 'amount', type: 'number', required: true }],\n },\n {\n key: 'HEAL',\n name: 'Heal',\n payloadSchema: [{ name: 'amount', type: 'number', required: true }],\n },\n { key: 'DIE', name: 'Die' },\n { key: 'RESPAWN', name: 'Respawn' },\n { key: 'INVULNERABILITY_END', name: 'Invulnerability End' },\n ],\n transitions: [\n {\n from: 'Alive',\n to: 'Alive',\n event: 'INIT',\n effects: [\n ['fetch', 'HealthData'],\n ['set', '@entity.currentHealth', '@entity.maxHealth'],\n ['set', '@entity.isInvulnerable', false],\n healthCanvasView,\n healthOverlayView,\n ],\n },\n {\n from: 'Alive',\n to: 'Damaged',\n event: 'DAMAGE',\n guard: ['not', '@entity.isInvulnerable'],\n effects: [\n ['fetch', 'HealthData'],\n ['set', '@entity.currentHealth', ['math/max', 0, ['-', '@entity.currentHealth', '@payload.amount']]],\n ['set', '@entity.lastDamageTime', '@now'],\n ['set', '@entity.isInvulnerable', true],\n healthCanvasView,\n healthOverlayView,\n healthDamageEffectOverlay,\n ],\n },\n {\n from: 'Damaged',\n to: 'Dead',\n event: 'DAMAGE',\n guard: ['<=', '@entity.currentHealth', 0],\n effects: [\n ['fetch', 'HealthData'],\n ['set', '@entity.currentHealth', 0],\n healthCanvasView,\n healthOverlayView,\n ],\n },\n {\n from: 'Damaged',\n to: 'Damaged',\n event: 'DAMAGE',\n guard: ['and', ['not', '@entity.isInvulnerable'], ['>', '@entity.currentHealth', 0]],\n effects: [\n ['fetch', 'HealthData'],\n ['set', '@entity.currentHealth', ['math/max', 0, ['-', '@entity.currentHealth', '@payload.amount']]],\n ['set', '@entity.lastDamageTime', '@now'],\n ['set', '@entity.isInvulnerable', true],\n healthCanvasView,\n healthOverlayView,\n healthDamageEffectOverlay,\n ],\n },\n {\n from: 'Damaged',\n to: 'Alive',\n event: 'INVULNERABILITY_END',\n effects: [\n ['fetch', 'HealthData'],\n ['set', '@entity.isInvulnerable', false],\n healthCanvasView,\n healthOverlayView,\n ],\n },\n {\n from: 'Alive',\n to: 'Alive',\n event: 'HEAL',\n effects: [\n ['fetch', 'HealthData'],\n ['set', '@entity.currentHealth', ['math/min', '@entity.maxHealth', ['+', '@entity.currentHealth', '@payload.amount']]],\n healthCanvasView,\n healthOverlayView,\n ],\n },\n {\n from: 'Damaged',\n to: 'Damaged',\n event: 'HEAL',\n effects: [\n ['fetch', 'HealthData'],\n ['set', '@entity.currentHealth', ['math/min', '@entity.maxHealth', ['+', '@entity.currentHealth', '@payload.amount']]],\n healthCanvasView,\n healthOverlayView,\n ],\n },\n {\n from: 'Alive',\n to: 'Dead',\n event: 'DIE',\n effects: [\n ['fetch', 'HealthData'],\n ['set', '@entity.currentHealth', 0],\n healthCanvasView,\n healthOverlayView,\n ],\n },\n {\n from: 'Damaged',\n to: 'Dead',\n event: 'DIE',\n effects: [\n ['fetch', 'HealthData'],\n ['set', '@entity.currentHealth', 0],\n healthCanvasView,\n healthOverlayView,\n ],\n },\n {\n from: 'Dead',\n to: 'Alive',\n event: 'RESPAWN',\n effects: [\n ['fetch', 'HealthData'],\n ['set', '@entity.currentHealth', '@entity.maxHealth'],\n ['set', '@entity.isInvulnerable', false],\n healthCanvasView,\n healthOverlayView,\n ],\n },\n ],\n },\n ticks: [\n {\n name: 'InvulnerabilityTimer',\n interval: 'frame',\n guard: ['and', '@entity.isInvulnerable', ['>', ['-', '@now', '@entity.lastDamageTime'], '@entity.invulnerabilityTime']],\n effects: [\n ['set', '@entity.isInvulnerable', false],\n ],\n },\n ],\n },\n ],\n pages: [\n {\n name: 'HealthPage',\n path: '/health',\n isInitial: true,\n traits: [{ ref: 'Health' }],\n },\n ],\n },\n ],\n};\n\n// ============================================================================\n// std-score - Points and Combo System\n// ============================================================================\n\n/**\n * std-score - Manages score with points, combos, and multipliers.\n */\nexport const SCORE_BEHAVIOR: BehaviorSchema = {\n name: 'std-score',\n version: '1.0.0',\n description: 'Score tracking with points, combos, and multipliers',\n orbitals: [\n {\n name: 'ScoreOrbital',\n theme: GAME_ENTITY_THEME,\n entity: {\n name: 'ScoreData',\n persistence: 'runtime',\n fields: [\n { name: 'id', type: 'string', required: true },\n { name: 'currentScore', type: 'number', default: 0 },\n { name: 'highScore', type: 'number', default: 0 },\n { name: 'comboCount', type: 'number', default: 0 },\n { name: 'multiplier', type: 'number', default: 1 },\n { name: 'lastScoreTime', type: 'number', default: 0 },\n { name: 'maxMultiplier', type: 'number', default: 5 },\n { name: 'comboTimeWindow', type: 'number', default: 2000 },\n ],\n },\n traits: [\n {\n name: 'Score',\n linkedEntity: 'ScoreData',\n category: 'interaction',\n stateMachine: {\n states: [{ name: 'Active', isInitial: true }],\n events: [\n { key: 'INIT', name: 'Initialize' },\n {\n key: 'ADD_POINTS',\n name: 'Add Points',\n payloadSchema: [{ name: 'points', type: 'number', required: true }],\n },\n { key: 'COMBO_HIT', name: 'Combo Hit' },\n { key: 'COMBO_BREAK', name: 'Combo Break' },\n { key: 'RESET', name: 'Reset' },\n ],\n transitions: [\n {\n from: 'Active',\n to: 'Active',\n event: 'INIT',\n effects: [\n ['fetch', 'ScoreData'],\n ['set', '@entity.currentScore', 0],\n ['set', '@entity.comboCount', 0],\n ['set', '@entity.multiplier', 1],\n scoreCanvasView,\n scoreOverlayView,\n ],\n },\n {\n from: 'Active',\n to: 'Active',\n event: 'ADD_POINTS',\n effects: [\n ['fetch', 'ScoreData'],\n ['set', '@entity.currentScore', ['+', '@entity.currentScore', ['*', '@payload.points', '@entity.multiplier']]],\n ['set', '@entity.lastScoreTime', '@now'],\n scoreCanvasView,\n scoreOverlayView,\n ],\n },\n {\n from: 'Active',\n to: 'Active',\n event: 'COMBO_HIT',\n effects: [\n ['fetch', 'ScoreData'],\n ['set', '@entity.comboCount', ['+', '@entity.comboCount', 1]],\n ['set', '@entity.multiplier', ['math/min', '@entity.maxMultiplier', ['+', 1, ['/', '@entity.comboCount', 5]]]],\n ['set', '@entity.lastScoreTime', '@now'],\n scoreCanvasView,\n scoreOverlayView,\n ],\n },\n {\n from: 'Active',\n to: 'Active',\n event: 'COMBO_BREAK',\n effects: [\n ['fetch', 'ScoreData'],\n ['set', '@entity.comboCount', 0],\n ['set', '@entity.multiplier', 1],\n scoreCanvasView,\n scoreOverlayView,\n ],\n },\n {\n from: 'Active',\n to: 'Active',\n event: 'RESET',\n guard: ['>', '@entity.currentScore', '@entity.highScore'],\n effects: [\n ['fetch', 'ScoreData'],\n ['set', '@entity.highScore', '@entity.currentScore'],\n ['set', '@entity.currentScore', 0],\n ['set', '@entity.comboCount', 0],\n ['set', '@entity.multiplier', 1],\n scoreCanvasView,\n scoreOverlayView,\n ],\n },\n {\n from: 'Active',\n to: 'Active',\n event: 'RESET',\n guard: ['<=', '@entity.currentScore', '@entity.highScore'],\n effects: [\n ['fetch', 'ScoreData'],\n ['set', '@entity.currentScore', 0],\n ['set', '@entity.comboCount', 0],\n ['set', '@entity.multiplier', 1],\n scoreCanvasView,\n scoreOverlayView,\n ],\n },\n ],\n },\n ticks: [\n {\n name: 'ComboTimeout',\n interval: 'frame',\n guard: ['and', ['>', '@entity.comboCount', 0], ['>', ['-', '@now', '@entity.lastScoreTime'], '@entity.comboTimeWindow']],\n effects: [\n ['set', '@entity.comboCount', 0],\n ['set', '@entity.multiplier', 1],\n ],\n },\n ],\n },\n ],\n pages: [\n {\n name: 'ScorePage',\n path: '/score',\n isInitial: true,\n traits: [{ ref: 'Score' }],\n },\n ],\n },\n ],\n};\n\n// ============================================================================\n// std-movement - Entity Position and Velocity\n// ============================================================================\n\n/**\n * std-movement - Basic movement for any entity.\n *\n * Handles position updates based on input direction.\n * States: Idle -> Moving -> Jumping -> Falling\n */\nexport const MOVEMENT_BEHAVIOR: BehaviorSchema = {\n name: 'std-movement',\n version: '1.0.0',\n description: 'Entity movement with speed and direction',\n orbitals: [\n {\n name: 'MovementOrbital',\n theme: GAME_ENTITY_THEME,\n entity: {\n name: 'MovementData',\n persistence: 'runtime',\n fields: [\n { name: 'id', type: 'string', required: true },\n { name: 'x', type: 'number', default: 0 },\n { name: 'y', type: 'number', default: 0 },\n { name: 'direction', type: 'number', default: 0 },\n { name: 'facingRight', type: 'boolean', default: true },\n { name: 'canJump', type: 'boolean', default: true },\n { name: 'moveSpeed', type: 'number', default: 5 },\n { name: 'jumpForce', type: 'number', default: 15 },\n ],\n },\n traits: [\n {\n name: 'Movement',\n linkedEntity: 'MovementData',\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'Idle', isInitial: true },\n { name: 'Moving' },\n { name: 'Jumping' },\n { name: 'Falling' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n {\n key: 'MOVE_RIGHT',\n name: 'Move Right',\n },\n {\n key: 'MOVE_LEFT',\n name: 'Move Left',\n },\n { key: 'STOP', name: 'Stop' },\n { key: 'JUMP', name: 'Jump' },\n { key: 'LAND', name: 'Land' },\n { key: 'FALL', name: 'Fall' },\n ],\n transitions: [\n {\n from: 'Idle',\n to: 'Idle',\n event: 'INIT',\n effects: [\n ['fetch', 'MovementData'],\n ['set', '@entity.x', 0],\n ['set', '@entity.y', 0],\n ['set', '@entity.direction', 0],\n ['set', '@entity.facingRight', true],\n ['set', '@entity.canJump', true],\n movementCanvasView,\n movementOverlayView,\n ],\n },\n {\n from: 'Idle',\n to: 'Moving',\n event: 'MOVE_RIGHT',\n effects: [\n ['fetch', 'MovementData'],\n ['set', '@entity.direction', 1],\n ['set', '@entity.facingRight', true],\n movementCanvasView,\n movementOverlayView,\n ],\n },\n {\n from: 'Idle',\n to: 'Moving',\n event: 'MOVE_LEFT',\n effects: [\n ['fetch', 'MovementData'],\n ['set', '@entity.direction', -1],\n ['set', '@entity.facingRight', false],\n movementCanvasView,\n movementOverlayView,\n ],\n },\n {\n from: 'Moving',\n to: 'Moving',\n event: 'MOVE_RIGHT',\n effects: [\n ['set', '@entity.direction', 1],\n ['set', '@entity.facingRight', true],\n ],\n },\n {\n from: 'Moving',\n to: 'Moving',\n event: 'MOVE_LEFT',\n effects: [\n ['set', '@entity.direction', -1],\n ['set', '@entity.facingRight', false],\n ],\n },\n {\n from: 'Moving',\n to: 'Idle',\n event: 'STOP',\n effects: [\n ['fetch', 'MovementData'],\n ['set', '@entity.direction', 0],\n movementCanvasView,\n movementOverlayView,\n ],\n },\n {\n from: 'Idle',\n to: 'Jumping',\n event: 'JUMP',\n guard: '@entity.canJump',\n effects: [\n ['fetch', 'MovementData'],\n ['set', '@entity.canJump', false],\n ['set', '@entity.y', ['-', '@entity.y', '@entity.jumpForce']],\n movementCanvasView,\n movementOverlayView,\n ],\n },\n {\n from: 'Moving',\n to: 'Jumping',\n event: 'JUMP',\n guard: '@entity.canJump',\n effects: [\n ['set', '@entity.canJump', false],\n ['set', '@entity.y', ['-', '@entity.y', '@entity.jumpForce']],\n ],\n },\n {\n from: 'Jumping',\n to: 'Falling',\n event: 'FALL',\n effects: [],\n },\n {\n from: 'Jumping',\n to: 'Idle',\n event: 'LAND',\n effects: [\n ['fetch', 'MovementData'],\n ['set', '@entity.canJump', true],\n ['set', '@entity.direction', 0],\n movementCanvasView,\n movementOverlayView,\n ],\n },\n {\n from: 'Falling',\n to: 'Idle',\n event: 'LAND',\n effects: [\n ['fetch', 'MovementData'],\n ['set', '@entity.canJump', true],\n ['set', '@entity.direction', 0],\n movementCanvasView,\n movementOverlayView,\n ],\n },\n ],\n },\n ticks: [\n {\n name: 'ApplyMovement',\n interval: 'frame',\n guard: ['!=', '@entity.direction', 0],\n effects: [\n ['set', '@entity.x', ['+', '@entity.x', ['*', '@entity.direction', '@entity.moveSpeed']]],\n ],\n },\n ],\n },\n ],\n pages: [\n {\n name: 'MovementPage',\n path: '/movement',\n isInitial: true,\n traits: [{ ref: 'Movement' }],\n },\n ],\n },\n ],\n};\n\n// ============================================================================\n// std-combat - Attack and Damage System\n// ============================================================================\n\n/**\n * std-combat - Handles attacks, cooldowns, and hit detection.\n *\n * States: Ready -> Attacking -> Cooldown\n */\nexport const COMBAT_BEHAVIOR: BehaviorSchema = {\n name: 'std-combat',\n version: '1.0.0',\n description: 'Combat system with attacks, cooldowns, and hitboxes',\n orbitals: [\n {\n name: 'CombatOrbital',\n theme: GAME_ENTITY_THEME,\n entity: {\n name: 'CombatData',\n persistence: 'runtime',\n fields: [\n { name: 'id', type: 'string', required: true },\n { name: 'isAttacking', type: 'boolean', default: false },\n { name: 'attackStartTime', type: 'number', default: 0 },\n { name: 'attackDamage', type: 'number', default: 10 },\n { name: 'attackDuration', type: 'number', default: 300 },\n { name: 'cooldownDuration', type: 'number', default: 500 },\n { name: 'hitCount', type: 'number', default: 0 },\n ],\n },\n traits: [\n {\n name: 'Combat',\n linkedEntity: 'CombatData',\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'Ready', isInitial: true },\n { name: 'Attacking' },\n { name: 'Cooldown' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'ATTACK', name: 'Attack' },\n { key: 'ATTACK_END', name: 'Attack End' },\n { key: 'COOLDOWN_END', name: 'Cooldown End' },\n ],\n transitions: [\n {\n from: 'Ready',\n to: 'Ready',\n event: 'INIT',\n effects: [\n ['fetch', 'CombatData'],\n ['set', '@entity.isAttacking', false],\n ['set', '@entity.hitCount', 0],\n ['set', '@entity.attackStartTime', 0],\n combatCanvasView,\n combatLogOverlay,\n combatHudOverlay,\n ],\n },\n {\n from: 'Ready',\n to: 'Attacking',\n event: 'ATTACK',\n effects: [\n ['fetch', 'CombatData'],\n ['set', '@entity.isAttacking', true],\n ['set', '@entity.attackStartTime', '@now'],\n combatCanvasView,\n combatLogOverlay,\n combatHudOverlay,\n combatAttackEffect,\n ],\n },\n {\n from: 'Attacking',\n to: 'Cooldown',\n event: 'ATTACK_END',\n effects: [\n ['fetch', 'CombatData'],\n ['set', '@entity.isAttacking', false],\n ['set', '@entity.hitCount', ['+', '@entity.hitCount', 1]],\n combatCanvasView,\n combatLogOverlay,\n combatHudOverlay,\n ],\n },\n {\n from: 'Cooldown',\n to: 'Ready',\n event: 'COOLDOWN_END',\n effects: [\n ['fetch', 'CombatData'],\n combatCanvasView,\n combatLogOverlay,\n combatHudOverlay,\n ],\n },\n ],\n },\n ticks: [\n {\n name: 'AttackDuration',\n interval: 'frame',\n guard: ['and', '@entity.isAttacking', ['>', ['-', '@now', '@entity.attackStartTime'], '@entity.attackDuration']],\n effects: [\n ['set', '@entity.isAttacking', false],\n ],\n },\n ],\n },\n ],\n pages: [\n {\n name: 'CombatPage',\n path: '/combat',\n isInitial: true,\n traits: [{ ref: 'Combat' }],\n },\n ],\n },\n ],\n};\n\n// ============================================================================\n// std-inventory - Item Collection and Management\n// ============================================================================\n\n/**\n * std-inventory - Manages collected items and equipment.\n *\n * States: browsing -> viewing\n */\nexport const INVENTORY_BEHAVIOR: BehaviorSchema = {\n name: 'std-inventory',\n version: '1.0.0',\n description: 'Item collection, storage, and usage',\n orbitals: [\n {\n name: 'InventoryOrbital',\n theme: GAME_ENTITY_THEME,\n entity: {\n name: 'InventoryItem',\n persistence: 'runtime',\n fields: [\n { name: 'id', type: 'string', required: true },\n { name: 'name', type: 'string', default: '' },\n { name: 'quantity', type: 'number', default: 1 },\n { name: 'slot', type: 'number', default: 0 },\n { name: 'isEquipped', type: 'boolean', default: false },\n ],\n },\n traits: [\n {\n name: 'InventoryManagement',\n linkedEntity: 'InventoryItem',\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'browsing', isInitial: true },\n { name: 'viewing' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n {\n key: 'SELECT',\n name: 'Select Item',\n payloadSchema: [{ name: 'itemId', type: 'string', required: true }],\n },\n { key: 'BACK', name: 'Back to List' },\n { key: 'EQUIP', name: 'Equip Item' },\n { key: 'UNEQUIP', name: 'Unequip Item' },\n ],\n transitions: [\n {\n from: 'browsing',\n to: 'browsing',\n event: 'INIT',\n effects: [\n ['fetch', 'InventoryItem'],\n inventoryBrowseView,\n ],\n },\n {\n from: 'browsing',\n to: 'viewing',\n event: 'SELECT',\n effects: [\n ['fetch', 'InventoryItem'],\n inventoryDetailView,\n ],\n },\n {\n from: 'viewing',\n to: 'browsing',\n event: 'BACK',\n effects: [\n ['fetch', 'InventoryItem'],\n inventoryBrowseView,\n ],\n },\n {\n from: 'viewing',\n to: 'viewing',\n event: 'EQUIP',\n effects: [\n ['fetch', 'InventoryItem'],\n ['set', '@entity.isEquipped', true],\n inventoryDetailView,\n ],\n },\n {\n from: 'viewing',\n to: 'viewing',\n event: 'UNEQUIP',\n effects: [\n ['fetch', 'InventoryItem'],\n ['set', '@entity.isEquipped', false],\n inventoryDetailView,\n ],\n },\n ],\n },\n },\n ],\n pages: [\n {\n name: 'InventoryPage',\n path: '/inventory',\n isInitial: true,\n traits: [{ ref: 'InventoryManagement' }],\n },\n ],\n },\n ],\n};\n\n// ============================================================================\n// Export All Behaviors\n// ============================================================================\n\nexport const GAME_ENTITY_BEHAVIORS: BehaviorSchema[] = [\n HEALTH_BEHAVIOR,\n SCORE_BEHAVIOR,\n MOVEMENT_BEHAVIOR,\n COMBAT_BEHAVIOR,\n INVENTORY_BEHAVIOR,\n];\n"]}
@@ -1,4 +1,5 @@
1
- import { OrbitalSchema } from '@almadar/core/types';
1
+ import { BehaviorSchema } from './types.js';
2
+ import '@almadar/core/types';
2
3
 
3
4
  /**
4
5
  * Game UI Behaviors
@@ -12,17 +13,24 @@ import { OrbitalSchema } from '@almadar/core/types';
12
13
  /**
13
14
  * std-gameflow - Master game state management.
14
15
  *
15
- * States: Menu Playing Paused GameOver/Victory
16
+ * States: Menu -> Playing -> Paused -> GameOver
17
+ * Simplified to use valid patterns and slots only.
16
18
  */
17
- declare const GAME_FLOW_BEHAVIOR: OrbitalSchema;
19
+ declare const GAME_FLOW_BEHAVIOR: BehaviorSchema;
18
20
  /**
19
- * std-dialogue - Manages NPC dialogue and branching conversations.
21
+ * std-dialogue - Manages NPC dialogue display.
22
+ *
23
+ * Simplified: States: Hidden -> Showing -> Choice
24
+ * No typewriter effect, no complex s-expressions.
20
25
  */
21
- declare const DIALOGUE_BEHAVIOR: OrbitalSchema;
26
+ declare const DIALOGUE_BEHAVIOR: BehaviorSchema;
22
27
  /**
23
- * std-levelprogress - Manages level unlock, selection, and completion.
28
+ * std-levelprogress - Manages level selection and completion tracking.
29
+ *
30
+ * Simplified: States: Browsing -> Playing
31
+ * No complex operators, no external emits, no persist effects.
24
32
  */
25
- declare const LEVEL_PROGRESS_BEHAVIOR: OrbitalSchema;
26
- declare const GAME_UI_BEHAVIORS: OrbitalSchema[];
33
+ declare const LEVEL_PROGRESS_BEHAVIOR: BehaviorSchema;
34
+ declare const GAME_UI_BEHAVIORS: BehaviorSchema[];
27
35
 
28
36
  export { DIALOGUE_BEHAVIOR, GAME_FLOW_BEHAVIOR, GAME_UI_BEHAVIORS, LEVEL_PROGRESS_BEHAVIOR };