@sharpee/world-model 0.9.62-beta → 0.9.66-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/README.md +0 -0
- package/package.json +17 -30
- package/LICENSE +0 -21
- package/dist-npm/annotations/index.d.ts +0 -2
- package/dist-npm/annotations/index.d.ts.map +0 -1
- package/dist-npm/annotations/index.js +0 -18
- package/dist-npm/annotations/index.js.map +0 -1
- package/dist-npm/annotations/types.d.ts +0 -35
- package/dist-npm/annotations/types.d.ts.map +0 -1
- package/dist-npm/annotations/types.js +0 -9
- package/dist-npm/annotations/types.js.map +0 -1
- package/dist-npm/behaviors/attack.d.ts +0 -52
- package/dist-npm/behaviors/attack.d.ts.map +0 -1
- package/dist-npm/behaviors/attack.js +0 -161
- package/dist-npm/behaviors/attack.js.map +0 -1
- package/dist-npm/behaviors/behavior.d.ts +0 -67
- package/dist-npm/behaviors/behavior.d.ts.map +0 -1
- package/dist-npm/behaviors/behavior.js +0 -80
- package/dist-npm/behaviors/behavior.js.map +0 -1
- package/dist-npm/behaviors/index.d.ts +0 -21
- package/dist-npm/behaviors/index.d.ts.map +0 -1
- package/dist-npm/behaviors/index.js +0 -39
- package/dist-npm/behaviors/index.js.map +0 -1
- package/dist-npm/capabilities/action-interceptor.d.ts +0 -169
- package/dist-npm/capabilities/action-interceptor.d.ts.map +0 -1
- package/dist-npm/capabilities/action-interceptor.js +0 -15
- package/dist-npm/capabilities/action-interceptor.js.map +0 -1
- package/dist-npm/capabilities/capability-behavior.d.ts +0 -112
- package/dist-npm/capabilities/capability-behavior.d.ts.map +0 -1
- package/dist-npm/capabilities/capability-behavior.js +0 -9
- package/dist-npm/capabilities/capability-behavior.js.map +0 -1
- package/dist-npm/capabilities/capability-defaults.d.ts +0 -67
- package/dist-npm/capabilities/capability-defaults.d.ts.map +0 -1
- package/dist-npm/capabilities/capability-defaults.js +0 -81
- package/dist-npm/capabilities/capability-defaults.js.map +0 -1
- package/dist-npm/capabilities/capability-helpers.d.ts +0 -76
- package/dist-npm/capabilities/capability-helpers.d.ts.map +0 -1
- package/dist-npm/capabilities/capability-helpers.js +0 -112
- package/dist-npm/capabilities/capability-helpers.js.map +0 -1
- package/dist-npm/capabilities/capability-registry.d.ts +0 -115
- package/dist-npm/capabilities/capability-registry.d.ts.map +0 -1
- package/dist-npm/capabilities/capability-registry.js +0 -136
- package/dist-npm/capabilities/capability-registry.js.map +0 -1
- package/dist-npm/capabilities/entity-builder.d.ts +0 -79
- package/dist-npm/capabilities/entity-builder.d.ts.map +0 -1
- package/dist-npm/capabilities/entity-builder.js +0 -116
- package/dist-npm/capabilities/entity-builder.js.map +0 -1
- package/dist-npm/capabilities/index.d.ts +0 -16
- package/dist-npm/capabilities/index.d.ts.map +0 -1
- package/dist-npm/capabilities/index.js +0 -56
- package/dist-npm/capabilities/index.js.map +0 -1
- package/dist-npm/capabilities/interceptor-helpers.d.ts +0 -74
- package/dist-npm/capabilities/interceptor-helpers.d.ts.map +0 -1
- package/dist-npm/capabilities/interceptor-helpers.js +0 -111
- package/dist-npm/capabilities/interceptor-helpers.js.map +0 -1
- package/dist-npm/capabilities/interceptor-registry.d.ts +0 -125
- package/dist-npm/capabilities/interceptor-registry.d.ts.map +0 -1
- package/dist-npm/capabilities/interceptor-registry.js +0 -176
- package/dist-npm/capabilities/interceptor-registry.js.map +0 -1
- package/dist-npm/capabilities/types.d.ts +0 -35
- package/dist-npm/capabilities/types.d.ts.map +0 -1
- package/dist-npm/capabilities/types.js +0 -16
- package/dist-npm/capabilities/types.js.map +0 -1
- package/dist-npm/commands/command-types.d.ts +0 -30
- package/dist-npm/commands/command-types.d.ts.map +0 -1
- package/dist-npm/commands/command-types.js +0 -6
- package/dist-npm/commands/command-types.js.map +0 -1
- package/dist-npm/commands/index.d.ts +0 -7
- package/dist-npm/commands/index.d.ts.map +0 -1
- package/dist-npm/commands/index.js +0 -23
- package/dist-npm/commands/index.js.map +0 -1
- package/dist-npm/commands/parsed-command.d.ts +0 -204
- package/dist-npm/commands/parsed-command.d.ts.map +0 -1
- package/dist-npm/commands/parsed-command.js +0 -25
- package/dist-npm/commands/parsed-command.js.map +0 -1
- package/dist-npm/commands/validated-command.d.ts +0 -52
- package/dist-npm/commands/validated-command.d.ts.map +0 -1
- package/dist-npm/commands/validated-command.js +0 -8
- package/dist-npm/commands/validated-command.js.map +0 -1
- package/dist-npm/constants/action-failures.d.ts +0 -54
- package/dist-npm/constants/action-failures.d.ts.map +0 -1
- package/dist-npm/constants/action-failures.js +0 -68
- package/dist-npm/constants/action-failures.js.map +0 -1
- package/dist-npm/constants/directions.d.ts +0 -32
- package/dist-npm/constants/directions.d.ts.map +0 -1
- package/dist-npm/constants/directions.js +0 -53
- package/dist-npm/constants/directions.js.map +0 -1
- package/dist-npm/constants/if-events.d.ts +0 -5
- package/dist-npm/constants/if-events.d.ts.map +0 -1
- package/dist-npm/constants/if-events.js +0 -10
- package/dist-npm/constants/if-events.js.map +0 -1
- package/dist-npm/constants/index.d.ts +0 -9
- package/dist-npm/constants/index.d.ts.map +0 -1
- package/dist-npm/constants/index.js +0 -25
- package/dist-npm/constants/index.js.map +0 -1
- package/dist-npm/entities/entity-store.d.ts +0 -66
- package/dist-npm/entities/entity-store.d.ts.map +0 -1
- package/dist-npm/entities/entity-store.js +0 -116
- package/dist-npm/entities/entity-store.js.map +0 -1
- package/dist-npm/entities/entity-types.d.ts +0 -40
- package/dist-npm/entities/entity-types.d.ts.map +0 -1
- package/dist-npm/entities/entity-types.js +0 -56
- package/dist-npm/entities/entity-types.js.map +0 -1
- package/dist-npm/entities/if-entity.d.ts +0 -314
- package/dist-npm/entities/if-entity.d.ts.map +0 -1
- package/dist-npm/entities/if-entity.js +0 -621
- package/dist-npm/entities/if-entity.js.map +0 -1
- package/dist-npm/entities/index.d.ts +0 -5
- package/dist-npm/entities/index.d.ts.map +0 -1
- package/dist-npm/entities/index.js +0 -13
- package/dist-npm/entities/index.js.map +0 -1
- package/dist-npm/events/types.d.ts +0 -45
- package/dist-npm/events/types.d.ts.map +0 -1
- package/dist-npm/events/types.js +0 -9
- package/dist-npm/events/types.js.map +0 -1
- package/dist-npm/examples/event-handler-registration.d.ts +0 -14
- package/dist-npm/examples/event-handler-registration.d.ts.map +0 -1
- package/dist-npm/examples/event-handler-registration.js +0 -158
- package/dist-npm/examples/event-handler-registration.js.map +0 -1
- package/dist-npm/extensions/base-extension.d.ts +0 -69
- package/dist-npm/extensions/base-extension.d.ts.map +0 -1
- package/dist-npm/extensions/base-extension.js +0 -83
- package/dist-npm/extensions/base-extension.js.map +0 -1
- package/dist-npm/extensions/index.d.ts +0 -11
- package/dist-npm/extensions/index.d.ts.map +0 -1
- package/dist-npm/extensions/index.js +0 -39
- package/dist-npm/extensions/index.js.map +0 -1
- package/dist-npm/extensions/loader.d.ts +0 -52
- package/dist-npm/extensions/loader.d.ts.map +0 -1
- package/dist-npm/extensions/loader.js +0 -177
- package/dist-npm/extensions/loader.js.map +0 -1
- package/dist-npm/extensions/manager.d.ts +0 -68
- package/dist-npm/extensions/manager.d.ts.map +0 -1
- package/dist-npm/extensions/manager.js +0 -164
- package/dist-npm/extensions/manager.js.map +0 -1
- package/dist-npm/extensions/registry.d.ts +0 -100
- package/dist-npm/extensions/registry.d.ts.map +0 -1
- package/dist-npm/extensions/registry.js +0 -193
- package/dist-npm/extensions/registry.js.map +0 -1
- package/dist-npm/extensions/types.d.ts +0 -226
- package/dist-npm/extensions/types.d.ts.map +0 -1
- package/dist-npm/extensions/types.js +0 -28
- package/dist-npm/extensions/types.js.map +0 -1
- package/dist-npm/index.d.ts +0 -40
- package/dist-npm/index.d.ts.map +0 -1
- package/dist-npm/index.js +0 -70
- package/dist-npm/index.js.map +0 -1
- package/dist-npm/interfaces/command-executor.d.ts +0 -17
- package/dist-npm/interfaces/command-executor.d.ts.map +0 -1
- package/dist-npm/interfaces/command-executor.js +0 -6
- package/dist-npm/interfaces/command-executor.js.map +0 -1
- package/dist-npm/interfaces/command-processor.d.ts +0 -17
- package/dist-npm/interfaces/command-processor.d.ts.map +0 -1
- package/dist-npm/interfaces/command-processor.js +0 -6
- package/dist-npm/interfaces/command-processor.js.map +0 -1
- package/dist-npm/interfaces/command-validator.d.ts +0 -17
- package/dist-npm/interfaces/command-validator.d.ts.map +0 -1
- package/dist-npm/interfaces/command-validator.js +0 -6
- package/dist-npm/interfaces/command-validator.js.map +0 -1
- package/dist-npm/interfaces/index.d.ts +0 -8
- package/dist-npm/interfaces/index.d.ts.map +0 -1
- package/dist-npm/interfaces/index.js +0 -24
- package/dist-npm/interfaces/index.js.map +0 -1
- package/dist-npm/interfaces/language-provider.d.ts +0 -86
- package/dist-npm/interfaces/language-provider.d.ts.map +0 -1
- package/dist-npm/interfaces/language-provider.js +0 -14
- package/dist-npm/interfaces/language-provider.js.map +0 -1
- package/dist-npm/interfaces/parser.d.ts +0 -16
- package/dist-npm/interfaces/parser.d.ts.map +0 -1
- package/dist-npm/interfaces/parser.js +0 -6
- package/dist-npm/interfaces/parser.js.map +0 -1
- package/dist-npm/scope/index.d.ts +0 -8
- package/dist-npm/scope/index.d.ts.map +0 -1
- package/dist-npm/scope/index.js +0 -24
- package/dist-npm/scope/index.js.map +0 -1
- package/dist-npm/scope/scope-evaluator.d.ts +0 -58
- package/dist-npm/scope/scope-evaluator.d.ts.map +0 -1
- package/dist-npm/scope/scope-evaluator.js +0 -207
- package/dist-npm/scope/scope-evaluator.js.map +0 -1
- package/dist-npm/scope/scope-registry.d.ts +0 -59
- package/dist-npm/scope/scope-registry.d.ts.map +0 -1
- package/dist-npm/scope/scope-registry.js +0 -182
- package/dist-npm/scope/scope-registry.js.map +0 -1
- package/dist-npm/scope/scope-rule.d.ts +0 -86
- package/dist-npm/scope/scope-rule.d.ts.map +0 -1
- package/dist-npm/scope/scope-rule.js +0 -7
- package/dist-npm/scope/scope-rule.js.map +0 -1
- package/dist-npm/services/ScopeService.d.ts +0 -8
- package/dist-npm/services/ScopeService.d.ts.map +0 -1
- package/dist-npm/services/ScopeService.js +0 -19
- package/dist-npm/services/ScopeService.js.map +0 -1
- package/dist-npm/services/index.d.ts +0 -2
- package/dist-npm/services/index.d.ts.map +0 -1
- package/dist-npm/services/index.js +0 -6
- package/dist-npm/services/index.js.map +0 -1
- package/dist-npm/test-structure.d.ts +0 -3
- package/dist-npm/test-structure.d.ts.map +0 -1
- package/dist-npm/test-structure.js +0 -26
- package/dist-npm/test-structure.js.map +0 -1
- package/dist-npm/traits/actor/actorBehavior.d.ts +0 -121
- package/dist-npm/traits/actor/actorBehavior.d.ts.map +0 -1
- package/dist-npm/traits/actor/actorBehavior.js +0 -288
- package/dist-npm/traits/actor/actorBehavior.js.map +0 -1
- package/dist-npm/traits/actor/actorTrait.d.ts +0 -158
- package/dist-npm/traits/actor/actorTrait.d.ts.map +0 -1
- package/dist-npm/traits/actor/actorTrait.js +0 -152
- package/dist-npm/traits/actor/actorTrait.js.map +0 -1
- package/dist-npm/traits/actor/index.d.ts +0 -3
- package/dist-npm/traits/actor/index.d.ts.map +0 -1
- package/dist-npm/traits/actor/index.js +0 -11
- package/dist-npm/traits/actor/index.js.map +0 -1
- package/dist-npm/traits/all-traits.d.ts +0 -95
- package/dist-npm/traits/all-traits.d.ts.map +0 -1
- package/dist-npm/traits/all-traits.js +0 -178
- package/dist-npm/traits/all-traits.js.map +0 -1
- package/dist-npm/traits/attached/attachedTrait.d.ts +0 -61
- package/dist-npm/traits/attached/attachedTrait.d.ts.map +0 -1
- package/dist-npm/traits/attached/attachedTrait.js +0 -36
- package/dist-npm/traits/attached/attachedTrait.js.map +0 -1
- package/dist-npm/traits/attached/index.d.ts +0 -2
- package/dist-npm/traits/attached/index.d.ts.map +0 -1
- package/dist-npm/traits/attached/index.js +0 -18
- package/dist-npm/traits/attached/index.js.map +0 -1
- package/dist-npm/traits/breakable/breakableBehavior.d.ts +0 -43
- package/dist-npm/traits/breakable/breakableBehavior.d.ts.map +0 -1
- package/dist-npm/traits/breakable/breakableBehavior.js +0 -70
- package/dist-npm/traits/breakable/breakableBehavior.js.map +0 -1
- package/dist-npm/traits/breakable/breakableTrait.d.ts +0 -22
- package/dist-npm/traits/breakable/breakableTrait.d.ts.map +0 -1
- package/dist-npm/traits/breakable/breakableTrait.js +0 -25
- package/dist-npm/traits/breakable/breakableTrait.js.map +0 -1
- package/dist-npm/traits/breakable/index.d.ts +0 -3
- package/dist-npm/traits/breakable/index.d.ts.map +0 -1
- package/dist-npm/traits/breakable/index.js +0 -8
- package/dist-npm/traits/breakable/index.js.map +0 -1
- package/dist-npm/traits/button/buttonTrait.d.ts +0 -53
- package/dist-npm/traits/button/buttonTrait.d.ts.map +0 -1
- package/dist-npm/traits/button/buttonTrait.js +0 -36
- package/dist-npm/traits/button/buttonTrait.js.map +0 -1
- package/dist-npm/traits/button/index.d.ts +0 -2
- package/dist-npm/traits/button/index.d.ts.map +0 -1
- package/dist-npm/traits/button/index.js +0 -18
- package/dist-npm/traits/button/index.js.map +0 -1
- package/dist-npm/traits/climbable/climbableBehavior.d.ts +0 -37
- package/dist-npm/traits/climbable/climbableBehavior.d.ts.map +0 -1
- package/dist-npm/traits/climbable/climbableBehavior.js +0 -70
- package/dist-npm/traits/climbable/climbableBehavior.js.map +0 -1
- package/dist-npm/traits/climbable/climbableTrait.d.ts +0 -31
- package/dist-npm/traits/climbable/climbableTrait.d.ts.map +0 -1
- package/dist-npm/traits/climbable/climbableTrait.js +0 -47
- package/dist-npm/traits/climbable/climbableTrait.js.map +0 -1
- package/dist-npm/traits/climbable/index.d.ts +0 -6
- package/dist-npm/traits/climbable/index.d.ts.map +0 -1
- package/dist-npm/traits/climbable/index.js +0 -22
- package/dist-npm/traits/climbable/index.js.map +0 -1
- package/dist-npm/traits/clothing/clothingTrait.d.ts +0 -58
- package/dist-npm/traits/clothing/clothingTrait.d.ts.map +0 -1
- package/dist-npm/traits/clothing/clothingTrait.js +0 -78
- package/dist-npm/traits/clothing/clothingTrait.js.map +0 -1
- package/dist-npm/traits/clothing/index.d.ts +0 -2
- package/dist-npm/traits/clothing/index.d.ts.map +0 -1
- package/dist-npm/traits/clothing/index.js +0 -19
- package/dist-npm/traits/clothing/index.js.map +0 -1
- package/dist-npm/traits/combatant/combatantBehavior.d.ts +0 -70
- package/dist-npm/traits/combatant/combatantBehavior.d.ts.map +0 -1
- package/dist-npm/traits/combatant/combatantBehavior.js +0 -155
- package/dist-npm/traits/combatant/combatantBehavior.js.map +0 -1
- package/dist-npm/traits/combatant/combatantTrait.d.ts +0 -98
- package/dist-npm/traits/combatant/combatantTrait.d.ts.map +0 -1
- package/dist-npm/traits/combatant/combatantTrait.js +0 -122
- package/dist-npm/traits/combatant/combatantTrait.js.map +0 -1
- package/dist-npm/traits/combatant/index.d.ts +0 -3
- package/dist-npm/traits/combatant/index.d.ts.map +0 -1
- package/dist-npm/traits/combatant/index.js +0 -8
- package/dist-npm/traits/combatant/index.js.map +0 -1
- package/dist-npm/traits/container/container-utils.d.ts +0 -39
- package/dist-npm/traits/container/container-utils.d.ts.map +0 -1
- package/dist-npm/traits/container/container-utils.js +0 -72
- package/dist-npm/traits/container/container-utils.js.map +0 -1
- package/dist-npm/traits/container/containerBehavior.d.ts +0 -94
- package/dist-npm/traits/container/containerBehavior.d.ts.map +0 -1
- package/dist-npm/traits/container/containerBehavior.js +0 -256
- package/dist-npm/traits/container/containerBehavior.js.map +0 -1
- package/dist-npm/traits/container/containerTrait.d.ts +0 -30
- package/dist-npm/traits/container/containerTrait.d.ts.map +0 -1
- package/dist-npm/traits/container/containerTrait.js +0 -45
- package/dist-npm/traits/container/containerTrait.js.map +0 -1
- package/dist-npm/traits/container/index.d.ts +0 -4
- package/dist-npm/traits/container/index.d.ts.map +0 -1
- package/dist-npm/traits/container/index.js +0 -14
- package/dist-npm/traits/container/index.js.map +0 -1
- package/dist-npm/traits/destructible/destructibleBehavior.d.ts +0 -57
- package/dist-npm/traits/destructible/destructibleBehavior.d.ts.map +0 -1
- package/dist-npm/traits/destructible/destructibleBehavior.js +0 -145
- package/dist-npm/traits/destructible/destructibleBehavior.js.map +0 -1
- package/dist-npm/traits/destructible/destructibleTrait.d.ts +0 -49
- package/dist-npm/traits/destructible/destructibleTrait.d.ts.map +0 -1
- package/dist-npm/traits/destructible/destructibleTrait.js +0 -43
- package/dist-npm/traits/destructible/destructibleTrait.js.map +0 -1
- package/dist-npm/traits/destructible/index.d.ts +0 -3
- package/dist-npm/traits/destructible/index.d.ts.map +0 -1
- package/dist-npm/traits/destructible/index.js +0 -8
- package/dist-npm/traits/destructible/index.js.map +0 -1
- package/dist-npm/traits/door/doorBehavior.d.ts +0 -42
- package/dist-npm/traits/door/doorBehavior.d.ts.map +0 -1
- package/dist-npm/traits/door/doorBehavior.js +0 -76
- package/dist-npm/traits/door/doorBehavior.js.map +0 -1
- package/dist-npm/traits/door/doorTrait.d.ts +0 -19
- package/dist-npm/traits/door/doorTrait.d.ts.map +0 -1
- package/dist-npm/traits/door/doorTrait.js +0 -33
- package/dist-npm/traits/door/doorTrait.js.map +0 -1
- package/dist-npm/traits/door/index.d.ts +0 -3
- package/dist-npm/traits/door/index.d.ts.map +0 -1
- package/dist-npm/traits/door/index.js +0 -9
- package/dist-npm/traits/door/index.js.map +0 -1
- package/dist-npm/traits/edible/edibleBehavior.d.ts +0 -63
- package/dist-npm/traits/edible/edibleBehavior.d.ts.map +0 -1
- package/dist-npm/traits/edible/edibleBehavior.js +0 -157
- package/dist-npm/traits/edible/edibleBehavior.js.map +0 -1
- package/dist-npm/traits/edible/edibleTrait.d.ts +0 -57
- package/dist-npm/traits/edible/edibleTrait.d.ts.map +0 -1
- package/dist-npm/traits/edible/edibleTrait.js +0 -51
- package/dist-npm/traits/edible/edibleTrait.js.map +0 -1
- package/dist-npm/traits/edible/index.d.ts +0 -3
- package/dist-npm/traits/edible/index.d.ts.map +0 -1
- package/dist-npm/traits/edible/index.js +0 -20
- package/dist-npm/traits/edible/index.js.map +0 -1
- package/dist-npm/traits/enterable/enterableTrait.d.ts +0 -33
- package/dist-npm/traits/enterable/enterableTrait.d.ts.map +0 -1
- package/dist-npm/traits/enterable/enterableTrait.js +0 -38
- package/dist-npm/traits/enterable/enterableTrait.js.map +0 -1
- package/dist-npm/traits/enterable/index.d.ts +0 -5
- package/dist-npm/traits/enterable/index.d.ts.map +0 -1
- package/dist-npm/traits/enterable/index.js +0 -21
- package/dist-npm/traits/enterable/index.js.map +0 -1
- package/dist-npm/traits/equipped/equippedTrait.d.ts +0 -46
- package/dist-npm/traits/equipped/equippedTrait.d.ts.map +0 -1
- package/dist-npm/traits/equipped/equippedTrait.js +0 -34
- package/dist-npm/traits/equipped/equippedTrait.js.map +0 -1
- package/dist-npm/traits/equipped/index.d.ts +0 -2
- package/dist-npm/traits/equipped/index.d.ts.map +0 -1
- package/dist-npm/traits/equipped/index.js +0 -6
- package/dist-npm/traits/equipped/index.js.map +0 -1
- package/dist-npm/traits/exit/exitBehavior.d.ts +0 -51
- package/dist-npm/traits/exit/exitBehavior.d.ts.map +0 -1
- package/dist-npm/traits/exit/exitBehavior.js +0 -231
- package/dist-npm/traits/exit/exitBehavior.js.map +0 -1
- package/dist-npm/traits/exit/exitTrait.d.ts +0 -41
- package/dist-npm/traits/exit/exitTrait.d.ts.map +0 -1
- package/dist-npm/traits/exit/exitTrait.js +0 -75
- package/dist-npm/traits/exit/exitTrait.js.map +0 -1
- package/dist-npm/traits/exit/index.d.ts +0 -3
- package/dist-npm/traits/exit/index.d.ts.map +0 -1
- package/dist-npm/traits/exit/index.js +0 -9
- package/dist-npm/traits/exit/index.js.map +0 -1
- package/dist-npm/traits/identity/identityBehavior.d.ts +0 -64
- package/dist-npm/traits/identity/identityBehavior.d.ts.map +0 -1
- package/dist-npm/traits/identity/identityBehavior.js +0 -154
- package/dist-npm/traits/identity/identityBehavior.js.map +0 -1
- package/dist-npm/traits/identity/identityTrait.d.ts +0 -70
- package/dist-npm/traits/identity/identityTrait.d.ts.map +0 -1
- package/dist-npm/traits/identity/identityTrait.js +0 -79
- package/dist-npm/traits/identity/identityTrait.js.map +0 -1
- package/dist-npm/traits/identity/index.d.ts +0 -3
- package/dist-npm/traits/identity/index.d.ts.map +0 -1
- package/dist-npm/traits/identity/index.js +0 -20
- package/dist-npm/traits/identity/index.js.map +0 -1
- package/dist-npm/traits/implementations.d.ts +0 -51
- package/dist-npm/traits/implementations.d.ts.map +0 -1
- package/dist-npm/traits/implementations.js +0 -145
- package/dist-npm/traits/implementations.js.map +0 -1
- package/dist-npm/traits/index.d.ts +0 -36
- package/dist-npm/traits/index.d.ts.map +0 -1
- package/dist-npm/traits/index.js +0 -62
- package/dist-npm/traits/index.js.map +0 -1
- package/dist-npm/traits/light-source/index.d.ts +0 -3
- package/dist-npm/traits/light-source/index.d.ts.map +0 -1
- package/dist-npm/traits/light-source/index.js +0 -9
- package/dist-npm/traits/light-source/index.js.map +0 -1
- package/dist-npm/traits/light-source/lightSourceBehavior.d.ts +0 -57
- package/dist-npm/traits/light-source/lightSourceBehavior.d.ts.map +0 -1
- package/dist-npm/traits/light-source/lightSourceBehavior.js +0 -135
- package/dist-npm/traits/light-source/lightSourceBehavior.js.map +0 -1
- package/dist-npm/traits/light-source/lightSourceTrait.d.ts +0 -28
- package/dist-npm/traits/light-source/lightSourceTrait.d.ts.map +0 -1
- package/dist-npm/traits/light-source/lightSourceTrait.js +0 -37
- package/dist-npm/traits/light-source/lightSourceTrait.js.map +0 -1
- package/dist-npm/traits/lockable/index.d.ts +0 -3
- package/dist-npm/traits/lockable/index.d.ts.map +0 -1
- package/dist-npm/traits/lockable/index.js +0 -20
- package/dist-npm/traits/lockable/index.js.map +0 -1
- package/dist-npm/traits/lockable/lockableBehavior.d.ts +0 -88
- package/dist-npm/traits/lockable/lockableBehavior.d.ts.map +0 -1
- package/dist-npm/traits/lockable/lockableBehavior.js +0 -196
- package/dist-npm/traits/lockable/lockableBehavior.js.map +0 -1
- package/dist-npm/traits/lockable/lockableTrait.d.ts +0 -59
- package/dist-npm/traits/lockable/lockableTrait.d.ts.map +0 -1
- package/dist-npm/traits/lockable/lockableTrait.js +0 -50
- package/dist-npm/traits/lockable/lockableTrait.js.map +0 -1
- package/dist-npm/traits/moveable-scenery/index.d.ts +0 -2
- package/dist-npm/traits/moveable-scenery/index.d.ts.map +0 -1
- package/dist-npm/traits/moveable-scenery/index.js +0 -18
- package/dist-npm/traits/moveable-scenery/index.js.map +0 -1
- package/dist-npm/traits/moveable-scenery/moveableSceneryTrait.d.ts +0 -69
- package/dist-npm/traits/moveable-scenery/moveableSceneryTrait.d.ts.map +0 -1
- package/dist-npm/traits/moveable-scenery/moveableSceneryTrait.js +0 -43
- package/dist-npm/traits/moveable-scenery/moveableSceneryTrait.js.map +0 -1
- package/dist-npm/traits/npc/index.d.ts +0 -5
- package/dist-npm/traits/npc/index.d.ts.map +0 -1
- package/dist-npm/traits/npc/index.js +0 -9
- package/dist-npm/traits/npc/index.js.map +0 -1
- package/dist-npm/traits/npc/npcTrait.d.ts +0 -128
- package/dist-npm/traits/npc/npcTrait.d.ts.map +0 -1
- package/dist-npm/traits/npc/npcTrait.js +0 -180
- package/dist-npm/traits/npc/npcTrait.js.map +0 -1
- package/dist-npm/traits/openable/index.d.ts +0 -3
- package/dist-npm/traits/openable/index.d.ts.map +0 -1
- package/dist-npm/traits/openable/index.js +0 -20
- package/dist-npm/traits/openable/index.js.map +0 -1
- package/dist-npm/traits/openable/openableBehavior.d.ts +0 -64
- package/dist-npm/traits/openable/openableBehavior.d.ts.map +0 -1
- package/dist-npm/traits/openable/openableBehavior.js +0 -109
- package/dist-npm/traits/openable/openableBehavior.js.map +0 -1
- package/dist-npm/traits/openable/openableTrait.d.ts +0 -46
- package/dist-npm/traits/openable/openableTrait.d.ts.map +0 -1
- package/dist-npm/traits/openable/openableTrait.js +0 -42
- package/dist-npm/traits/openable/openableTrait.js.map +0 -1
- package/dist-npm/traits/pullable/index.d.ts +0 -2
- package/dist-npm/traits/pullable/index.d.ts.map +0 -1
- package/dist-npm/traits/pullable/index.js +0 -18
- package/dist-npm/traits/pullable/index.js.map +0 -1
- package/dist-npm/traits/pullable/pullableTrait.d.ts +0 -81
- package/dist-npm/traits/pullable/pullableTrait.d.ts.map +0 -1
- package/dist-npm/traits/pullable/pullableTrait.js +0 -44
- package/dist-npm/traits/pullable/pullableTrait.js.map +0 -1
- package/dist-npm/traits/pushable/index.d.ts +0 -2
- package/dist-npm/traits/pushable/index.d.ts.map +0 -1
- package/dist-npm/traits/pushable/index.js +0 -18
- package/dist-npm/traits/pushable/index.js.map +0 -1
- package/dist-npm/traits/pushable/pushableTrait.d.ts +0 -81
- package/dist-npm/traits/pushable/pushableTrait.d.ts.map +0 -1
- package/dist-npm/traits/pushable/pushableTrait.js +0 -44
- package/dist-npm/traits/pushable/pushableTrait.js.map +0 -1
- package/dist-npm/traits/readable/index.d.ts +0 -3
- package/dist-npm/traits/readable/index.d.ts.map +0 -1
- package/dist-npm/traits/readable/index.js +0 -9
- package/dist-npm/traits/readable/index.js.map +0 -1
- package/dist-npm/traits/readable/readableBehavior.d.ts +0 -42
- package/dist-npm/traits/readable/readableBehavior.d.ts.map +0 -1
- package/dist-npm/traits/readable/readableBehavior.js +0 -174
- package/dist-npm/traits/readable/readableBehavior.js.map +0 -1
- package/dist-npm/traits/readable/readableTrait.d.ts +0 -37
- package/dist-npm/traits/readable/readableTrait.d.ts.map +0 -1
- package/dist-npm/traits/readable/readableTrait.js +0 -51
- package/dist-npm/traits/readable/readableTrait.js.map +0 -1
- package/dist-npm/traits/register-all.d.ts +0 -10
- package/dist-npm/traits/register-all.d.ts.map +0 -1
- package/dist-npm/traits/register-all.js +0 -19
- package/dist-npm/traits/register-all.js.map +0 -1
- package/dist-npm/traits/room/index.d.ts +0 -9
- package/dist-npm/traits/room/index.d.ts.map +0 -1
- package/dist-npm/traits/room/index.js +0 -14
- package/dist-npm/traits/room/index.js.map +0 -1
- package/dist-npm/traits/room/roomBehavior.d.ts +0 -87
- package/dist-npm/traits/room/roomBehavior.d.ts.map +0 -1
- package/dist-npm/traits/room/roomBehavior.js +0 -232
- package/dist-npm/traits/room/roomBehavior.js.map +0 -1
- package/dist-npm/traits/room/roomTrait.d.ts +0 -101
- package/dist-npm/traits/room/roomTrait.d.ts.map +0 -1
- package/dist-npm/traits/room/roomTrait.js +0 -59
- package/dist-npm/traits/room/roomTrait.js.map +0 -1
- package/dist-npm/traits/scenery/index.d.ts +0 -3
- package/dist-npm/traits/scenery/index.d.ts.map +0 -1
- package/dist-npm/traits/scenery/index.js +0 -9
- package/dist-npm/traits/scenery/index.js.map +0 -1
- package/dist-npm/traits/scenery/sceneryBehavior.d.ts +0 -21
- package/dist-npm/traits/scenery/sceneryBehavior.d.ts.map +0 -1
- package/dist-npm/traits/scenery/sceneryBehavior.js +0 -42
- package/dist-npm/traits/scenery/sceneryBehavior.js.map +0 -1
- package/dist-npm/traits/scenery/sceneryTrait.d.ts +0 -30
- package/dist-npm/traits/scenery/sceneryTrait.d.ts.map +0 -1
- package/dist-npm/traits/scenery/sceneryTrait.js +0 -39
- package/dist-npm/traits/scenery/sceneryTrait.js.map +0 -1
- package/dist-npm/traits/supporter/index.d.ts +0 -3
- package/dist-npm/traits/supporter/index.d.ts.map +0 -1
- package/dist-npm/traits/supporter/index.js +0 -9
- package/dist-npm/traits/supporter/index.js.map +0 -1
- package/dist-npm/traits/supporter/supporterBehavior.d.ts +0 -83
- package/dist-npm/traits/supporter/supporterBehavior.d.ts.map +0 -1
- package/dist-npm/traits/supporter/supporterBehavior.js +0 -210
- package/dist-npm/traits/supporter/supporterBehavior.js.map +0 -1
- package/dist-npm/traits/supporter/supporterTrait.d.ts +0 -26
- package/dist-npm/traits/supporter/supporterTrait.d.ts.map +0 -1
- package/dist-npm/traits/supporter/supporterTrait.js +0 -30
- package/dist-npm/traits/supporter/supporterTrait.js.map +0 -1
- package/dist-npm/traits/switchable/index.d.ts +0 -3
- package/dist-npm/traits/switchable/index.d.ts.map +0 -1
- package/dist-npm/traits/switchable/index.js +0 -20
- package/dist-npm/traits/switchable/index.js.map +0 -1
- package/dist-npm/traits/switchable/switchableBehavior.d.ts +0 -73
- package/dist-npm/traits/switchable/switchableBehavior.d.ts.map +0 -1
- package/dist-npm/traits/switchable/switchableBehavior.js +0 -191
- package/dist-npm/traits/switchable/switchableBehavior.js.map +0 -1
- package/dist-npm/traits/switchable/switchableTrait.d.ts +0 -61
- package/dist-npm/traits/switchable/switchableTrait.d.ts.map +0 -1
- package/dist-npm/traits/switchable/switchableTrait.js +0 -52
- package/dist-npm/traits/switchable/switchableTrait.js.map +0 -1
- package/dist-npm/traits/trait-types.d.ts +0 -81
- package/dist-npm/traits/trait-types.d.ts.map +0 -1
- package/dist-npm/traits/trait-types.js +0 -146
- package/dist-npm/traits/trait-types.js.map +0 -1
- package/dist-npm/traits/trait.d.ts +0 -44
- package/dist-npm/traits/trait.d.ts.map +0 -1
- package/dist-npm/traits/trait.js +0 -42
- package/dist-npm/traits/trait.js.map +0 -1
- package/dist-npm/traits/vehicle/index.d.ts +0 -6
- package/dist-npm/traits/vehicle/index.d.ts.map +0 -1
- package/dist-npm/traits/vehicle/index.js +0 -22
- package/dist-npm/traits/vehicle/index.js.map +0 -1
- package/dist-npm/traits/vehicle/vehicleBehavior.d.ts +0 -62
- package/dist-npm/traits/vehicle/vehicleBehavior.d.ts.map +0 -1
- package/dist-npm/traits/vehicle/vehicleBehavior.js +0 -145
- package/dist-npm/traits/vehicle/vehicleBehavior.js.map +0 -1
- package/dist-npm/traits/vehicle/vehicleTrait.d.ts +0 -77
- package/dist-npm/traits/vehicle/vehicleTrait.d.ts.map +0 -1
- package/dist-npm/traits/vehicle/vehicleTrait.js +0 -92
- package/dist-npm/traits/vehicle/vehicleTrait.js.map +0 -1
- package/dist-npm/traits/weapon/index.d.ts +0 -3
- package/dist-npm/traits/weapon/index.d.ts.map +0 -1
- package/dist-npm/traits/weapon/index.js +0 -8
- package/dist-npm/traits/weapon/index.js.map +0 -1
- package/dist-npm/traits/weapon/weaponBehavior.d.ts +0 -47
- package/dist-npm/traits/weapon/weaponBehavior.d.ts.map +0 -1
- package/dist-npm/traits/weapon/weaponBehavior.js +0 -106
- package/dist-npm/traits/weapon/weaponBehavior.js.map +0 -1
- package/dist-npm/traits/weapon/weaponTrait.d.ts +0 -67
- package/dist-npm/traits/weapon/weaponTrait.d.ts.map +0 -1
- package/dist-npm/traits/weapon/weaponTrait.js +0 -60
- package/dist-npm/traits/weapon/weaponTrait.js.map +0 -1
- package/dist-npm/traits/wearable/index.d.ts +0 -3
- package/dist-npm/traits/wearable/index.d.ts.map +0 -1
- package/dist-npm/traits/wearable/index.js +0 -20
- package/dist-npm/traits/wearable/index.js.map +0 -1
- package/dist-npm/traits/wearable/wearableBehavior.d.ts +0 -64
- package/dist-npm/traits/wearable/wearableBehavior.d.ts.map +0 -1
- package/dist-npm/traits/wearable/wearableBehavior.js +0 -142
- package/dist-npm/traits/wearable/wearableBehavior.js.map +0 -1
- package/dist-npm/traits/wearable/wearableTrait.d.ts +0 -54
- package/dist-npm/traits/wearable/wearableTrait.d.ts.map +0 -1
- package/dist-npm/traits/wearable/wearableTrait.js +0 -53
- package/dist-npm/traits/wearable/wearableTrait.js.map +0 -1
- package/dist-npm/utils/event-utils.d.ts +0 -30
- package/dist-npm/utils/event-utils.d.ts.map +0 -1
- package/dist-npm/utils/event-utils.js +0 -33
- package/dist-npm/utils/event-utils.js.map +0 -1
- package/dist-npm/world/AuthorModel.d.ts +0 -151
- package/dist-npm/world/AuthorModel.d.ts.map +0 -1
- package/dist-npm/world/AuthorModel.js +0 -416
- package/dist-npm/world/AuthorModel.js.map +0 -1
- package/dist-npm/world/SharedDataStore.d.ts +0 -24
- package/dist-npm/world/SharedDataStore.d.ts.map +0 -1
- package/dist-npm/world/SharedDataStore.js +0 -50
- package/dist-npm/world/SharedDataStore.js.map +0 -1
- package/dist-npm/world/SpatialIndex.d.ts +0 -16
- package/dist-npm/world/SpatialIndex.d.ts.map +0 -1
- package/dist-npm/world/SpatialIndex.js +0 -117
- package/dist-npm/world/SpatialIndex.js.map +0 -1
- package/dist-npm/world/VisibilityBehavior.d.ts +0 -83
- package/dist-npm/world/VisibilityBehavior.d.ts.map +0 -1
- package/dist-npm/world/VisibilityBehavior.js +0 -484
- package/dist-npm/world/VisibilityBehavior.js.map +0 -1
- package/dist-npm/world/WorldModel.d.ts +0 -301
- package/dist-npm/world/WorldModel.d.ts.map +0 -1
- package/dist-npm/world/WorldModel.js +0 -1085
- package/dist-npm/world/WorldModel.js.map +0 -1
- package/dist-npm/world/capabilities.d.ts +0 -36
- package/dist-npm/world/capabilities.d.ts.map +0 -1
- package/dist-npm/world/capabilities.js +0 -18
- package/dist-npm/world/capabilities.js.map +0 -1
- package/dist-npm/world/index.d.ts +0 -7
- package/dist-npm/world/index.d.ts.map +0 -1
- package/dist-npm/world/index.js +0 -21
- package/dist-npm/world/index.js.map +0 -1
|
@@ -1,256 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
// packages/world-model/src/traits/container/containerBehavior.ts
|
|
3
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.ContainerBehavior = void 0;
|
|
5
|
-
const behavior_1 = require("../../behaviors/behavior");
|
|
6
|
-
const trait_types_1 = require("../trait-types");
|
|
7
|
-
const identityBehavior_1 = require("../identity/identityBehavior");
|
|
8
|
-
const wearableBehavior_1 = require("../wearable/wearableBehavior");
|
|
9
|
-
/**
|
|
10
|
-
* Behavior for entities that can contain other entities.
|
|
11
|
-
*
|
|
12
|
-
* Handles capacity checks, type restrictions, and container state.
|
|
13
|
-
*/
|
|
14
|
-
class ContainerBehavior extends behavior_1.Behavior {
|
|
15
|
-
static requiredTraits = [trait_types_1.TraitType.CONTAINER];
|
|
16
|
-
/**
|
|
17
|
-
* Check if a container can accept an item
|
|
18
|
-
* @returns true if the item can be accepted
|
|
19
|
-
*/
|
|
20
|
-
static canAccept(container, item, world) {
|
|
21
|
-
const trait = ContainerBehavior.require(container, trait_types_1.TraitType.CONTAINER);
|
|
22
|
-
// Check if container is accessible (must be open if openable)
|
|
23
|
-
if (container.has(trait_types_1.TraitType.OPENABLE)) {
|
|
24
|
-
const openable = container.get(trait_types_1.TraitType.OPENABLE);
|
|
25
|
-
if (openable && !openable.isOpen) {
|
|
26
|
-
return false;
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
// Check type restrictions
|
|
30
|
-
if (trait.allowedTypes && trait.allowedTypes.length > 0) {
|
|
31
|
-
const itemType = item.type || 'object';
|
|
32
|
-
if (!trait.allowedTypes.includes(itemType)) {
|
|
33
|
-
return false;
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
if (trait.excludedTypes && trait.excludedTypes.length > 0) {
|
|
37
|
-
const itemType = item.type || 'object';
|
|
38
|
-
if (trait.excludedTypes.includes(itemType)) {
|
|
39
|
-
return false;
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
// Check enterable restrictions for actors
|
|
43
|
-
if (item.has(trait_types_1.TraitType.ACTOR) && !trait.enterable) {
|
|
44
|
-
return false;
|
|
45
|
-
}
|
|
46
|
-
// Check capacity constraints
|
|
47
|
-
if (trait.capacity) {
|
|
48
|
-
const result = this.checkCapacity(container, item, world);
|
|
49
|
-
if (!result)
|
|
50
|
-
return false;
|
|
51
|
-
}
|
|
52
|
-
return true;
|
|
53
|
-
}
|
|
54
|
-
/**
|
|
55
|
-
* Check capacity constraints
|
|
56
|
-
*/
|
|
57
|
-
static checkCapacity(container, item, world) {
|
|
58
|
-
const trait = ContainerBehavior.require(container, trait_types_1.TraitType.CONTAINER);
|
|
59
|
-
const capacity = trait.capacity;
|
|
60
|
-
// If no capacity defined, allow any items
|
|
61
|
-
if (!capacity) {
|
|
62
|
-
return true;
|
|
63
|
-
}
|
|
64
|
-
// Check item count limit (excluding worn items for actors)
|
|
65
|
-
if (capacity.maxItems !== undefined) {
|
|
66
|
-
const contents = world.getContents(container.id);
|
|
67
|
-
const currentCount = contents.filter(item => !wearableBehavior_1.WearableBehavior.isWorn(item)).length;
|
|
68
|
-
if (currentCount >= capacity.maxItems) {
|
|
69
|
-
return false;
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
// Check weight limit
|
|
73
|
-
if (capacity.maxWeight !== undefined) {
|
|
74
|
-
const currentWeight = this.getTotalWeight(container, world);
|
|
75
|
-
const itemWeight = identityBehavior_1.IdentityBehavior.getWeight(item);
|
|
76
|
-
if (currentWeight + itemWeight > capacity.maxWeight) {
|
|
77
|
-
return false;
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
// Check volume limit
|
|
81
|
-
if (capacity.maxVolume !== undefined) {
|
|
82
|
-
const currentVolume = this.getTotalVolume(container, world);
|
|
83
|
-
const itemVolume = identityBehavior_1.IdentityBehavior.getVolume(item);
|
|
84
|
-
if (currentVolume + itemVolume > capacity.maxVolume) {
|
|
85
|
-
return false;
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
return true;
|
|
89
|
-
}
|
|
90
|
-
/**
|
|
91
|
-
* Get total weight of contents (not recursive - container bears the weight)
|
|
92
|
-
*/
|
|
93
|
-
static getTotalWeight(container, world) {
|
|
94
|
-
const contents = world.getContents(container.id);
|
|
95
|
-
return contents.reduce((sum, item) => {
|
|
96
|
-
return sum + identityBehavior_1.IdentityBehavior.getWeight(item);
|
|
97
|
-
}, 0);
|
|
98
|
-
}
|
|
99
|
-
/**
|
|
100
|
-
* Get total volume of contents
|
|
101
|
-
*/
|
|
102
|
-
static getTotalVolume(container, world) {
|
|
103
|
-
const contents = world.getContents(container.id);
|
|
104
|
-
return contents.reduce((sum, item) => {
|
|
105
|
-
return sum + identityBehavior_1.IdentityBehavior.getVolume(item);
|
|
106
|
-
}, 0);
|
|
107
|
-
}
|
|
108
|
-
/**
|
|
109
|
-
* Get remaining capacity
|
|
110
|
-
*/
|
|
111
|
-
static getRemainingCapacity(container, world) {
|
|
112
|
-
const trait = ContainerBehavior.require(container, trait_types_1.TraitType.CONTAINER);
|
|
113
|
-
const result = {};
|
|
114
|
-
if (trait.capacity?.maxItems !== undefined) {
|
|
115
|
-
const current = world.getContents(container.id).length;
|
|
116
|
-
result.items = trait.capacity.maxItems - current;
|
|
117
|
-
}
|
|
118
|
-
if (trait.capacity?.maxWeight !== undefined) {
|
|
119
|
-
result.weight = trait.capacity.maxWeight - this.getTotalWeight(container, world);
|
|
120
|
-
}
|
|
121
|
-
if (trait.capacity?.maxVolume !== undefined) {
|
|
122
|
-
result.volume = trait.capacity.maxVolume - this.getTotalVolume(container, world);
|
|
123
|
-
}
|
|
124
|
-
return result;
|
|
125
|
-
}
|
|
126
|
-
/**
|
|
127
|
-
* Check if the container is transparent (can see contents when closed)
|
|
128
|
-
*/
|
|
129
|
-
static isTransparent(container) {
|
|
130
|
-
const trait = ContainerBehavior.require(container, trait_types_1.TraitType.CONTAINER);
|
|
131
|
-
return trait.isTransparent || false;
|
|
132
|
-
}
|
|
133
|
-
/**
|
|
134
|
-
* Check if the container is enterable by actors
|
|
135
|
-
*/
|
|
136
|
-
static isEnterable(container) {
|
|
137
|
-
const trait = ContainerBehavior.require(container, trait_types_1.TraitType.CONTAINER);
|
|
138
|
-
return trait.enterable || false;
|
|
139
|
-
}
|
|
140
|
-
/**
|
|
141
|
-
* Get allowed types for this container
|
|
142
|
-
*/
|
|
143
|
-
static getAllowedTypes(container) {
|
|
144
|
-
const trait = ContainerBehavior.require(container, trait_types_1.TraitType.CONTAINER);
|
|
145
|
-
return trait.allowedTypes;
|
|
146
|
-
}
|
|
147
|
-
/**
|
|
148
|
-
* Get excluded types for this container
|
|
149
|
-
*/
|
|
150
|
-
static getExcludedTypes(container) {
|
|
151
|
-
const trait = ContainerBehavior.require(container, trait_types_1.TraitType.CONTAINER);
|
|
152
|
-
return trait.excludedTypes;
|
|
153
|
-
}
|
|
154
|
-
/**
|
|
155
|
-
* Add an item to a container
|
|
156
|
-
* @param container The container to add to
|
|
157
|
-
* @param item The item to add
|
|
158
|
-
* @param world World query interface for getting current state
|
|
159
|
-
* @returns Result describing what happened
|
|
160
|
-
*/
|
|
161
|
-
static addItem(container, item, world) {
|
|
162
|
-
const trait = ContainerBehavior.require(container, trait_types_1.TraitType.CONTAINER);
|
|
163
|
-
// Check if container is accessible (must be open if openable)
|
|
164
|
-
if (container.has(trait_types_1.TraitType.OPENABLE)) {
|
|
165
|
-
const openable = container.get(trait_types_1.TraitType.OPENABLE);
|
|
166
|
-
if (openable && !openable.isOpen) {
|
|
167
|
-
return {
|
|
168
|
-
success: false,
|
|
169
|
-
containerClosed: true,
|
|
170
|
-
stateChanged: false
|
|
171
|
-
};
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
// Check if item is already in this container
|
|
175
|
-
const currentLocation = world.getLocation(item.id);
|
|
176
|
-
if (currentLocation === container.id) {
|
|
177
|
-
return {
|
|
178
|
-
success: false,
|
|
179
|
-
alreadyContains: true,
|
|
180
|
-
stateChanged: false
|
|
181
|
-
};
|
|
182
|
-
}
|
|
183
|
-
// Check type restrictions
|
|
184
|
-
if (trait.allowedTypes && trait.allowedTypes.length > 0) {
|
|
185
|
-
const itemType = item.type || 'object';
|
|
186
|
-
if (!trait.allowedTypes.includes(itemType)) {
|
|
187
|
-
return {
|
|
188
|
-
success: false,
|
|
189
|
-
wrongType: true,
|
|
190
|
-
stateChanged: false
|
|
191
|
-
};
|
|
192
|
-
}
|
|
193
|
-
}
|
|
194
|
-
if (trait.excludedTypes && trait.excludedTypes.length > 0) {
|
|
195
|
-
const itemType = item.type || 'object';
|
|
196
|
-
if (trait.excludedTypes.includes(itemType)) {
|
|
197
|
-
return {
|
|
198
|
-
success: false,
|
|
199
|
-
wrongType: true,
|
|
200
|
-
stateChanged: false
|
|
201
|
-
};
|
|
202
|
-
}
|
|
203
|
-
}
|
|
204
|
-
// Check capacity constraints
|
|
205
|
-
if (!ContainerBehavior.checkCapacity(container, item, world)) {
|
|
206
|
-
return {
|
|
207
|
-
success: false,
|
|
208
|
-
containerFull: true,
|
|
209
|
-
stateChanged: false
|
|
210
|
-
};
|
|
211
|
-
}
|
|
212
|
-
// All checks passed - this would be where state mutation happens
|
|
213
|
-
// In our event-driven system, the actual mutation happens via events
|
|
214
|
-
// The behavior just validates and returns success
|
|
215
|
-
return {
|
|
216
|
-
success: true,
|
|
217
|
-
stateChanged: true
|
|
218
|
-
};
|
|
219
|
-
}
|
|
220
|
-
/**
|
|
221
|
-
* Remove an item from a container
|
|
222
|
-
* @param container The container to remove from
|
|
223
|
-
* @param item The item to remove
|
|
224
|
-
* @param world World query interface for getting current state
|
|
225
|
-
* @returns Result describing what happened
|
|
226
|
-
*/
|
|
227
|
-
static removeItem(container, item, world) {
|
|
228
|
-
// Check if container is accessible (must be open if openable)
|
|
229
|
-
if (container.has(trait_types_1.TraitType.OPENABLE)) {
|
|
230
|
-
const openable = container.get(trait_types_1.TraitType.OPENABLE);
|
|
231
|
-
if (openable && !openable.isOpen) {
|
|
232
|
-
return {
|
|
233
|
-
success: false,
|
|
234
|
-
containerClosed: true,
|
|
235
|
-
stateChanged: false
|
|
236
|
-
};
|
|
237
|
-
}
|
|
238
|
-
}
|
|
239
|
-
// Check if item is actually in this container
|
|
240
|
-
const currentLocation = world.getLocation(item.id);
|
|
241
|
-
if (currentLocation !== container.id) {
|
|
242
|
-
return {
|
|
243
|
-
success: false,
|
|
244
|
-
notContained: true,
|
|
245
|
-
stateChanged: false
|
|
246
|
-
};
|
|
247
|
-
}
|
|
248
|
-
// All checks passed - removal is valid
|
|
249
|
-
return {
|
|
250
|
-
success: true,
|
|
251
|
-
stateChanged: true
|
|
252
|
-
};
|
|
253
|
-
}
|
|
254
|
-
}
|
|
255
|
-
exports.ContainerBehavior = ContainerBehavior;
|
|
256
|
-
//# sourceMappingURL=containerBehavior.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"containerBehavior.js","sourceRoot":"","sources":["../../../src/traits/container/containerBehavior.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { ITrait } from '../trait';
|
|
2
|
-
/**
|
|
3
|
-
* Container trait allows entities to hold other entities inside them.
|
|
4
|
-
*
|
|
5
|
-
* This is a pure data structure - all validation and logic
|
|
6
|
-
* should be handled by ContainerBehavior.
|
|
7
|
-
*/
|
|
8
|
-
export declare class ContainerTrait implements ITrait {
|
|
9
|
-
static readonly type: "container";
|
|
10
|
-
readonly type: "container";
|
|
11
|
-
/** Capacity constraints for the container */
|
|
12
|
-
capacity?: {
|
|
13
|
-
/** Maximum total weight the container can hold (in kg) */
|
|
14
|
-
maxWeight?: number;
|
|
15
|
-
/** Maximum total volume the container can hold (in liters) */
|
|
16
|
-
maxVolume?: number;
|
|
17
|
-
/** Maximum number of items the container can hold */
|
|
18
|
-
maxItems?: number;
|
|
19
|
-
};
|
|
20
|
-
/** Whether contents are visible when the container is closed */
|
|
21
|
-
isTransparent: boolean;
|
|
22
|
-
/** Whether actors can enter this container */
|
|
23
|
-
enterable: boolean;
|
|
24
|
-
/** Only these entity types can be placed in the container */
|
|
25
|
-
allowedTypes?: string[];
|
|
26
|
-
/** These entity types cannot be placed in the container */
|
|
27
|
-
excludedTypes?: string[];
|
|
28
|
-
constructor(data?: Partial<ContainerTrait>);
|
|
29
|
-
}
|
|
30
|
-
//# sourceMappingURL=containerTrait.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"containerTrait.d.ts","sourceRoot":"","sources":["../../../src/traits/container/containerTrait.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAGlC;;;;;GAKG;AACH,qBAAa,cAAe,YAAW,MAAM;IAC3C,MAAM,CAAC,QAAQ,CAAC,IAAI,cAAuB;IAC3C,QAAQ,CAAC,IAAI,cAAuB;IAEpC,6CAA6C;IAC7C,QAAQ,CAAC,EAAE;QACT,0DAA0D;QAC1D,SAAS,CAAC,EAAE,MAAM,CAAC;QAEnB,8DAA8D;QAC9D,SAAS,CAAC,EAAE,MAAM,CAAC;QAEnB,qDAAqD;QACrD,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IAEF,gEAAgE;IAChE,aAAa,EAAE,OAAO,CAAC;IAEvB,8CAA8C;IAC9C,SAAS,EAAE,OAAO,CAAC;IAEnB,6DAA6D;IAC7D,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IAExB,2DAA2D;IAC3D,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;gBAEb,IAAI,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC;CAc3C"}
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
// packages/world-model/src/traits/container/containerTrait.ts
|
|
3
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.ContainerTrait = void 0;
|
|
5
|
-
const trait_types_1 = require("../trait-types");
|
|
6
|
-
/**
|
|
7
|
-
* Container trait allows entities to hold other entities inside them.
|
|
8
|
-
*
|
|
9
|
-
* This is a pure data structure - all validation and logic
|
|
10
|
-
* should be handled by ContainerBehavior.
|
|
11
|
-
*/
|
|
12
|
-
class ContainerTrait {
|
|
13
|
-
static type = trait_types_1.TraitType.CONTAINER;
|
|
14
|
-
type = trait_types_1.TraitType.CONTAINER;
|
|
15
|
-
/** Capacity constraints for the container */
|
|
16
|
-
capacity;
|
|
17
|
-
/** Whether contents are visible when the container is closed */
|
|
18
|
-
isTransparent;
|
|
19
|
-
/** Whether actors can enter this container */
|
|
20
|
-
enterable;
|
|
21
|
-
/** Only these entity types can be placed in the container */
|
|
22
|
-
allowedTypes;
|
|
23
|
-
/** These entity types cannot be placed in the container */
|
|
24
|
-
excludedTypes;
|
|
25
|
-
constructor(data) {
|
|
26
|
-
// Set defaults
|
|
27
|
-
this.isTransparent = false;
|
|
28
|
-
this.enterable = false;
|
|
29
|
-
// Override with provided data
|
|
30
|
-
if (data) {
|
|
31
|
-
if (data.capacity !== undefined)
|
|
32
|
-
this.capacity = data.capacity;
|
|
33
|
-
if (data.isTransparent !== undefined)
|
|
34
|
-
this.isTransparent = data.isTransparent;
|
|
35
|
-
if (data.enterable !== undefined)
|
|
36
|
-
this.enterable = data.enterable;
|
|
37
|
-
if (data.allowedTypes !== undefined)
|
|
38
|
-
this.allowedTypes = data.allowedTypes;
|
|
39
|
-
if (data.excludedTypes !== undefined)
|
|
40
|
-
this.excludedTypes = data.excludedTypes;
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
exports.ContainerTrait = ContainerTrait;
|
|
45
|
-
//# sourceMappingURL=containerTrait.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"containerTrait.js","sourceRoot":"","sources":["../../../src/traits/container/containerTrait.ts"],"names":[],"mappings":";AAAA,8DAA8D;;;AAG9D,gDAA2C;AAE3C;;;;;GAKG;AACH,MAAa,cAAc;IACzB,MAAM,CAAU,IAAI,GAAG,uBAAS,CAAC,SAAS,CAAC;IAClC,IAAI,GAAG,uBAAS,CAAC,SAAS,CAAC;IAEpC,6CAA6C;IAC7C,QAAQ,CASN;IAEF,gEAAgE;IAChE,aAAa,CAAU;IAEvB,8CAA8C;IAC9C,SAAS,CAAU;IAEnB,6DAA6D;IAC7D,YAAY,CAAY;IAExB,2DAA2D;IAC3D,aAAa,CAAY;IAEzB,YAAY,IAA8B;QACxC,eAAe;QACf,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QAEvB,8BAA8B;QAC9B,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS;gBAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC/D,IAAI,IAAI,CAAC,aAAa,KAAK,SAAS;gBAAE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;YAC9E,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS;gBAAE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAClE,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS;gBAAE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;YAC3E,IAAI,IAAI,CAAC,aAAa,KAAK,SAAS;gBAAE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;QAChF,CAAC;IACH,CAAC;;AAzCH,wCA0CC"}
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
export { ContainerTrait } from './containerTrait';
|
|
2
|
-
export { ContainerBehavior, type IWorldQuery, type IAddItemResult, type IRemoveItemResult } from './containerBehavior';
|
|
3
|
-
export { canContain, getContainerTrait, isContainerCapable, hasContainerProperties, type IContainerCapable } from './container-utils';
|
|
4
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/traits/container/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,KAAK,WAAW,EAAE,KAAK,cAAc,EAAE,KAAK,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACvH,OAAO,EACL,UAAU,EACV,iBAAiB,EACjB,kBAAkB,EAClB,sBAAsB,EACtB,KAAK,iBAAiB,EACvB,MAAM,mBAAmB,CAAC"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
// packages/world-model/src/traits/container/index.ts
|
|
3
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.hasContainerProperties = exports.isContainerCapable = exports.getContainerTrait = exports.canContain = exports.ContainerBehavior = exports.ContainerTrait = void 0;
|
|
5
|
-
var containerTrait_1 = require("./containerTrait");
|
|
6
|
-
Object.defineProperty(exports, "ContainerTrait", { enumerable: true, get: function () { return containerTrait_1.ContainerTrait; } });
|
|
7
|
-
var containerBehavior_1 = require("./containerBehavior");
|
|
8
|
-
Object.defineProperty(exports, "ContainerBehavior", { enumerable: true, get: function () { return containerBehavior_1.ContainerBehavior; } });
|
|
9
|
-
var container_utils_1 = require("./container-utils");
|
|
10
|
-
Object.defineProperty(exports, "canContain", { enumerable: true, get: function () { return container_utils_1.canContain; } });
|
|
11
|
-
Object.defineProperty(exports, "getContainerTrait", { enumerable: true, get: function () { return container_utils_1.getContainerTrait; } });
|
|
12
|
-
Object.defineProperty(exports, "isContainerCapable", { enumerable: true, get: function () { return container_utils_1.isContainerCapable; } });
|
|
13
|
-
Object.defineProperty(exports, "hasContainerProperties", { enumerable: true, get: function () { return container_utils_1.hasContainerProperties; } });
|
|
14
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/traits/container/index.ts"],"names":[],"mappings":";AAAA,qDAAqD;;;AAErD,mDAAkD;AAAzC,gHAAA,cAAc,OAAA;AACvB,yDAAuH;AAA9G,sHAAA,iBAAiB,OAAA;AAC1B,qDAM2B;AALzB,6GAAA,UAAU,OAAA;AACV,oHAAA,iBAAiB,OAAA;AACjB,qHAAA,kBAAkB,OAAA;AAClB,yHAAA,sBAAsB,OAAA"}
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Behavior for destructible entities
|
|
3
|
-
*/
|
|
4
|
-
import { Behavior } from '../../behaviors/behavior';
|
|
5
|
-
import { IFEntity } from '../../entities/if-entity';
|
|
6
|
-
import { WorldModel } from '../../world/WorldModel';
|
|
7
|
-
import { EntityId } from '@sharpee/core';
|
|
8
|
-
/**
|
|
9
|
-
* Result of damaging a destructible entity
|
|
10
|
-
*/
|
|
11
|
-
export interface IDamageResult {
|
|
12
|
-
success: boolean;
|
|
13
|
-
damage: number;
|
|
14
|
-
destroyed: boolean;
|
|
15
|
-
remainingHitPoints: number;
|
|
16
|
-
requiresWeapon?: boolean;
|
|
17
|
-
wrongWeaponType?: boolean;
|
|
18
|
-
invulnerable?: boolean;
|
|
19
|
-
transformedTo?: EntityId;
|
|
20
|
-
exitRevealed?: string;
|
|
21
|
-
message?: string;
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* Behavior for destructible entities.
|
|
25
|
-
*
|
|
26
|
-
* Handles multi-hit destruction with hit points and armor.
|
|
27
|
-
* This is a world-aware behavior because it may transform entities or reveal exits.
|
|
28
|
-
*/
|
|
29
|
-
export declare class DestructibleBehavior extends Behavior {
|
|
30
|
-
static requiredTraits: "destructible"[];
|
|
31
|
-
/**
|
|
32
|
-
* Check if an entity can be damaged
|
|
33
|
-
*/
|
|
34
|
-
static canDamage(entity: IFEntity, weaponType?: string): boolean;
|
|
35
|
-
/**
|
|
36
|
-
* Damage the entity
|
|
37
|
-
* @param entity The entity to damage
|
|
38
|
-
* @param damage Base damage amount
|
|
39
|
-
* @param weaponType Type of weapon used (if any)
|
|
40
|
-
* @param world The world model (needed for transformations)
|
|
41
|
-
* @returns Result describing what happened
|
|
42
|
-
*/
|
|
43
|
-
static damage(entity: IFEntity, damage: number, weaponType: string | undefined, world: WorldModel): IDamageResult;
|
|
44
|
-
/**
|
|
45
|
-
* Check if entity is destroyed
|
|
46
|
-
*/
|
|
47
|
-
static isDestroyed(entity: IFEntity): boolean;
|
|
48
|
-
/**
|
|
49
|
-
* Get remaining hit points
|
|
50
|
-
*/
|
|
51
|
-
static getHitPoints(entity: IFEntity): number;
|
|
52
|
-
/**
|
|
53
|
-
* Repair entity (restore hit points)
|
|
54
|
-
*/
|
|
55
|
-
static repair(entity: IFEntity): boolean;
|
|
56
|
-
}
|
|
57
|
-
//# sourceMappingURL=destructibleBehavior.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"destructibleBehavior.d.ts","sourceRoot":"","sources":["../../../src/traits/destructible/destructibleBehavior.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAGpD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;IACnB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,aAAa,CAAC,EAAE,QAAQ,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;GAKG;AACH,qBAAa,oBAAqB,SAAQ,QAAQ;IAChD,MAAM,CAAC,cAAc,mBAA4B;IAEjD;;OAEG;IACH,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO;IAgBhE;;;;;;;OAOG;IACH,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,EAAE,UAAU,GAAG,aAAa;IAoFjH;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,QAAQ,GAAG,OAAO;IAQ7C;;OAEG;IACH,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,GAAG,MAAM;IAK7C;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,GAAG,OAAO;CAQzC"}
|
|
@@ -1,145 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Behavior for destructible entities
|
|
4
|
-
*/
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.DestructibleBehavior = void 0;
|
|
7
|
-
const behavior_1 = require("../../behaviors/behavior");
|
|
8
|
-
const trait_types_1 = require("../trait-types");
|
|
9
|
-
/**
|
|
10
|
-
* Behavior for destructible entities.
|
|
11
|
-
*
|
|
12
|
-
* Handles multi-hit destruction with hit points and armor.
|
|
13
|
-
* This is a world-aware behavior because it may transform entities or reveal exits.
|
|
14
|
-
*/
|
|
15
|
-
class DestructibleBehavior extends behavior_1.Behavior {
|
|
16
|
-
static requiredTraits = [trait_types_1.TraitType.DESTRUCTIBLE];
|
|
17
|
-
/**
|
|
18
|
-
* Check if an entity can be damaged
|
|
19
|
-
*/
|
|
20
|
-
static canDamage(entity, weaponType) {
|
|
21
|
-
if (!entity.has(trait_types_1.TraitType.DESTRUCTIBLE)) {
|
|
22
|
-
return false;
|
|
23
|
-
}
|
|
24
|
-
const destructible = entity.get(trait_types_1.TraitType.DESTRUCTIBLE);
|
|
25
|
-
if (destructible.invulnerable)
|
|
26
|
-
return false;
|
|
27
|
-
if (destructible.hitPoints <= 0)
|
|
28
|
-
return false; // Already destroyed
|
|
29
|
-
// Check weapon requirements
|
|
30
|
-
if (destructible.requiresWeapon && !weaponType)
|
|
31
|
-
return false;
|
|
32
|
-
if (destructible.requiresType && weaponType !== destructible.requiresType)
|
|
33
|
-
return false;
|
|
34
|
-
return true;
|
|
35
|
-
}
|
|
36
|
-
/**
|
|
37
|
-
* Damage the entity
|
|
38
|
-
* @param entity The entity to damage
|
|
39
|
-
* @param damage Base damage amount
|
|
40
|
-
* @param weaponType Type of weapon used (if any)
|
|
41
|
-
* @param world The world model (needed for transformations)
|
|
42
|
-
* @returns Result describing what happened
|
|
43
|
-
*/
|
|
44
|
-
static damage(entity, damage, weaponType, world) {
|
|
45
|
-
if (!entity.has(trait_types_1.TraitType.DESTRUCTIBLE)) {
|
|
46
|
-
return {
|
|
47
|
-
success: false,
|
|
48
|
-
damage: 0,
|
|
49
|
-
destroyed: false,
|
|
50
|
-
remainingHitPoints: 0,
|
|
51
|
-
message: 'Entity is not destructible'
|
|
52
|
-
};
|
|
53
|
-
}
|
|
54
|
-
const destructible = entity.get(trait_types_1.TraitType.DESTRUCTIBLE);
|
|
55
|
-
// Check if can be damaged
|
|
56
|
-
if (destructible.invulnerable) {
|
|
57
|
-
return {
|
|
58
|
-
success: false,
|
|
59
|
-
damage: 0,
|
|
60
|
-
destroyed: false,
|
|
61
|
-
remainingHitPoints: destructible.hitPoints,
|
|
62
|
-
invulnerable: true
|
|
63
|
-
};
|
|
64
|
-
}
|
|
65
|
-
if (destructible.requiresWeapon && !weaponType) {
|
|
66
|
-
return {
|
|
67
|
-
success: false,
|
|
68
|
-
damage: 0,
|
|
69
|
-
destroyed: false,
|
|
70
|
-
remainingHitPoints: destructible.hitPoints,
|
|
71
|
-
requiresWeapon: true
|
|
72
|
-
};
|
|
73
|
-
}
|
|
74
|
-
if (destructible.requiresType && weaponType !== destructible.requiresType) {
|
|
75
|
-
return {
|
|
76
|
-
success: false,
|
|
77
|
-
damage: 0,
|
|
78
|
-
destroyed: false,
|
|
79
|
-
remainingHitPoints: destructible.hitPoints,
|
|
80
|
-
wrongWeaponType: true
|
|
81
|
-
};
|
|
82
|
-
}
|
|
83
|
-
// Apply armor reduction
|
|
84
|
-
const actualDamage = Math.max(1, damage - destructible.armor);
|
|
85
|
-
// Apply damage
|
|
86
|
-
destructible.hitPoints = Math.max(0, destructible.hitPoints - actualDamage);
|
|
87
|
-
const result = {
|
|
88
|
-
success: true,
|
|
89
|
-
damage: actualDamage,
|
|
90
|
-
destroyed: destructible.hitPoints <= 0,
|
|
91
|
-
remainingHitPoints: destructible.hitPoints,
|
|
92
|
-
message: destructible.hitPoints > 0 ? destructible.damageMessage : destructible.destroyMessage
|
|
93
|
-
};
|
|
94
|
-
// Handle destruction
|
|
95
|
-
if (destructible.hitPoints <= 0) {
|
|
96
|
-
// Transform entity if specified
|
|
97
|
-
if (destructible.transformTo) {
|
|
98
|
-
const location = world.getLocation(entity.id);
|
|
99
|
-
const newName = `transformed ${entity.id}`;
|
|
100
|
-
const newEntity = world.createEntity(newName, destructible.transformTo);
|
|
101
|
-
if (location && newEntity) {
|
|
102
|
-
world.moveEntity(newEntity.id, location);
|
|
103
|
-
result.transformedTo = newEntity.id;
|
|
104
|
-
// Remove original entity
|
|
105
|
-
world.removeEntity(entity.id);
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
// Reveal exit if specified
|
|
109
|
-
if (destructible.revealExit) {
|
|
110
|
-
result.exitRevealed = destructible.revealExit;
|
|
111
|
-
// The action will handle actually revealing the exit in the room
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
return result;
|
|
115
|
-
}
|
|
116
|
-
/**
|
|
117
|
-
* Check if entity is destroyed
|
|
118
|
-
*/
|
|
119
|
-
static isDestroyed(entity) {
|
|
120
|
-
if (!entity.has(trait_types_1.TraitType.DESTRUCTIBLE)) {
|
|
121
|
-
return false;
|
|
122
|
-
}
|
|
123
|
-
const destructible = entity.get(trait_types_1.TraitType.DESTRUCTIBLE);
|
|
124
|
-
return destructible.hitPoints <= 0;
|
|
125
|
-
}
|
|
126
|
-
/**
|
|
127
|
-
* Get remaining hit points
|
|
128
|
-
*/
|
|
129
|
-
static getHitPoints(entity) {
|
|
130
|
-
const destructible = DestructibleBehavior.require(entity, trait_types_1.TraitType.DESTRUCTIBLE);
|
|
131
|
-
return destructible.hitPoints;
|
|
132
|
-
}
|
|
133
|
-
/**
|
|
134
|
-
* Repair entity (restore hit points)
|
|
135
|
-
*/
|
|
136
|
-
static repair(entity) {
|
|
137
|
-
const destructible = DestructibleBehavior.require(entity, trait_types_1.TraitType.DESTRUCTIBLE);
|
|
138
|
-
if (destructible.hitPoints >= destructible.maxHitPoints)
|
|
139
|
-
return false;
|
|
140
|
-
destructible.hitPoints = destructible.maxHitPoints;
|
|
141
|
-
return true;
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
exports.DestructibleBehavior = DestructibleBehavior;
|
|
145
|
-
//# sourceMappingURL=destructibleBehavior.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"destructibleBehavior.js","sourceRoot":"","sources":["../../../src/traits/destructible/destructibleBehavior.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Destructible trait for entities that require multiple hits or specific tools to destroy
|
|
3
|
-
*/
|
|
4
|
-
import { ITrait } from '../trait';
|
|
5
|
-
export interface IDestructibleData {
|
|
6
|
-
/** Current hit points */
|
|
7
|
-
hitPoints?: number;
|
|
8
|
-
/** Maximum hit points */
|
|
9
|
-
maxHitPoints?: number;
|
|
10
|
-
/** Whether this requires a weapon to damage */
|
|
11
|
-
requiresWeapon?: boolean;
|
|
12
|
-
/** Specific weapon type required (e.g., 'blade', 'magic') */
|
|
13
|
-
requiresType?: string;
|
|
14
|
-
/** Entity type to transform into when destroyed */
|
|
15
|
-
transformTo?: string;
|
|
16
|
-
/** Exit direction to reveal when destroyed (for barriers) */
|
|
17
|
-
revealExit?: string;
|
|
18
|
-
/** Custom message when damaged but not destroyed - injected into events */
|
|
19
|
-
damageMessage?: string;
|
|
20
|
-
/** Custom message when destroyed - injected into events */
|
|
21
|
-
destroyMessage?: string;
|
|
22
|
-
/** Whether this is invulnerable to normal attacks */
|
|
23
|
-
invulnerable?: boolean;
|
|
24
|
-
/** Armor value that reduces damage */
|
|
25
|
-
armor?: number;
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* Destructible trait indicates an entity can be destroyed with multiple hits.
|
|
29
|
-
*
|
|
30
|
-
* This trait contains only data - all destruction logic
|
|
31
|
-
* is in DestructibleBehavior. Messages are stored here to be
|
|
32
|
-
* injected into events during the report phase.
|
|
33
|
-
*/
|
|
34
|
-
export declare class DestructibleTrait implements ITrait, IDestructibleData {
|
|
35
|
-
static readonly type: "destructible";
|
|
36
|
-
readonly type: "destructible";
|
|
37
|
-
hitPoints: number;
|
|
38
|
-
maxHitPoints: number;
|
|
39
|
-
requiresWeapon: boolean;
|
|
40
|
-
requiresType?: string;
|
|
41
|
-
transformTo?: string;
|
|
42
|
-
revealExit?: string;
|
|
43
|
-
damageMessage?: string;
|
|
44
|
-
destroyMessage?: string;
|
|
45
|
-
invulnerable: boolean;
|
|
46
|
-
armor: number;
|
|
47
|
-
constructor(data?: IDestructibleData);
|
|
48
|
-
}
|
|
49
|
-
//# sourceMappingURL=destructibleTrait.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"destructibleTrait.d.ts","sourceRoot":"","sources":["../../../src/traits/destructible/destructibleTrait.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAGlC,MAAM,WAAW,iBAAiB;IAChC,yBAAyB;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,yBAAyB;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,+CAA+C;IAC/C,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB,6DAA6D;IAC7D,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,mDAAmD;IACnD,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,6DAA6D;IAC7D,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,2EAA2E;IAC3E,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,2DAA2D;IAC3D,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,qDAAqD;IACrD,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB,sCAAsC;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;GAMG;AACH,qBAAa,iBAAkB,YAAW,MAAM,EAAE,iBAAiB;IACjE,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAG,cAAc,CAAU;IAC/C,QAAQ,CAAC,IAAI,EAAG,cAAc,CAAU;IAGxC,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,OAAO,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,OAAO,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;gBAEF,IAAI,GAAE,iBAAsB;CAazC"}
|