@sharpee/world-model 0.9.66-beta → 0.9.67-beta
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/annotations/index.d.ts +2 -0
- package/annotations/index.d.ts.map +1 -0
- package/annotations/index.js +18 -0
- package/annotations/index.js.map +1 -0
- package/annotations/types.d.ts +35 -0
- package/annotations/types.d.ts.map +1 -0
- package/annotations/types.js +9 -0
- package/annotations/types.js.map +1 -0
- package/behaviors/attack.d.ts +52 -0
- package/behaviors/attack.d.ts.map +1 -0
- package/behaviors/attack.js +161 -0
- package/behaviors/attack.js.map +1 -0
- package/behaviors/behavior.d.ts +67 -0
- package/behaviors/behavior.d.ts.map +1 -0
- package/behaviors/behavior.js +80 -0
- package/behaviors/behavior.js.map +1 -0
- package/behaviors/index.d.ts +21 -0
- package/behaviors/index.d.ts.map +1 -0
- package/behaviors/index.js +39 -0
- package/behaviors/index.js.map +1 -0
- package/capabilities/action-interceptor.d.ts +169 -0
- package/capabilities/action-interceptor.d.ts.map +1 -0
- package/capabilities/action-interceptor.js +15 -0
- package/capabilities/action-interceptor.js.map +1 -0
- package/capabilities/capability-behavior.d.ts +112 -0
- package/capabilities/capability-behavior.d.ts.map +1 -0
- package/capabilities/capability-behavior.js +9 -0
- package/capabilities/capability-behavior.js.map +1 -0
- package/capabilities/capability-defaults.d.ts +67 -0
- package/capabilities/capability-defaults.d.ts.map +1 -0
- package/capabilities/capability-defaults.js +81 -0
- package/capabilities/capability-defaults.js.map +1 -0
- package/capabilities/capability-helpers.d.ts +76 -0
- package/capabilities/capability-helpers.d.ts.map +1 -0
- package/capabilities/capability-helpers.js +112 -0
- package/capabilities/capability-helpers.js.map +1 -0
- package/capabilities/capability-registry.d.ts +115 -0
- package/capabilities/capability-registry.d.ts.map +1 -0
- package/capabilities/capability-registry.js +136 -0
- package/capabilities/capability-registry.js.map +1 -0
- package/capabilities/entity-builder.d.ts +79 -0
- package/capabilities/entity-builder.d.ts.map +1 -0
- package/capabilities/entity-builder.js +116 -0
- package/capabilities/entity-builder.js.map +1 -0
- package/capabilities/index.d.ts +16 -0
- package/capabilities/index.d.ts.map +1 -0
- package/capabilities/index.js +56 -0
- package/capabilities/index.js.map +1 -0
- package/capabilities/interceptor-helpers.d.ts +74 -0
- package/capabilities/interceptor-helpers.d.ts.map +1 -0
- package/capabilities/interceptor-helpers.js +111 -0
- package/capabilities/interceptor-helpers.js.map +1 -0
- package/capabilities/interceptor-registry.d.ts +125 -0
- package/capabilities/interceptor-registry.d.ts.map +1 -0
- package/capabilities/interceptor-registry.js +176 -0
- package/capabilities/interceptor-registry.js.map +1 -0
- package/capabilities/types.d.ts +35 -0
- package/capabilities/types.d.ts.map +1 -0
- package/capabilities/types.js +16 -0
- package/capabilities/types.js.map +1 -0
- package/commands/command-types.d.ts +30 -0
- package/commands/command-types.d.ts.map +1 -0
- package/commands/command-types.js +6 -0
- package/commands/command-types.js.map +1 -0
- package/commands/index.d.ts +7 -0
- package/commands/index.d.ts.map +1 -0
- package/commands/index.js +23 -0
- package/commands/index.js.map +1 -0
- package/commands/parsed-command.d.ts +204 -0
- package/commands/parsed-command.d.ts.map +1 -0
- package/commands/parsed-command.js +25 -0
- package/commands/parsed-command.js.map +1 -0
- package/commands/validated-command.d.ts +52 -0
- package/commands/validated-command.d.ts.map +1 -0
- package/commands/validated-command.js +8 -0
- package/commands/validated-command.js.map +1 -0
- package/constants/action-failures.d.ts +54 -0
- package/constants/action-failures.d.ts.map +1 -0
- package/constants/action-failures.js +68 -0
- package/constants/action-failures.js.map +1 -0
- package/constants/directions.d.ts +32 -0
- package/constants/directions.d.ts.map +1 -0
- package/constants/directions.js +53 -0
- package/constants/directions.js.map +1 -0
- package/constants/if-events.d.ts +5 -0
- package/constants/if-events.d.ts.map +1 -0
- package/constants/if-events.js +10 -0
- package/constants/if-events.js.map +1 -0
- package/constants/index.d.ts +9 -0
- package/constants/index.d.ts.map +1 -0
- package/constants/index.js +25 -0
- package/constants/index.js.map +1 -0
- package/entities/entity-store.d.ts +66 -0
- package/entities/entity-store.d.ts.map +1 -0
- package/entities/entity-store.js +116 -0
- package/entities/entity-store.js.map +1 -0
- package/entities/entity-types.d.ts +40 -0
- package/entities/entity-types.d.ts.map +1 -0
- package/entities/entity-types.js +56 -0
- package/entities/entity-types.js.map +1 -0
- package/entities/if-entity.d.ts +314 -0
- package/entities/if-entity.d.ts.map +1 -0
- package/entities/if-entity.js +621 -0
- package/entities/if-entity.js.map +1 -0
- package/entities/index.d.ts +5 -0
- package/entities/index.d.ts.map +1 -0
- package/entities/index.js +13 -0
- package/entities/index.js.map +1 -0
- package/events/types.d.ts +45 -0
- package/events/types.d.ts.map +1 -0
- package/events/types.js +9 -0
- package/events/types.js.map +1 -0
- package/examples/event-handler-registration.d.ts +14 -0
- package/examples/event-handler-registration.d.ts.map +1 -0
- package/examples/event-handler-registration.js +158 -0
- package/examples/event-handler-registration.js.map +1 -0
- package/extensions/base-extension.d.ts +69 -0
- package/extensions/base-extension.d.ts.map +1 -0
- package/extensions/base-extension.js +83 -0
- package/extensions/base-extension.js.map +1 -0
- package/extensions/index.d.ts +11 -0
- package/extensions/index.d.ts.map +1 -0
- package/extensions/index.js +39 -0
- package/extensions/index.js.map +1 -0
- package/extensions/loader.d.ts +52 -0
- package/extensions/loader.d.ts.map +1 -0
- package/extensions/loader.js +177 -0
- package/extensions/loader.js.map +1 -0
- package/extensions/manager.d.ts +68 -0
- package/extensions/manager.d.ts.map +1 -0
- package/extensions/manager.js +164 -0
- package/extensions/manager.js.map +1 -0
- package/extensions/registry.d.ts +100 -0
- package/extensions/registry.d.ts.map +1 -0
- package/extensions/registry.js +193 -0
- package/extensions/registry.js.map +1 -0
- package/extensions/types.d.ts +226 -0
- package/extensions/types.d.ts.map +1 -0
- package/extensions/types.js +28 -0
- package/extensions/types.js.map +1 -0
- package/index.d.ts +41 -0
- package/index.d.ts.map +1 -0
- package/index.js +71 -0
- package/index.js.map +1 -0
- package/interfaces/command-executor.d.ts +17 -0
- package/interfaces/command-executor.d.ts.map +1 -0
- package/interfaces/command-executor.js +6 -0
- package/interfaces/command-executor.js.map +1 -0
- package/interfaces/command-processor.d.ts +17 -0
- package/interfaces/command-processor.d.ts.map +1 -0
- package/interfaces/command-processor.js +6 -0
- package/interfaces/command-processor.js.map +1 -0
- package/interfaces/command-validator.d.ts +17 -0
- package/interfaces/command-validator.d.ts.map +1 -0
- package/interfaces/command-validator.js +6 -0
- package/interfaces/command-validator.js.map +1 -0
- package/interfaces/index.d.ts +8 -0
- package/interfaces/index.d.ts.map +1 -0
- package/interfaces/index.js +24 -0
- package/interfaces/index.js.map +1 -0
- package/interfaces/language-provider.d.ts +86 -0
- package/interfaces/language-provider.d.ts.map +1 -0
- package/interfaces/language-provider.js +14 -0
- package/interfaces/language-provider.js.map +1 -0
- package/interfaces/parser.d.ts +16 -0
- package/interfaces/parser.d.ts.map +1 -0
- package/interfaces/parser.js +6 -0
- package/interfaces/parser.js.map +1 -0
- package/package.json +1 -16
- package/scope/index.d.ts +8 -0
- package/scope/index.d.ts.map +1 -0
- package/scope/index.js +24 -0
- package/scope/index.js.map +1 -0
- package/scope/scope-evaluator.d.ts +58 -0
- package/scope/scope-evaluator.d.ts.map +1 -0
- package/scope/scope-evaluator.js +207 -0
- package/scope/scope-evaluator.js.map +1 -0
- package/scope/scope-registry.d.ts +59 -0
- package/scope/scope-registry.d.ts.map +1 -0
- package/scope/scope-registry.js +182 -0
- package/scope/scope-registry.js.map +1 -0
- package/scope/scope-rule.d.ts +86 -0
- package/scope/scope-rule.d.ts.map +1 -0
- package/scope/scope-rule.js +7 -0
- package/scope/scope-rule.js.map +1 -0
- package/services/ScopeService.d.ts +8 -0
- package/services/ScopeService.d.ts.map +1 -0
- package/services/ScopeService.js +19 -0
- package/services/ScopeService.js.map +1 -0
- package/services/index.d.ts +2 -0
- package/services/index.d.ts.map +1 -0
- package/services/index.js +6 -0
- package/services/index.js.map +1 -0
- package/test-structure.d.ts +3 -0
- package/test-structure.d.ts.map +1 -0
- package/test-structure.js +26 -0
- package/test-structure.js.map +1 -0
- package/traits/actor/actorBehavior.d.ts +121 -0
- package/traits/actor/actorBehavior.d.ts.map +1 -0
- package/traits/actor/actorBehavior.js +288 -0
- package/traits/actor/actorBehavior.js.map +1 -0
- package/traits/actor/actorTrait.d.ts +158 -0
- package/traits/actor/actorTrait.d.ts.map +1 -0
- package/traits/actor/actorTrait.js +152 -0
- package/traits/actor/actorTrait.js.map +1 -0
- package/traits/actor/index.d.ts +3 -0
- package/traits/actor/index.d.ts.map +1 -0
- package/traits/actor/index.js +11 -0
- package/traits/actor/index.js.map +1 -0
- package/traits/all-traits.d.ts +95 -0
- package/traits/all-traits.d.ts.map +1 -0
- package/traits/all-traits.js +178 -0
- package/traits/all-traits.js.map +1 -0
- package/traits/attached/attachedTrait.d.ts +61 -0
- package/traits/attached/attachedTrait.d.ts.map +1 -0
- package/traits/attached/attachedTrait.js +36 -0
- package/traits/attached/attachedTrait.js.map +1 -0
- package/traits/attached/index.d.ts +2 -0
- package/traits/attached/index.d.ts.map +1 -0
- package/traits/attached/index.js +18 -0
- package/traits/attached/index.js.map +1 -0
- package/traits/breakable/breakableBehavior.d.ts +43 -0
- package/traits/breakable/breakableBehavior.d.ts.map +1 -0
- package/traits/breakable/breakableBehavior.js +70 -0
- package/traits/breakable/breakableBehavior.js.map +1 -0
- package/traits/breakable/breakableTrait.d.ts +22 -0
- package/traits/breakable/breakableTrait.d.ts.map +1 -0
- package/traits/breakable/breakableTrait.js +25 -0
- package/traits/breakable/breakableTrait.js.map +1 -0
- package/traits/breakable/index.d.ts +3 -0
- package/traits/breakable/index.d.ts.map +1 -0
- package/traits/breakable/index.js +8 -0
- package/traits/breakable/index.js.map +1 -0
- package/traits/button/buttonTrait.d.ts +53 -0
- package/traits/button/buttonTrait.d.ts.map +1 -0
- package/traits/button/buttonTrait.js +36 -0
- package/traits/button/buttonTrait.js.map +1 -0
- package/traits/button/index.d.ts +2 -0
- package/traits/button/index.d.ts.map +1 -0
- package/traits/button/index.js +18 -0
- package/traits/button/index.js.map +1 -0
- package/traits/climbable/climbableBehavior.d.ts +37 -0
- package/traits/climbable/climbableBehavior.d.ts.map +1 -0
- package/traits/climbable/climbableBehavior.js +70 -0
- package/traits/climbable/climbableBehavior.js.map +1 -0
- package/traits/climbable/climbableTrait.d.ts +31 -0
- package/traits/climbable/climbableTrait.d.ts.map +1 -0
- package/traits/climbable/climbableTrait.js +47 -0
- package/traits/climbable/climbableTrait.js.map +1 -0
- package/traits/climbable/index.d.ts +6 -0
- package/traits/climbable/index.d.ts.map +1 -0
- package/traits/climbable/index.js +22 -0
- package/traits/climbable/index.js.map +1 -0
- package/traits/clothing/clothingTrait.d.ts +58 -0
- package/traits/clothing/clothingTrait.d.ts.map +1 -0
- package/traits/clothing/clothingTrait.js +78 -0
- package/traits/clothing/clothingTrait.js.map +1 -0
- package/traits/clothing/index.d.ts +2 -0
- package/traits/clothing/index.d.ts.map +1 -0
- package/traits/clothing/index.js +19 -0
- package/traits/clothing/index.js.map +1 -0
- package/traits/combatant/combatantBehavior.d.ts +70 -0
- package/traits/combatant/combatantBehavior.d.ts.map +1 -0
- package/traits/combatant/combatantBehavior.js +155 -0
- package/traits/combatant/combatantBehavior.js.map +1 -0
- package/traits/combatant/combatantTrait.d.ts +98 -0
- package/traits/combatant/combatantTrait.d.ts.map +1 -0
- package/traits/combatant/combatantTrait.js +122 -0
- package/traits/combatant/combatantTrait.js.map +1 -0
- package/traits/combatant/index.d.ts +3 -0
- package/traits/combatant/index.d.ts.map +1 -0
- package/traits/combatant/index.js +8 -0
- package/traits/combatant/index.js.map +1 -0
- package/traits/container/container-utils.d.ts +39 -0
- package/traits/container/container-utils.d.ts.map +1 -0
- package/traits/container/container-utils.js +72 -0
- package/traits/container/container-utils.js.map +1 -0
- package/traits/container/containerBehavior.d.ts +94 -0
- package/traits/container/containerBehavior.d.ts.map +1 -0
- package/traits/container/containerBehavior.js +256 -0
- package/traits/container/containerBehavior.js.map +1 -0
- package/traits/container/containerTrait.d.ts +30 -0
- package/traits/container/containerTrait.d.ts.map +1 -0
- package/traits/container/containerTrait.js +45 -0
- package/traits/container/containerTrait.js.map +1 -0
- package/traits/container/index.d.ts +4 -0
- package/traits/container/index.d.ts.map +1 -0
- package/traits/container/index.js +14 -0
- package/traits/container/index.js.map +1 -0
- package/traits/destructible/destructibleBehavior.d.ts +57 -0
- package/traits/destructible/destructibleBehavior.d.ts.map +1 -0
- package/traits/destructible/destructibleBehavior.js +145 -0
- package/traits/destructible/destructibleBehavior.js.map +1 -0
- package/traits/destructible/destructibleTrait.d.ts +49 -0
- package/traits/destructible/destructibleTrait.d.ts.map +1 -0
- package/traits/destructible/destructibleTrait.js +43 -0
- package/traits/destructible/destructibleTrait.js.map +1 -0
- package/traits/destructible/index.d.ts +3 -0
- package/traits/destructible/index.d.ts.map +1 -0
- package/traits/destructible/index.js +8 -0
- package/traits/destructible/index.js.map +1 -0
- package/traits/door/doorBehavior.d.ts +42 -0
- package/traits/door/doorBehavior.d.ts.map +1 -0
- package/traits/door/doorBehavior.js +76 -0
- package/traits/door/doorBehavior.js.map +1 -0
- package/traits/door/doorTrait.d.ts +19 -0
- package/traits/door/doorTrait.d.ts.map +1 -0
- package/traits/door/doorTrait.js +33 -0
- package/traits/door/doorTrait.js.map +1 -0
- package/traits/door/index.d.ts +3 -0
- package/traits/door/index.d.ts.map +1 -0
- package/traits/door/index.js +9 -0
- package/traits/door/index.js.map +1 -0
- package/traits/edible/edibleBehavior.d.ts +63 -0
- package/traits/edible/edibleBehavior.d.ts.map +1 -0
- package/traits/edible/edibleBehavior.js +157 -0
- package/traits/edible/edibleBehavior.js.map +1 -0
- package/traits/edible/edibleTrait.d.ts +57 -0
- package/traits/edible/edibleTrait.d.ts.map +1 -0
- package/traits/edible/edibleTrait.js +51 -0
- package/traits/edible/edibleTrait.js.map +1 -0
- package/traits/edible/index.d.ts +3 -0
- package/traits/edible/index.d.ts.map +1 -0
- package/traits/edible/index.js +20 -0
- package/traits/edible/index.js.map +1 -0
- package/traits/enterable/enterableTrait.d.ts +33 -0
- package/traits/enterable/enterableTrait.d.ts.map +1 -0
- package/traits/enterable/enterableTrait.js +38 -0
- package/traits/enterable/enterableTrait.js.map +1 -0
- package/traits/enterable/index.d.ts +5 -0
- package/traits/enterable/index.d.ts.map +1 -0
- package/traits/enterable/index.js +21 -0
- package/traits/enterable/index.js.map +1 -0
- package/traits/equipped/equippedTrait.d.ts +46 -0
- package/traits/equipped/equippedTrait.d.ts.map +1 -0
- package/traits/equipped/equippedTrait.js +34 -0
- package/traits/equipped/equippedTrait.js.map +1 -0
- package/traits/equipped/index.d.ts +2 -0
- package/traits/equipped/index.d.ts.map +1 -0
- package/traits/equipped/index.js +6 -0
- package/traits/equipped/index.js.map +1 -0
- package/traits/exit/exitBehavior.d.ts +51 -0
- package/traits/exit/exitBehavior.d.ts.map +1 -0
- package/traits/exit/exitBehavior.js +231 -0
- package/traits/exit/exitBehavior.js.map +1 -0
- package/traits/exit/exitTrait.d.ts +41 -0
- package/traits/exit/exitTrait.d.ts.map +1 -0
- package/traits/exit/exitTrait.js +75 -0
- package/traits/exit/exitTrait.js.map +1 -0
- package/traits/exit/index.d.ts +3 -0
- package/traits/exit/index.d.ts.map +1 -0
- package/traits/exit/index.js +9 -0
- package/traits/exit/index.js.map +1 -0
- package/traits/identity/identityBehavior.d.ts +64 -0
- package/traits/identity/identityBehavior.d.ts.map +1 -0
- package/traits/identity/identityBehavior.js +154 -0
- package/traits/identity/identityBehavior.js.map +1 -0
- package/traits/identity/identityTrait.d.ts +70 -0
- package/traits/identity/identityTrait.d.ts.map +1 -0
- package/traits/identity/identityTrait.js +79 -0
- package/traits/identity/identityTrait.js.map +1 -0
- package/traits/identity/index.d.ts +3 -0
- package/traits/identity/index.d.ts.map +1 -0
- package/traits/identity/index.js +20 -0
- package/traits/identity/index.js.map +1 -0
- package/traits/implementations.d.ts +52 -0
- package/traits/implementations.d.ts.map +1 -0
- package/traits/implementations.js +150 -0
- package/traits/implementations.js.map +1 -0
- package/traits/index.d.ts +37 -0
- package/traits/index.d.ts.map +1 -0
- package/traits/index.js +64 -0
- package/traits/index.js.map +1 -0
- package/traits/light-source/index.d.ts +3 -0
- package/traits/light-source/index.d.ts.map +1 -0
- package/traits/light-source/index.js +9 -0
- package/traits/light-source/index.js.map +1 -0
- package/traits/light-source/lightSourceBehavior.d.ts +57 -0
- package/traits/light-source/lightSourceBehavior.d.ts.map +1 -0
- package/traits/light-source/lightSourceBehavior.js +135 -0
- package/traits/light-source/lightSourceBehavior.js.map +1 -0
- package/traits/light-source/lightSourceTrait.d.ts +28 -0
- package/traits/light-source/lightSourceTrait.d.ts.map +1 -0
- package/traits/light-source/lightSourceTrait.js +37 -0
- package/traits/light-source/lightSourceTrait.js.map +1 -0
- package/traits/lockable/index.d.ts +3 -0
- package/traits/lockable/index.d.ts.map +1 -0
- package/traits/lockable/index.js +20 -0
- package/traits/lockable/index.js.map +1 -0
- package/traits/lockable/lockableBehavior.d.ts +88 -0
- package/traits/lockable/lockableBehavior.d.ts.map +1 -0
- package/traits/lockable/lockableBehavior.js +196 -0
- package/traits/lockable/lockableBehavior.js.map +1 -0
- package/traits/lockable/lockableTrait.d.ts +59 -0
- package/traits/lockable/lockableTrait.d.ts.map +1 -0
- package/traits/lockable/lockableTrait.js +50 -0
- package/traits/lockable/lockableTrait.js.map +1 -0
- package/traits/moveable-scenery/index.d.ts +2 -0
- package/traits/moveable-scenery/index.d.ts.map +1 -0
- package/traits/moveable-scenery/index.js +18 -0
- package/traits/moveable-scenery/index.js.map +1 -0
- package/traits/moveable-scenery/moveableSceneryTrait.d.ts +69 -0
- package/traits/moveable-scenery/moveableSceneryTrait.d.ts.map +1 -0
- package/traits/moveable-scenery/moveableSceneryTrait.js +43 -0
- package/traits/moveable-scenery/moveableSceneryTrait.js.map +1 -0
- package/traits/npc/index.d.ts +5 -0
- package/traits/npc/index.d.ts.map +1 -0
- package/traits/npc/index.js +9 -0
- package/traits/npc/index.js.map +1 -0
- package/traits/npc/npcTrait.d.ts +128 -0
- package/traits/npc/npcTrait.d.ts.map +1 -0
- package/traits/npc/npcTrait.js +180 -0
- package/traits/npc/npcTrait.js.map +1 -0
- package/traits/openable/index.d.ts +3 -0
- package/traits/openable/index.d.ts.map +1 -0
- package/traits/openable/index.js +20 -0
- package/traits/openable/index.js.map +1 -0
- package/traits/openable/openableBehavior.d.ts +64 -0
- package/traits/openable/openableBehavior.d.ts.map +1 -0
- package/traits/openable/openableBehavior.js +109 -0
- package/traits/openable/openableBehavior.js.map +1 -0
- package/traits/openable/openableTrait.d.ts +46 -0
- package/traits/openable/openableTrait.d.ts.map +1 -0
- package/traits/openable/openableTrait.js +42 -0
- package/traits/openable/openableTrait.js.map +1 -0
- package/traits/pullable/index.d.ts +2 -0
- package/traits/pullable/index.d.ts.map +1 -0
- package/traits/pullable/index.js +18 -0
- package/traits/pullable/index.js.map +1 -0
- package/traits/pullable/pullableTrait.d.ts +81 -0
- package/traits/pullable/pullableTrait.d.ts.map +1 -0
- package/traits/pullable/pullableTrait.js +44 -0
- package/traits/pullable/pullableTrait.js.map +1 -0
- package/traits/pushable/index.d.ts +2 -0
- package/traits/pushable/index.d.ts.map +1 -0
- package/traits/pushable/index.js +18 -0
- package/traits/pushable/index.js.map +1 -0
- package/traits/pushable/pushableTrait.d.ts +81 -0
- package/traits/pushable/pushableTrait.d.ts.map +1 -0
- package/traits/pushable/pushableTrait.js +44 -0
- package/traits/pushable/pushableTrait.js.map +1 -0
- package/traits/readable/index.d.ts +3 -0
- package/traits/readable/index.d.ts.map +1 -0
- package/traits/readable/index.js +9 -0
- package/traits/readable/index.js.map +1 -0
- package/traits/readable/readableBehavior.d.ts +42 -0
- package/traits/readable/readableBehavior.d.ts.map +1 -0
- package/traits/readable/readableBehavior.js +174 -0
- package/traits/readable/readableBehavior.js.map +1 -0
- package/traits/readable/readableTrait.d.ts +37 -0
- package/traits/readable/readableTrait.d.ts.map +1 -0
- package/traits/readable/readableTrait.js +51 -0
- package/traits/readable/readableTrait.js.map +1 -0
- package/traits/register-all.d.ts +10 -0
- package/traits/register-all.d.ts.map +1 -0
- package/traits/register-all.js +19 -0
- package/traits/register-all.js.map +1 -0
- package/traits/room/index.d.ts +9 -0
- package/traits/room/index.d.ts.map +1 -0
- package/traits/room/index.js +14 -0
- package/traits/room/index.js.map +1 -0
- package/traits/room/roomBehavior.d.ts +87 -0
- package/traits/room/roomBehavior.d.ts.map +1 -0
- package/traits/room/roomBehavior.js +232 -0
- package/traits/room/roomBehavior.js.map +1 -0
- package/traits/room/roomTrait.d.ts +101 -0
- package/traits/room/roomTrait.d.ts.map +1 -0
- package/traits/room/roomTrait.js +59 -0
- package/traits/room/roomTrait.js.map +1 -0
- package/traits/scenery/index.d.ts +3 -0
- package/traits/scenery/index.d.ts.map +1 -0
- package/traits/scenery/index.js +9 -0
- package/traits/scenery/index.js.map +1 -0
- package/traits/scenery/sceneryBehavior.d.ts +21 -0
- package/traits/scenery/sceneryBehavior.d.ts.map +1 -0
- package/traits/scenery/sceneryBehavior.js +42 -0
- package/traits/scenery/sceneryBehavior.js.map +1 -0
- package/traits/scenery/sceneryTrait.d.ts +30 -0
- package/traits/scenery/sceneryTrait.d.ts.map +1 -0
- package/traits/scenery/sceneryTrait.js +39 -0
- package/traits/scenery/sceneryTrait.js.map +1 -0
- package/traits/story-info/index.d.ts +2 -0
- package/traits/story-info/index.d.ts.map +1 -0
- package/traits/story-info/index.js +6 -0
- package/traits/story-info/index.js.map +1 -0
- package/traits/story-info/storyInfoTrait.d.ts +22 -0
- package/traits/story-info/storyInfoTrait.d.ts.map +1 -0
- package/traits/story-info/storyInfoTrait.js +30 -0
- package/traits/story-info/storyInfoTrait.js.map +1 -0
- package/traits/supporter/index.d.ts +3 -0
- package/traits/supporter/index.d.ts.map +1 -0
- package/traits/supporter/index.js +9 -0
- package/traits/supporter/index.js.map +1 -0
- package/traits/supporter/supporterBehavior.d.ts +83 -0
- package/traits/supporter/supporterBehavior.d.ts.map +1 -0
- package/traits/supporter/supporterBehavior.js +210 -0
- package/traits/supporter/supporterBehavior.js.map +1 -0
- package/traits/supporter/supporterTrait.d.ts +26 -0
- package/traits/supporter/supporterTrait.d.ts.map +1 -0
- package/traits/supporter/supporterTrait.js +30 -0
- package/traits/supporter/supporterTrait.js.map +1 -0
- package/traits/switchable/index.d.ts +3 -0
- package/traits/switchable/index.d.ts.map +1 -0
- package/traits/switchable/index.js +20 -0
- package/traits/switchable/index.js.map +1 -0
- package/traits/switchable/switchableBehavior.d.ts +73 -0
- package/traits/switchable/switchableBehavior.d.ts.map +1 -0
- package/traits/switchable/switchableBehavior.js +191 -0
- package/traits/switchable/switchableBehavior.js.map +1 -0
- package/traits/switchable/switchableTrait.d.ts +61 -0
- package/traits/switchable/switchableTrait.d.ts.map +1 -0
- package/traits/switchable/switchableTrait.js +52 -0
- package/traits/switchable/switchableTrait.js.map +1 -0
- package/traits/trait-types.d.ts +82 -0
- package/traits/trait-types.d.ts.map +1 -0
- package/traits/trait-types.js +150 -0
- package/traits/trait-types.js.map +1 -0
- package/traits/trait.d.ts +44 -0
- package/traits/trait.d.ts.map +1 -0
- package/traits/trait.js +42 -0
- package/traits/trait.js.map +1 -0
- package/traits/vehicle/index.d.ts +6 -0
- package/traits/vehicle/index.d.ts.map +1 -0
- package/traits/vehicle/index.js +22 -0
- package/traits/vehicle/index.js.map +1 -0
- package/traits/vehicle/vehicleBehavior.d.ts +62 -0
- package/traits/vehicle/vehicleBehavior.d.ts.map +1 -0
- package/traits/vehicle/vehicleBehavior.js +145 -0
- package/traits/vehicle/vehicleBehavior.js.map +1 -0
- package/traits/vehicle/vehicleTrait.d.ts +77 -0
- package/traits/vehicle/vehicleTrait.d.ts.map +1 -0
- package/traits/vehicle/vehicleTrait.js +92 -0
- package/traits/vehicle/vehicleTrait.js.map +1 -0
- package/traits/weapon/index.d.ts +3 -0
- package/traits/weapon/index.d.ts.map +1 -0
- package/traits/weapon/index.js +8 -0
- package/traits/weapon/index.js.map +1 -0
- package/traits/weapon/weaponBehavior.d.ts +47 -0
- package/traits/weapon/weaponBehavior.d.ts.map +1 -0
- package/traits/weapon/weaponBehavior.js +106 -0
- package/traits/weapon/weaponBehavior.js.map +1 -0
- package/traits/weapon/weaponTrait.d.ts +67 -0
- package/traits/weapon/weaponTrait.d.ts.map +1 -0
- package/traits/weapon/weaponTrait.js +60 -0
- package/traits/weapon/weaponTrait.js.map +1 -0
- package/traits/wearable/index.d.ts +3 -0
- package/traits/wearable/index.d.ts.map +1 -0
- package/traits/wearable/index.js +20 -0
- package/traits/wearable/index.js.map +1 -0
- package/traits/wearable/wearableBehavior.d.ts +64 -0
- package/traits/wearable/wearableBehavior.d.ts.map +1 -0
- package/traits/wearable/wearableBehavior.js +142 -0
- package/traits/wearable/wearableBehavior.js.map +1 -0
- package/traits/wearable/wearableTrait.d.ts +54 -0
- package/traits/wearable/wearableTrait.d.ts.map +1 -0
- package/traits/wearable/wearableTrait.js +53 -0
- package/traits/wearable/wearableTrait.js.map +1 -0
- package/utils/event-utils.d.ts +30 -0
- package/utils/event-utils.d.ts.map +1 -0
- package/utils/event-utils.js +33 -0
- package/utils/event-utils.js.map +1 -0
- package/world/AuthorModel.d.ts +151 -0
- package/world/AuthorModel.d.ts.map +1 -0
- package/world/AuthorModel.js +416 -0
- package/world/AuthorModel.js.map +1 -0
- package/world/SharedDataStore.d.ts +24 -0
- package/world/SharedDataStore.d.ts.map +1 -0
- package/world/SharedDataStore.js +50 -0
- package/world/SharedDataStore.js.map +1 -0
- package/world/SpatialIndex.d.ts +16 -0
- package/world/SpatialIndex.d.ts.map +1 -0
- package/world/SpatialIndex.js +117 -0
- package/world/SpatialIndex.js.map +1 -0
- package/world/VisibilityBehavior.d.ts +83 -0
- package/world/VisibilityBehavior.d.ts.map +1 -0
- package/world/VisibilityBehavior.js +484 -0
- package/world/VisibilityBehavior.js.map +1 -0
- package/world/WorldModel.d.ts +301 -0
- package/world/WorldModel.d.ts.map +1 -0
- package/world/WorldModel.js +1085 -0
- package/world/WorldModel.js.map +1 -0
- package/world/capabilities.d.ts +36 -0
- package/world/capabilities.d.ts.map +1 -0
- package/world/capabilities.js +18 -0
- package/world/capabilities.js.map +1 -0
- package/world/index.d.ts +7 -0
- package/world/index.d.ts.map +1 -0
- package/world/index.js +21 -0
- package/world/index.js.map +1 -0
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Destructible trait for entities that require multiple hits or specific tools to destroy
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.DestructibleTrait = void 0;
|
|
7
|
+
/**
|
|
8
|
+
* Destructible trait indicates an entity can be destroyed with multiple hits.
|
|
9
|
+
*
|
|
10
|
+
* This trait contains only data - all destruction logic
|
|
11
|
+
* is in DestructibleBehavior. Messages are stored here to be
|
|
12
|
+
* injected into events during the report phase.
|
|
13
|
+
*/
|
|
14
|
+
class DestructibleTrait {
|
|
15
|
+
static type = 'destructible';
|
|
16
|
+
type = 'destructible';
|
|
17
|
+
// DestructibleData properties
|
|
18
|
+
hitPoints;
|
|
19
|
+
maxHitPoints;
|
|
20
|
+
requiresWeapon;
|
|
21
|
+
requiresType;
|
|
22
|
+
transformTo;
|
|
23
|
+
revealExit;
|
|
24
|
+
damageMessage;
|
|
25
|
+
destroyMessage;
|
|
26
|
+
invulnerable;
|
|
27
|
+
armor;
|
|
28
|
+
constructor(data = {}) {
|
|
29
|
+
// Set defaults and merge with provided data
|
|
30
|
+
this.hitPoints = data.hitPoints ?? data.maxHitPoints ?? 3;
|
|
31
|
+
this.maxHitPoints = data.maxHitPoints ?? 3;
|
|
32
|
+
this.requiresWeapon = data.requiresWeapon ?? false;
|
|
33
|
+
this.requiresType = data.requiresType;
|
|
34
|
+
this.transformTo = data.transformTo;
|
|
35
|
+
this.revealExit = data.revealExit;
|
|
36
|
+
this.damageMessage = data.damageMessage;
|
|
37
|
+
this.destroyMessage = data.destroyMessage;
|
|
38
|
+
this.invulnerable = data.invulnerable ?? false;
|
|
39
|
+
this.armor = data.armor ?? 0;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
exports.DestructibleTrait = DestructibleTrait;
|
|
43
|
+
//# sourceMappingURL=destructibleTrait.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"destructibleTrait.js","sourceRoot":"","sources":["../../../../../../../../../../mnt/c/repotemp/sharpee/packages/world-model/src/traits/destructible/destructibleTrait.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAqCH;;;;;;GAMG;AACH,MAAa,iBAAiB;IAC5B,MAAM,CAAU,IAAI,GAAG,cAAuB,CAAC;IACtC,IAAI,GAAG,cAAuB,CAAC;IAExC,8BAA8B;IAC9B,SAAS,CAAS;IAClB,YAAY,CAAS;IACrB,cAAc,CAAU;IACxB,YAAY,CAAU;IACtB,WAAW,CAAU;IACrB,UAAU,CAAU;IACpB,aAAa,CAAU;IACvB,cAAc,CAAU;IACxB,YAAY,CAAU;IACtB,KAAK,CAAS;IAEd,YAAY,OAA0B,EAAE;QACtC,4CAA4C;QAC5C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC;QAC1D,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC;QAC3C,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,IAAI,KAAK,CAAC;QACnD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QACtC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACpC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QAClC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;QACxC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;QAC1C,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI,KAAK,CAAC;QAC/C,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC;IAC/B,CAAC;;AA5BH,8CA6BC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../mnt/c/repotemp/sharpee/packages/world-model/src/traits/destructible/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC3E,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DestructibleBehavior = exports.DestructibleTrait = void 0;
|
|
4
|
+
var destructibleTrait_1 = require("./destructibleTrait");
|
|
5
|
+
Object.defineProperty(exports, "DestructibleTrait", { enumerable: true, get: function () { return destructibleTrait_1.DestructibleTrait; } });
|
|
6
|
+
var destructibleBehavior_1 = require("./destructibleBehavior");
|
|
7
|
+
Object.defineProperty(exports, "DestructibleBehavior", { enumerable: true, get: function () { return destructibleBehavior_1.DestructibleBehavior; } });
|
|
8
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../../../mnt/c/repotemp/sharpee/packages/world-model/src/traits/destructible/index.ts"],"names":[],"mappings":";;;AAAA,yDAA2E;AAAlE,sHAAA,iBAAiB,OAAA;AAC1B,+DAA6E;AAApE,4HAAA,oBAAoB,OAAA"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { Behavior } from '../../behaviors/behavior';
|
|
2
|
+
import { IFEntity } from '../../entities/if-entity';
|
|
3
|
+
/**
|
|
4
|
+
* Behavior for door entities.
|
|
5
|
+
*
|
|
6
|
+
* Handles the logic for doors that connect two rooms.
|
|
7
|
+
*/
|
|
8
|
+
export declare class DoorBehavior extends Behavior {
|
|
9
|
+
static requiredTraits: "door"[];
|
|
10
|
+
/**
|
|
11
|
+
* Get the rooms this door connects
|
|
12
|
+
*/
|
|
13
|
+
static getRooms(door: IFEntity): [string, string];
|
|
14
|
+
/**
|
|
15
|
+
* Get the other room when coming from a specific room
|
|
16
|
+
* @returns The other room ID, or undefined if the door doesn't connect to the current room
|
|
17
|
+
*/
|
|
18
|
+
static getOtherRoom(door: IFEntity, currentRoom: string): string | undefined;
|
|
19
|
+
/**
|
|
20
|
+
* Check if the door can be traversed in both directions
|
|
21
|
+
*/
|
|
22
|
+
static isBidirectional(door: IFEntity): boolean;
|
|
23
|
+
/**
|
|
24
|
+
* Check if the door connects two specific rooms (in any order)
|
|
25
|
+
*/
|
|
26
|
+
static connects(door: IFEntity, room1: string, room2: string): boolean;
|
|
27
|
+
/**
|
|
28
|
+
* Check if the door connects to a specific room
|
|
29
|
+
*/
|
|
30
|
+
static connectsTo(door: IFEntity, roomId: string): boolean;
|
|
31
|
+
/**
|
|
32
|
+
* Get the entry room (for one-way doors)
|
|
33
|
+
* This is the room you can enter from
|
|
34
|
+
*/
|
|
35
|
+
static getEntryRoom(door: IFEntity): string;
|
|
36
|
+
/**
|
|
37
|
+
* Get the exit room (for one-way doors)
|
|
38
|
+
* This is the room you exit to
|
|
39
|
+
*/
|
|
40
|
+
static getExitRoom(door: IFEntity): string;
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=doorBehavior.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doorBehavior.d.ts","sourceRoot":"","sources":["../../../../../../../mnt/c/repotemp/sharpee/packages/world-model/src/traits/door/doorBehavior.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAIpD;;;;GAIG;AACH,qBAAa,YAAa,SAAQ,QAAQ;IACxC,MAAM,CAAC,cAAc,WAAoB;IAEzC;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;IAKjD;;;OAGG;IACH,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAa5E;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO;IAK/C;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO;IAMtE;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO;IAK1D;;;OAGG;IACH,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM;IAK3C;;;OAGG;IACH,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM;CAI3C"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// packages/world-model/src/traits/door/doorBehavior.ts
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.DoorBehavior = void 0;
|
|
5
|
+
const behavior_1 = require("../../behaviors/behavior");
|
|
6
|
+
const trait_types_1 = require("../trait-types");
|
|
7
|
+
/**
|
|
8
|
+
* Behavior for door entities.
|
|
9
|
+
*
|
|
10
|
+
* Handles the logic for doors that connect two rooms.
|
|
11
|
+
*/
|
|
12
|
+
class DoorBehavior extends behavior_1.Behavior {
|
|
13
|
+
static requiredTraits = [trait_types_1.TraitType.DOOR];
|
|
14
|
+
/**
|
|
15
|
+
* Get the rooms this door connects
|
|
16
|
+
*/
|
|
17
|
+
static getRooms(door) {
|
|
18
|
+
const trait = DoorBehavior.require(door, trait_types_1.TraitType.DOOR);
|
|
19
|
+
return [trait.room1, trait.room2];
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Get the other room when coming from a specific room
|
|
23
|
+
* @returns The other room ID, or undefined if the door doesn't connect to the current room
|
|
24
|
+
*/
|
|
25
|
+
static getOtherRoom(door, currentRoom) {
|
|
26
|
+
const trait = DoorBehavior.require(door, trait_types_1.TraitType.DOOR);
|
|
27
|
+
if (trait.room1 === currentRoom) {
|
|
28
|
+
return trait.room2;
|
|
29
|
+
}
|
|
30
|
+
else if (trait.room2 === currentRoom) {
|
|
31
|
+
// Check if traversal is allowed in this direction
|
|
32
|
+
return trait.bidirectional ? trait.room1 : undefined;
|
|
33
|
+
}
|
|
34
|
+
return undefined;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Check if the door can be traversed in both directions
|
|
38
|
+
*/
|
|
39
|
+
static isBidirectional(door) {
|
|
40
|
+
const trait = DoorBehavior.require(door, trait_types_1.TraitType.DOOR);
|
|
41
|
+
return trait.bidirectional;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Check if the door connects two specific rooms (in any order)
|
|
45
|
+
*/
|
|
46
|
+
static connects(door, room1, room2) {
|
|
47
|
+
const trait = DoorBehavior.require(door, trait_types_1.TraitType.DOOR);
|
|
48
|
+
return (trait.room1 === room1 && trait.room2 === room2) ||
|
|
49
|
+
(trait.room1 === room2 && trait.room2 === room1);
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Check if the door connects to a specific room
|
|
53
|
+
*/
|
|
54
|
+
static connectsTo(door, roomId) {
|
|
55
|
+
const trait = DoorBehavior.require(door, trait_types_1.TraitType.DOOR);
|
|
56
|
+
return trait.room1 === roomId || trait.room2 === roomId;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Get the entry room (for one-way doors)
|
|
60
|
+
* This is the room you can enter from
|
|
61
|
+
*/
|
|
62
|
+
static getEntryRoom(door) {
|
|
63
|
+
const trait = DoorBehavior.require(door, trait_types_1.TraitType.DOOR);
|
|
64
|
+
return trait.room1;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Get the exit room (for one-way doors)
|
|
68
|
+
* This is the room you exit to
|
|
69
|
+
*/
|
|
70
|
+
static getExitRoom(door) {
|
|
71
|
+
const trait = DoorBehavior.require(door, trait_types_1.TraitType.DOOR);
|
|
72
|
+
return trait.room2;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
exports.DoorBehavior = DoorBehavior;
|
|
76
|
+
//# sourceMappingURL=doorBehavior.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doorBehavior.js","sourceRoot":"","sources":["../../../../../../../../../../mnt/c/repotemp/sharpee/packages/world-model/src/traits/door/doorBehavior.ts"],"names":[],"mappings":";AAAA,uDAAuD;;;AAEvD,uDAAoD;AAEpD,gDAA2C;AAG3C;;;;GAIG;AACH,MAAa,YAAa,SAAQ,mBAAQ;IACxC,MAAM,CAAC,cAAc,GAAG,CAAC,uBAAS,CAAC,IAAI,CAAC,CAAC;IAEzC;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,IAAc;QAC5B,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAY,IAAI,EAAE,uBAAS,CAAC,IAAI,CAAC,CAAC;QACpE,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,YAAY,CAAC,IAAc,EAAE,WAAmB;QACrD,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAY,IAAI,EAAE,uBAAS,CAAC,IAAI,CAAC,CAAC;QAEpE,IAAI,KAAK,CAAC,KAAK,KAAK,WAAW,EAAE,CAAC;YAChC,OAAO,KAAK,CAAC,KAAK,CAAC;QACrB,CAAC;aAAM,IAAI,KAAK,CAAC,KAAK,KAAK,WAAW,EAAE,CAAC;YACvC,kDAAkD;YAClD,OAAO,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;QACvD,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,IAAc;QACnC,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAY,IAAI,EAAE,uBAAS,CAAC,IAAI,CAAC,CAAC;QACpE,OAAO,KAAK,CAAC,aAAa,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,IAAc,EAAE,KAAa,EAAE,KAAa;QAC1D,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAY,IAAI,EAAE,uBAAS,CAAC,IAAI,CAAC,CAAC;QACpE,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,KAAK,IAAI,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC;YAChD,CAAC,KAAK,CAAC,KAAK,KAAK,KAAK,IAAI,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC;IAC1D,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,IAAc,EAAE,MAAc;QAC9C,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAY,IAAI,EAAE,uBAAS,CAAC,IAAI,CAAC,CAAC;QACpE,OAAO,KAAK,CAAC,KAAK,KAAK,MAAM,IAAI,KAAK,CAAC,KAAK,KAAK,MAAM,CAAC;IAC1D,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,YAAY,CAAC,IAAc;QAChC,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAY,IAAI,EAAE,uBAAS,CAAC,IAAI,CAAC,CAAC;QACpE,OAAO,KAAK,CAAC,KAAK,CAAC;IACrB,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,WAAW,CAAC,IAAc;QAC/B,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAY,IAAI,EAAE,uBAAS,CAAC,IAAI,CAAC,CAAC;QACpE,OAAO,KAAK,CAAC,KAAK,CAAC;IACrB,CAAC;;AArEH,oCAsEC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { ITrait } from '../trait';
|
|
2
|
+
/**
|
|
3
|
+
* Door trait marks an entity as a connection between two rooms.
|
|
4
|
+
*
|
|
5
|
+
* This is a pure data structure - all validation and logic
|
|
6
|
+
* should be handled by DoorBehavior.
|
|
7
|
+
*/
|
|
8
|
+
export declare class DoorTrait implements ITrait {
|
|
9
|
+
static readonly type: "door";
|
|
10
|
+
readonly type: "door";
|
|
11
|
+
/** First room this door connects (must be an entity ID, not a name) */
|
|
12
|
+
room1: string;
|
|
13
|
+
/** Second room this door connects (must be an entity ID, not a name) */
|
|
14
|
+
room2: string;
|
|
15
|
+
/** Whether the door can be traversed in both directions */
|
|
16
|
+
bidirectional: boolean;
|
|
17
|
+
constructor(data?: Partial<DoorTrait>);
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=doorTrait.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doorTrait.d.ts","sourceRoot":"","sources":["../../../../../../../mnt/c/repotemp/sharpee/packages/world-model/src/traits/door/doorTrait.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAGlC;;;;;GAKG;AACH,qBAAa,SAAU,YAAW,MAAM;IACtC,MAAM,CAAC,QAAQ,CAAC,IAAI,SAAkB;IACtC,QAAQ,CAAC,IAAI,SAAkB;IAE/B,uEAAuE;IACvE,KAAK,EAAG,MAAM,CAAC;IAEf,wEAAwE;IACxE,KAAK,EAAG,MAAM,CAAC;IAEf,2DAA2D;IAC3D,aAAa,UAAQ;gBAET,IAAI,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC;CAWtC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// packages/world-model/src/traits/door/doorTrait.ts
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.DoorTrait = void 0;
|
|
5
|
+
const trait_types_1 = require("../trait-types");
|
|
6
|
+
/**
|
|
7
|
+
* Door trait marks an entity as a connection between two rooms.
|
|
8
|
+
*
|
|
9
|
+
* This is a pure data structure - all validation and logic
|
|
10
|
+
* should be handled by DoorBehavior.
|
|
11
|
+
*/
|
|
12
|
+
class DoorTrait {
|
|
13
|
+
static type = trait_types_1.TraitType.DOOR;
|
|
14
|
+
type = trait_types_1.TraitType.DOOR;
|
|
15
|
+
/** First room this door connects (must be an entity ID, not a name) */
|
|
16
|
+
room1;
|
|
17
|
+
/** Second room this door connects (must be an entity ID, not a name) */
|
|
18
|
+
room2;
|
|
19
|
+
/** Whether the door can be traversed in both directions */
|
|
20
|
+
bidirectional = true;
|
|
21
|
+
constructor(data) {
|
|
22
|
+
// Set defaults first
|
|
23
|
+
if (data) {
|
|
24
|
+
Object.assign(this, data);
|
|
25
|
+
}
|
|
26
|
+
// Validate required fields
|
|
27
|
+
if (!this.room1 || !this.room2) {
|
|
28
|
+
throw new Error('Door must connect two rooms');
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
exports.DoorTrait = DoorTrait;
|
|
33
|
+
//# sourceMappingURL=doorTrait.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doorTrait.js","sourceRoot":"","sources":["../../../../../../../../../../mnt/c/repotemp/sharpee/packages/world-model/src/traits/door/doorTrait.ts"],"names":[],"mappings":";AAAA,oDAAoD;;;AAGpD,gDAA2C;AAE3C;;;;;GAKG;AACH,MAAa,SAAS;IACpB,MAAM,CAAU,IAAI,GAAG,uBAAS,CAAC,IAAI,CAAC;IAC7B,IAAI,GAAG,uBAAS,CAAC,IAAI,CAAC;IAE/B,uEAAuE;IACvE,KAAK,CAAU;IAEf,wEAAwE;IACxE,KAAK,CAAU;IAEf,2DAA2D;IAC3D,aAAa,GAAG,IAAI,CAAC;IAErB,YAAY,IAAyB;QACnC,qBAAqB;QACrB,IAAI,IAAI,EAAE,CAAC;YACT,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC5B,CAAC;QAED,2BAA2B;QAC3B,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;;AAvBH,8BAwBC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../mnt/c/repotemp/sharpee/packages/world-model/src/traits/door/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// packages/world-model/src/traits/door/index.ts
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.DoorBehavior = exports.DoorTrait = void 0;
|
|
5
|
+
var doorTrait_1 = require("./doorTrait");
|
|
6
|
+
Object.defineProperty(exports, "DoorTrait", { enumerable: true, get: function () { return doorTrait_1.DoorTrait; } });
|
|
7
|
+
var doorBehavior_1 = require("./doorBehavior");
|
|
8
|
+
Object.defineProperty(exports, "DoorBehavior", { enumerable: true, get: function () { return doorBehavior_1.DoorBehavior; } });
|
|
9
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../../../mnt/c/repotemp/sharpee/packages/world-model/src/traits/door/index.ts"],"names":[],"mappings":";AAAA,gDAAgD;;;AAEhD,yCAAwC;AAA/B,sGAAA,SAAS,OAAA;AAClB,+CAA8C;AAArC,4GAAA,YAAY,OAAA"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { Behavior } from '../../behaviors/behavior';
|
|
2
|
+
import { IFEntity } from '../../entities/if-entity';
|
|
3
|
+
import { TasteQuality } from './edibleTrait';
|
|
4
|
+
import { ISemanticEvent } from "../../src/index";
|
|
5
|
+
/**
|
|
6
|
+
* Behavior for edible entities.
|
|
7
|
+
*
|
|
8
|
+
* Handles the logic for consuming food and drink.
|
|
9
|
+
*/
|
|
10
|
+
export declare class EdibleBehavior extends Behavior {
|
|
11
|
+
static requiredTraits: "edible"[];
|
|
12
|
+
/**
|
|
13
|
+
* Check if an item can be consumed
|
|
14
|
+
* Supports both 'servings' (canonical) and 'consumed' (legacy) property names
|
|
15
|
+
*/
|
|
16
|
+
static canConsume(item: IFEntity): boolean;
|
|
17
|
+
/**
|
|
18
|
+
* Consume the item
|
|
19
|
+
* @returns Events describing what happened
|
|
20
|
+
* Supports both 'servings' (canonical) and 'portions' (legacy) property names
|
|
21
|
+
*/
|
|
22
|
+
static consume(item: IFEntity, actor: IFEntity): ISemanticEvent[];
|
|
23
|
+
/**
|
|
24
|
+
* Check if item is fully consumed
|
|
25
|
+
* Supports both 'servings' (canonical) and 'consumed' (legacy) property names
|
|
26
|
+
*/
|
|
27
|
+
static isEmpty(item: IFEntity): boolean;
|
|
28
|
+
/**
|
|
29
|
+
* Check if this is a liquid
|
|
30
|
+
* Supports both 'liquid' (canonical) and 'isDrink' (legacy) property names
|
|
31
|
+
*/
|
|
32
|
+
static isLiquid(item: IFEntity): boolean;
|
|
33
|
+
/**
|
|
34
|
+
* Get nutrition value
|
|
35
|
+
*/
|
|
36
|
+
static getNutrition(item: IFEntity): number;
|
|
37
|
+
/**
|
|
38
|
+
* Get remaining servings
|
|
39
|
+
* Supports both 'servings' (canonical) and 'portions' (legacy) property names
|
|
40
|
+
*/
|
|
41
|
+
static getServings(item: IFEntity): number;
|
|
42
|
+
/**
|
|
43
|
+
* Check if consuming has special effects
|
|
44
|
+
*/
|
|
45
|
+
static hasEffect(item: IFEntity): boolean;
|
|
46
|
+
/**
|
|
47
|
+
* Get taste quality
|
|
48
|
+
*/
|
|
49
|
+
static getTaste(item: IFEntity): TasteQuality | undefined;
|
|
50
|
+
/**
|
|
51
|
+
* Get effects array
|
|
52
|
+
*/
|
|
53
|
+
static getEffects(item: IFEntity): string[] | undefined;
|
|
54
|
+
/**
|
|
55
|
+
* Check if item has a specific effect
|
|
56
|
+
*/
|
|
57
|
+
static hasSpecificEffect(item: IFEntity, effect: string): boolean;
|
|
58
|
+
/**
|
|
59
|
+
* Check if eating satisfies hunger
|
|
60
|
+
*/
|
|
61
|
+
static satisfiesHunger(item: IFEntity): boolean | undefined;
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=edibleBehavior.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"edibleBehavior.d.ts","sourceRoot":"","sources":["../../../../../../../mnt/c/repotemp/sharpee/packages/world-model/src/traits/edible/edibleBehavior.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEpD,OAAO,EAAe,YAAY,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAe,MAAM,eAAe,CAAC;AAI5D;;;;GAIG;AACH,qBAAa,cAAe,SAAQ,QAAQ;IAC1C,MAAM,CAAC,cAAc,aAAsB;IAE3C;;;OAGG;IACH,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO;IAW1C;;;;OAIG;IACH,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,GAAG,cAAc,EAAE;IA+DjE;;;OAGG;IACH,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO;IAWvC;;;OAGG;IACH,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO;IAMxC;;OAEG;IACH,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM;IAK3C;;;OAGG;IACH,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM;IAS1C;;OAEG;IACH,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO;IAKzC;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,YAAY,GAAG,SAAS;IAKzD;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,EAAE,GAAG,SAAS;IAKvD;;OAEG;IACH,MAAM,CAAC,iBAAiB,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO;IAKjE;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,GAAG,SAAS;CAI5D"}
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// packages/world-model/src/traits/edible/edibleBehavior.ts
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.EdibleBehavior = void 0;
|
|
5
|
+
const behavior_1 = require("../../behaviors/behavior");
|
|
6
|
+
const trait_types_1 = require("../trait-types");
|
|
7
|
+
const core_1 = require("../../src/index.js");
|
|
8
|
+
const if_events_1 = require("../../constants/if-events");
|
|
9
|
+
const action_failures_1 = require("../../constants/action-failures");
|
|
10
|
+
/**
|
|
11
|
+
* Behavior for edible entities.
|
|
12
|
+
*
|
|
13
|
+
* Handles the logic for consuming food and drink.
|
|
14
|
+
*/
|
|
15
|
+
class EdibleBehavior extends behavior_1.Behavior {
|
|
16
|
+
static requiredTraits = [trait_types_1.TraitType.EDIBLE];
|
|
17
|
+
/**
|
|
18
|
+
* Check if an item can be consumed
|
|
19
|
+
* Supports both 'servings' (canonical) and 'consumed' (legacy) property names
|
|
20
|
+
*/
|
|
21
|
+
static canConsume(item) {
|
|
22
|
+
const edible = EdibleBehavior.require(item, trait_types_1.TraitType.EDIBLE);
|
|
23
|
+
// Check legacy 'consumed' flag first
|
|
24
|
+
if (edible.consumed === true) {
|
|
25
|
+
return false;
|
|
26
|
+
}
|
|
27
|
+
// Then check servings (default to 1 if undefined)
|
|
28
|
+
const servings = edible.servings ?? edible.portions ?? 1;
|
|
29
|
+
return servings > 0;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Consume the item
|
|
33
|
+
* @returns Events describing what happened
|
|
34
|
+
* Supports both 'servings' (canonical) and 'portions' (legacy) property names
|
|
35
|
+
*/
|
|
36
|
+
static consume(item, actor) {
|
|
37
|
+
const edible = EdibleBehavior.require(item, trait_types_1.TraitType.EDIBLE);
|
|
38
|
+
// Get current servings (supporting legacy properties)
|
|
39
|
+
let currentServings = edible.servings ?? edible.portions ?? 1;
|
|
40
|
+
const isLiquid = edible.liquid || edible.isDrink || false;
|
|
41
|
+
if (currentServings <= 0 || edible.consumed === true) {
|
|
42
|
+
return [
|
|
43
|
+
(0, core_1.createEvent)(if_events_1.IFEvents.ACTION_FAILED, {
|
|
44
|
+
action: isLiquid ? 'drink' : 'eat',
|
|
45
|
+
reason: action_failures_1.ActionFailureReason.NOTHING_LEFT,
|
|
46
|
+
customMessage: "There's nothing left."
|
|
47
|
+
}, { target: item.id, actor: actor.id })
|
|
48
|
+
];
|
|
49
|
+
}
|
|
50
|
+
// Consume one serving - update both properties for compatibility
|
|
51
|
+
currentServings--;
|
|
52
|
+
edible.servings = currentServings;
|
|
53
|
+
if (edible.portions !== undefined) {
|
|
54
|
+
edible.portions = currentServings;
|
|
55
|
+
}
|
|
56
|
+
// Mark as consumed if no servings left
|
|
57
|
+
if (currentServings <= 0) {
|
|
58
|
+
edible.consumed = true;
|
|
59
|
+
}
|
|
60
|
+
const events = [
|
|
61
|
+
(0, core_1.createEvent)(isLiquid ? if_events_1.IFEvents.ITEM_DRUNK : if_events_1.IFEvents.ITEM_EATEN, {
|
|
62
|
+
nutrition: edible.nutrition,
|
|
63
|
+
servingsLeft: currentServings,
|
|
64
|
+
customMessage: edible.consumeMessage,
|
|
65
|
+
hasEffect: edible.hasEffect,
|
|
66
|
+
effectDescription: edible.effectDescription
|
|
67
|
+
}, { target: item.id, actor: actor.id })
|
|
68
|
+
];
|
|
69
|
+
// If fully consumed, note that
|
|
70
|
+
if (currentServings <= 0) {
|
|
71
|
+
events.push((0, core_1.createEvent)(if_events_1.IFEvents.ITEM_DESTROYED, {
|
|
72
|
+
reason: 'consumed',
|
|
73
|
+
remainsType: edible.remainsType
|
|
74
|
+
}, { target: item.id, actor: actor.id }));
|
|
75
|
+
}
|
|
76
|
+
return events;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Check if item is fully consumed
|
|
80
|
+
* Supports both 'servings' (canonical) and 'consumed' (legacy) property names
|
|
81
|
+
*/
|
|
82
|
+
static isEmpty(item) {
|
|
83
|
+
const edible = EdibleBehavior.require(item, trait_types_1.TraitType.EDIBLE);
|
|
84
|
+
// Check legacy 'consumed' flag first
|
|
85
|
+
if (edible.consumed === true) {
|
|
86
|
+
return true;
|
|
87
|
+
}
|
|
88
|
+
// Then check servings
|
|
89
|
+
const servings = edible.servings ?? edible.portions ?? 1;
|
|
90
|
+
return servings <= 0;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Check if this is a liquid
|
|
94
|
+
* Supports both 'liquid' (canonical) and 'isDrink' (legacy) property names
|
|
95
|
+
*/
|
|
96
|
+
static isLiquid(item) {
|
|
97
|
+
const edible = EdibleBehavior.require(item, trait_types_1.TraitType.EDIBLE);
|
|
98
|
+
// Support both property names for backward compatibility
|
|
99
|
+
return edible.liquid || edible.isDrink || false;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Get nutrition value
|
|
103
|
+
*/
|
|
104
|
+
static getNutrition(item) {
|
|
105
|
+
const edible = EdibleBehavior.require(item, trait_types_1.TraitType.EDIBLE);
|
|
106
|
+
return edible.nutrition;
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Get remaining servings
|
|
110
|
+
* Supports both 'servings' (canonical) and 'portions' (legacy) property names
|
|
111
|
+
*/
|
|
112
|
+
static getServings(item) {
|
|
113
|
+
const edible = EdibleBehavior.require(item, trait_types_1.TraitType.EDIBLE);
|
|
114
|
+
// Check legacy 'consumed' flag - if consumed, return 0
|
|
115
|
+
if (edible.consumed === true) {
|
|
116
|
+
return 0;
|
|
117
|
+
}
|
|
118
|
+
return edible.servings ?? edible.portions ?? 1;
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Check if consuming has special effects
|
|
122
|
+
*/
|
|
123
|
+
static hasEffect(item) {
|
|
124
|
+
const edible = EdibleBehavior.require(item, trait_types_1.TraitType.EDIBLE);
|
|
125
|
+
return edible.hasEffect;
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Get taste quality
|
|
129
|
+
*/
|
|
130
|
+
static getTaste(item) {
|
|
131
|
+
const edible = EdibleBehavior.require(item, trait_types_1.TraitType.EDIBLE);
|
|
132
|
+
return edible.taste;
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Get effects array
|
|
136
|
+
*/
|
|
137
|
+
static getEffects(item) {
|
|
138
|
+
const edible = EdibleBehavior.require(item, trait_types_1.TraitType.EDIBLE);
|
|
139
|
+
return edible.effects;
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Check if item has a specific effect
|
|
143
|
+
*/
|
|
144
|
+
static hasSpecificEffect(item, effect) {
|
|
145
|
+
const effects = EdibleBehavior.getEffects(item);
|
|
146
|
+
return effects?.includes(effect) ?? false;
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Check if eating satisfies hunger
|
|
150
|
+
*/
|
|
151
|
+
static satisfiesHunger(item) {
|
|
152
|
+
const edible = EdibleBehavior.require(item, trait_types_1.TraitType.EDIBLE);
|
|
153
|
+
return edible.satisfiesHunger;
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
exports.EdibleBehavior = EdibleBehavior;
|
|
157
|
+
//# sourceMappingURL=edibleBehavior.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"edibleBehavior.js","sourceRoot":"","sources":["../../../../../../../../../../mnt/c/repotemp/sharpee/packages/world-model/src/traits/edible/edibleBehavior.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { ITrait } from '../trait';
|
|
2
|
+
/** Taste quality values */
|
|
3
|
+
export type TasteQuality = 'delicious' | 'tasty' | 'good' | 'plain' | 'bland' | 'awful' | 'terrible';
|
|
4
|
+
export interface IEdibleData {
|
|
5
|
+
/** Nutrition value (arbitrary units) */
|
|
6
|
+
nutrition?: number;
|
|
7
|
+
/** Number of bites/servings remaining (alias: portions) */
|
|
8
|
+
servings?: number;
|
|
9
|
+
/** Whether this is a liquid (drunk vs eaten) */
|
|
10
|
+
liquid?: boolean;
|
|
11
|
+
/** Custom message when eating/drinking */
|
|
12
|
+
consumeMessage?: string;
|
|
13
|
+
/** What remains after consumption (entity type to create) */
|
|
14
|
+
remainsType?: string;
|
|
15
|
+
/** Whether consuming this has special effects */
|
|
16
|
+
hasEffect?: boolean;
|
|
17
|
+
/** Effect description if hasEffect is true */
|
|
18
|
+
effectDescription?: string;
|
|
19
|
+
/** Weight of the item (since we removed PortableTrait) */
|
|
20
|
+
weight?: number;
|
|
21
|
+
/** Bulk of the item */
|
|
22
|
+
bulk?: number;
|
|
23
|
+
/** Taste quality of the food */
|
|
24
|
+
taste?: TasteQuality;
|
|
25
|
+
/** Array of effect names (e.g., 'poison', 'heal', 'sleep') */
|
|
26
|
+
effects?: string[];
|
|
27
|
+
/** Whether eating this satisfies hunger */
|
|
28
|
+
satisfiesHunger?: boolean;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Edible trait indicates an entity can be eaten or drunk.
|
|
32
|
+
*
|
|
33
|
+
* This trait contains only data - all consumption logic
|
|
34
|
+
* is in EdibleBehavior.
|
|
35
|
+
*/
|
|
36
|
+
export declare class EdibleTrait implements ITrait, IEdibleData {
|
|
37
|
+
static readonly type: "edible";
|
|
38
|
+
readonly type: "edible";
|
|
39
|
+
nutrition: number;
|
|
40
|
+
servings: number;
|
|
41
|
+
liquid: boolean;
|
|
42
|
+
consumeMessage?: string;
|
|
43
|
+
remainsType?: string;
|
|
44
|
+
hasEffect: boolean;
|
|
45
|
+
effectDescription?: string;
|
|
46
|
+
weight: number;
|
|
47
|
+
bulk: number;
|
|
48
|
+
taste?: TasteQuality;
|
|
49
|
+
effects?: string[];
|
|
50
|
+
satisfiesHunger?: boolean;
|
|
51
|
+
constructor(data?: IEdibleData & {
|
|
52
|
+
portions?: number;
|
|
53
|
+
isDrink?: boolean;
|
|
54
|
+
consumed?: boolean;
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=edibleTrait.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"edibleTrait.d.ts","sourceRoot":"","sources":["../../../../../../../mnt/c/repotemp/sharpee/packages/world-model/src/traits/edible/edibleTrait.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAGlC,2BAA2B;AAC3B,MAAM,MAAM,YAAY,GAAG,WAAW,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,UAAU,CAAC;AAErG,MAAM,WAAW,WAAW;IAC1B,wCAAwC;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,gDAAgD;IAChD,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB,0CAA0C;IAC1C,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,6DAA6D;IAC7D,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,iDAAiD;IACjD,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,8CAA8C;IAC9C,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B,0DAA0D;IAC1D,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,uBAAuB;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IAId,gCAAgC;IAChC,KAAK,CAAC,EAAE,YAAY,CAAC;IAErB,8DAA8D;IAC9D,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IAEnB,2CAA2C;IAC3C,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED;;;;;GAKG;AACH,qBAAa,WAAY,YAAW,MAAM,EAAE,WAAW;IACrD,MAAM,CAAC,QAAQ,CAAC,IAAI,WAAoB;IACxC,QAAQ,CAAC,IAAI,WAAoB;IAGjC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IAGb,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,eAAe,CAAC,EAAE,OAAO,CAAC;gBAEd,IAAI,GAAE,WAAW,GAAG;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAO;CAsBlG"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// packages/world-model/src/traits/edible/edibleTrait.ts
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.EdibleTrait = void 0;
|
|
5
|
+
const trait_types_1 = require("../trait-types");
|
|
6
|
+
/**
|
|
7
|
+
* Edible trait indicates an entity can be eaten or drunk.
|
|
8
|
+
*
|
|
9
|
+
* This trait contains only data - all consumption logic
|
|
10
|
+
* is in EdibleBehavior.
|
|
11
|
+
*/
|
|
12
|
+
class EdibleTrait {
|
|
13
|
+
static type = trait_types_1.TraitType.EDIBLE;
|
|
14
|
+
type = trait_types_1.TraitType.EDIBLE;
|
|
15
|
+
// Core EdibleData properties
|
|
16
|
+
nutrition;
|
|
17
|
+
servings;
|
|
18
|
+
liquid;
|
|
19
|
+
consumeMessage;
|
|
20
|
+
remainsType;
|
|
21
|
+
hasEffect;
|
|
22
|
+
effectDescription;
|
|
23
|
+
weight;
|
|
24
|
+
bulk;
|
|
25
|
+
// Extended properties
|
|
26
|
+
taste;
|
|
27
|
+
effects;
|
|
28
|
+
satisfiesHunger;
|
|
29
|
+
constructor(data = {}) {
|
|
30
|
+
// Set defaults and merge with provided data
|
|
31
|
+
// Support both 'servings' and legacy 'portions' naming
|
|
32
|
+
// If consumed is true, set servings to 0
|
|
33
|
+
const baseServings = data.servings ?? data.portions ?? 1;
|
|
34
|
+
this.servings = data.consumed ? 0 : baseServings;
|
|
35
|
+
this.nutrition = data.nutrition ?? 1;
|
|
36
|
+
// Support both 'liquid' and legacy 'isDrink' naming
|
|
37
|
+
this.liquid = data.liquid ?? data.isDrink ?? false;
|
|
38
|
+
this.consumeMessage = data.consumeMessage;
|
|
39
|
+
this.remainsType = data.remainsType;
|
|
40
|
+
this.hasEffect = data.hasEffect ?? (data.effects && data.effects.length > 0) ?? false;
|
|
41
|
+
this.effectDescription = data.effectDescription;
|
|
42
|
+
this.weight = data.weight ?? 1;
|
|
43
|
+
this.bulk = data.bulk ?? 1;
|
|
44
|
+
// Extended properties
|
|
45
|
+
this.taste = data.taste;
|
|
46
|
+
this.effects = data.effects;
|
|
47
|
+
this.satisfiesHunger = data.satisfiesHunger;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
exports.EdibleTrait = EdibleTrait;
|
|
51
|
+
//# sourceMappingURL=edibleTrait.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"edibleTrait.js","sourceRoot":"","sources":["../../../../../../../../../../mnt/c/repotemp/sharpee/packages/world-model/src/traits/edible/edibleTrait.ts"],"names":[],"mappings":";AAAA,wDAAwD;;;AAGxD,gDAA2C;AA6C3C;;;;;GAKG;AACH,MAAa,WAAW;IACtB,MAAM,CAAU,IAAI,GAAG,uBAAS,CAAC,MAAM,CAAC;IAC/B,IAAI,GAAG,uBAAS,CAAC,MAAM,CAAC;IAEjC,6BAA6B;IAC7B,SAAS,CAAS;IAClB,QAAQ,CAAS;IACjB,MAAM,CAAU;IAChB,cAAc,CAAU;IACxB,WAAW,CAAU;IACrB,SAAS,CAAU;IACnB,iBAAiB,CAAU;IAC3B,MAAM,CAAS;IACf,IAAI,CAAS;IAEb,sBAAsB;IACtB,KAAK,CAAgB;IACrB,OAAO,CAAY;IACnB,eAAe,CAAW;IAE1B,YAAY,OAAmF,EAAE;QAC/F,4CAA4C;QAC5C,uDAAuD;QACvD,yCAAyC;QACzC,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC;QACzD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;QAEjD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC;QACrC,oDAAoD;QACpD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,IAAI,KAAK,CAAC;QACnD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;QAC1C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACpC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC;QACtF,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC;QAChD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC;QAC/B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC;QAE3B,sBAAsB;QACtB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACxB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC5B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;IAC9C,CAAC;;AAzCH,kCA0CC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../mnt/c/repotemp/sharpee/packages/world-model/src/traits/edible/index.ts"],"names":[],"mappings":"AAEA,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC"}
|