@sharpee/world-model 3.0.0 → 3.3.0
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 +1 -1
- package/annotations/index.d.ts.map +1 -1
- package/annotations/index.js +1 -1
- package/annotations/index.js.map +1 -1
- package/behaviors/attack.d.ts +21 -4
- package/behaviors/attack.d.ts.map +1 -1
- package/behaviors/attack.js +37 -33
- package/behaviors/attack.js.map +1 -1
- package/behaviors/behavior.d.ts +3 -3
- package/behaviors/behavior.d.ts.map +1 -1
- package/behaviors/index.d.ts +21 -20
- package/behaviors/index.d.ts.map +1 -1
- package/behaviors/index.js +35 -32
- package/behaviors/index.js.map +1 -1
- package/capabilities/action-interceptor.d.ts +96 -9
- package/capabilities/action-interceptor.d.ts.map +1 -1
- package/capabilities/action-interceptor.js +59 -2
- package/capabilities/action-interceptor.js.map +1 -1
- package/capabilities/capability-behavior.d.ts +3 -3
- package/capabilities/capability-behavior.d.ts.map +1 -1
- package/capabilities/capability-binding.d.ts +3 -3
- package/capabilities/capability-binding.d.ts.map +1 -1
- package/capabilities/capability-helpers.d.ts +2 -2
- package/capabilities/capability-helpers.d.ts.map +1 -1
- package/capabilities/entity-builder.d.ts +2 -2
- package/capabilities/entity-builder.d.ts.map +1 -1
- package/capabilities/index.d.ts +9 -9
- package/capabilities/index.d.ts.map +1 -1
- package/capabilities/index.js +27 -26
- package/capabilities/index.js.map +1 -1
- package/capabilities/interceptor-binding.d.ts +2 -2
- package/capabilities/interceptor-binding.d.ts.map +1 -1
- package/capabilities/interceptor-helpers.d.ts +2 -2
- package/capabilities/interceptor-helpers.d.ts.map +1 -1
- package/commands/command-types.d.ts +2 -2
- package/commands/command-types.d.ts.map +1 -1
- package/commands/index.d.ts +3 -3
- package/commands/index.d.ts.map +1 -1
- package/commands/index.js +3 -3
- package/commands/index.js.map +1 -1
- package/commands/parsed-command.d.ts +13 -0
- package/commands/parsed-command.d.ts.map +1 -1
- package/commands/validated-command.d.ts +16 -2
- package/commands/validated-command.d.ts.map +1 -1
- package/constants/index.d.ts +3 -3
- package/constants/index.d.ts.map +1 -1
- package/constants/index.js +3 -3
- package/constants/index.js.map +1 -1
- package/entities/entity-store.d.ts +1 -1
- package/entities/entity-store.d.ts.map +1 -1
- package/entities/entity-store.js +2 -2
- package/entities/entity-store.js.map +1 -1
- package/entities/if-entity.d.ts +3 -3
- package/entities/if-entity.d.ts.map +1 -1
- package/entities/if-entity.js +38 -34
- package/entities/if-entity.js.map +1 -1
- package/entities/index.d.ts +6 -6
- package/entities/index.d.ts.map +1 -1
- package/entities/index.js +10 -10
- package/entities/index.js.map +1 -1
- package/entities/trait-rehydrator.d.ts +43 -0
- package/entities/trait-rehydrator.d.ts.map +1 -0
- package/entities/trait-rehydrator.js +45 -0
- package/entities/trait-rehydrator.js.map +1 -0
- package/entities/wall-entity.d.ts +2 -2
- package/entities/wall-entity.d.ts.map +1 -1
- package/entities/wall-entity.js +2 -2
- package/entities/wall-entity.js.map +1 -1
- package/examples/event-handler-registration.d.ts +1 -1
- package/examples/event-handler-registration.d.ts.map +1 -1
- package/examples/event-handler-registration.js +24 -24
- package/examples/event-handler-registration.js.map +1 -1
- package/extensions/base-extension.d.ts +3 -3
- package/extensions/base-extension.d.ts.map +1 -1
- package/extensions/index.d.ts +4 -4
- package/extensions/index.d.ts.map +1 -1
- package/extensions/index.js +11 -11
- package/extensions/index.js.map +1 -1
- package/extensions/loader.d.ts +1 -1
- package/extensions/loader.d.ts.map +1 -1
- package/extensions/loader.js +2 -2
- package/extensions/loader.js.map +1 -1
- package/extensions/manager.d.ts +1 -1
- package/extensions/manager.d.ts.map +1 -1
- package/extensions/manager.js +2 -2
- package/extensions/manager.js.map +1 -1
- package/extensions/registry.d.ts +2 -2
- package/extensions/registry.d.ts.map +1 -1
- package/extensions/registry.js +4 -4
- package/extensions/registry.js.map +1 -1
- package/extensions/types.d.ts +2 -2
- package/extensions/types.d.ts.map +1 -1
- package/index.d.ts +58 -46
- package/index.d.ts.map +1 -1
- package/index.js +72 -50
- package/index.js.map +1 -1
- package/interfaces/command-executor.d.ts +1 -1
- package/interfaces/command-executor.d.ts.map +1 -1
- package/interfaces/command-processor.d.ts +1 -1
- package/interfaces/command-processor.d.ts.map +1 -1
- package/interfaces/command-validator.d.ts +1 -1
- package/interfaces/command-validator.d.ts.map +1 -1
- package/interfaces/index.d.ts +4 -4
- package/interfaces/index.d.ts.map +1 -1
- package/interfaces/index.js +4 -4
- package/interfaces/index.js.map +1 -1
- package/interfaces/parser.d.ts +1 -1
- package/interfaces/parser.d.ts.map +1 -1
- package/package.json +3 -3
- package/scope/index.d.ts +3 -3
- package/scope/index.d.ts.map +1 -1
- package/scope/index.js +3 -3
- package/scope/index.js.map +1 -1
- package/scope/scope-evaluator.d.ts +2 -2
- package/scope/scope-evaluator.d.ts.map +1 -1
- package/scope/scope-registry.d.ts +1 -1
- package/scope/scope-registry.d.ts.map +1 -1
- package/state-adjectives.d.ts +1 -1
- package/state-adjectives.d.ts.map +1 -1
- package/state-adjectives.js +5 -5
- package/state-adjectives.js.map +1 -1
- package/state-clauses.d.ts +1 -1
- package/state-clauses.d.ts.map +1 -1
- package/state-clauses.js +5 -5
- package/state-clauses.js.map +1 -1
- package/test-structure.d.ts +1 -1
- package/test-structure.d.ts.map +1 -1
- package/test-structure.js +7 -7
- package/test-structure.js.map +1 -1
- package/traits/acoustic/acousticDampenerTrait.d.ts +1 -1
- package/traits/acoustic/acousticDampenerTrait.d.ts.map +1 -1
- package/traits/acoustic/acousticDampenerTrait.js +3 -3
- package/traits/acoustic/acousticDampenerTrait.js.map +1 -1
- package/traits/acoustic/acousticTrait.d.ts +1 -1
- package/traits/acoustic/acousticTrait.d.ts.map +1 -1
- package/traits/acoustic/acousticTrait.js +3 -3
- package/traits/acoustic/acousticTrait.js.map +1 -1
- package/traits/acoustic/index.d.ts +2 -2
- package/traits/acoustic/index.d.ts.map +1 -1
- package/traits/acoustic/index.js +5 -5
- package/traits/acoustic/index.js.map +1 -1
- package/traits/actor/actorBehavior.d.ts +4 -4
- package/traits/actor/actorBehavior.d.ts.map +1 -1
- package/traits/actor/actorBehavior.js +38 -34
- package/traits/actor/actorBehavior.js.map +1 -1
- package/traits/actor/actorTrait.d.ts +1 -1
- package/traits/actor/actorTrait.d.ts.map +1 -1
- package/traits/actor/actorTrait.js +3 -3
- package/traits/actor/actorTrait.js.map +1 -1
- package/traits/actor/index.d.ts +2 -2
- package/traits/actor/index.d.ts.map +1 -1
- package/traits/actor/index.js +6 -6
- package/traits/actor/index.js.map +1 -1
- package/traits/all-traits.d.ts +30 -33
- package/traits/all-traits.d.ts.map +1 -1
- package/traits/all-traits.js +56 -62
- package/traits/all-traits.js.map +1 -1
- package/traits/attached/attachedTrait.d.ts +1 -1
- package/traits/attached/attachedTrait.d.ts.map +1 -1
- package/traits/attached/attachedTrait.js +3 -3
- package/traits/attached/attachedTrait.js.map +1 -1
- package/traits/attached/index.d.ts +1 -1
- package/traits/attached/index.d.ts.map +1 -1
- package/traits/attached/index.js +1 -1
- package/traits/attached/index.js.map +1 -1
- package/traits/breakable/breakableBehavior.d.ts +3 -3
- package/traits/breakable/breakableBehavior.d.ts.map +1 -1
- package/traits/breakable/breakableBehavior.js +10 -10
- package/traits/breakable/breakableBehavior.js.map +1 -1
- package/traits/breakable/breakableTrait.d.ts +1 -1
- package/traits/breakable/breakableTrait.d.ts.map +1 -1
- package/traits/breakable/index.d.ts +2 -2
- package/traits/breakable/index.d.ts.map +1 -1
- package/traits/breakable/index.js +4 -4
- package/traits/breakable/index.js.map +1 -1
- package/traits/button/buttonTrait.d.ts +1 -1
- package/traits/button/buttonTrait.d.ts.map +1 -1
- package/traits/button/buttonTrait.js +3 -3
- package/traits/button/buttonTrait.js.map +1 -1
- package/traits/button/index.d.ts +1 -1
- package/traits/button/index.d.ts.map +1 -1
- package/traits/button/index.js +1 -1
- package/traits/button/index.js.map +1 -1
- package/traits/character-model/characterModelTrait.d.ts +2 -2
- package/traits/character-model/characterModelTrait.d.ts.map +1 -1
- package/traits/character-model/characterModelTrait.js +16 -16
- package/traits/character-model/characterModelTrait.js.map +1 -1
- package/traits/character-model/index.d.ts +2 -2
- package/traits/character-model/index.d.ts.map +1 -1
- package/traits/character-model/index.js +3 -3
- package/traits/character-model/index.js.map +1 -1
- package/traits/climbable/climbableBehavior.d.ts +1 -1
- package/traits/climbable/climbableBehavior.d.ts.map +1 -1
- package/traits/climbable/climbableBehavior.js +9 -9
- package/traits/climbable/climbableBehavior.js.map +1 -1
- package/traits/climbable/climbableTrait.d.ts +1 -1
- package/traits/climbable/climbableTrait.d.ts.map +1 -1
- package/traits/climbable/climbableTrait.js +4 -4
- package/traits/climbable/climbableTrait.js.map +1 -1
- package/traits/climbable/index.d.ts +2 -2
- package/traits/climbable/index.d.ts.map +1 -1
- package/traits/climbable/index.js +2 -2
- package/traits/climbable/index.js.map +1 -1
- package/traits/clothing/clothingTrait.d.ts +2 -2
- package/traits/clothing/clothingTrait.d.ts.map +1 -1
- package/traits/clothing/clothingTrait.js +3 -3
- package/traits/clothing/clothingTrait.js.map +1 -1
- package/traits/clothing/index.d.ts +1 -1
- package/traits/clothing/index.d.ts.map +1 -1
- package/traits/clothing/index.js +1 -1
- package/traits/clothing/index.js.map +1 -1
- package/traits/combatant/combatantBehavior.d.ts +26 -21
- package/traits/combatant/combatantBehavior.d.ts.map +1 -1
- package/traits/combatant/combatantBehavior.js +58 -56
- package/traits/combatant/combatantBehavior.js.map +1 -1
- package/traits/combatant/combatantTrait.d.ts +15 -49
- package/traits/combatant/combatantTrait.d.ts.map +1 -1
- package/traits/combatant/combatantTrait.js +13 -80
- package/traits/combatant/combatantTrait.js.map +1 -1
- package/traits/combatant/index.d.ts +2 -2
- package/traits/combatant/index.d.ts.map +1 -1
- package/traits/combatant/index.js +4 -4
- package/traits/combatant/index.js.map +1 -1
- package/traits/concealment/concealedStateTrait.d.ts +3 -3
- package/traits/concealment/concealedStateTrait.d.ts.map +1 -1
- package/traits/concealment/concealedStateTrait.js +2 -2
- package/traits/concealment/concealedStateTrait.js.map +1 -1
- package/traits/concealment/concealedVisibilityBehavior.d.ts +2 -2
- package/traits/concealment/concealedVisibilityBehavior.d.ts.map +1 -1
- package/traits/concealment/concealedVisibilityBehavior.js +3 -3
- package/traits/concealment/concealedVisibilityBehavior.js.map +1 -1
- package/traits/concealment/concealmentTrait.d.ts +1 -1
- package/traits/concealment/concealmentTrait.d.ts.map +1 -1
- package/traits/concealment/index.d.ts +3 -3
- package/traits/concealment/index.d.ts.map +1 -1
- package/traits/concealment/index.js +3 -3
- package/traits/concealment/index.js.map +1 -1
- package/traits/container/container-utils.d.ts +2 -2
- package/traits/container/container-utils.d.ts.map +1 -1
- package/traits/container/container-utils.js +14 -14
- package/traits/container/container-utils.js.map +1 -1
- package/traits/container/containerBehavior.d.ts +7 -2
- package/traits/container/containerBehavior.d.ts.map +1 -1
- package/traits/container/containerBehavior.js +26 -26
- package/traits/container/containerBehavior.js.map +1 -1
- package/traits/container/containerTrait.d.ts +1 -1
- package/traits/container/containerTrait.d.ts.map +1 -1
- package/traits/container/containerTrait.js +3 -3
- package/traits/container/containerTrait.js.map +1 -1
- package/traits/container/index.d.ts +3 -3
- package/traits/container/index.d.ts.map +1 -1
- package/traits/container/index.js +9 -9
- package/traits/container/index.js.map +1 -1
- package/traits/cuttable/cuttableBehavior.d.ts +23 -0
- package/traits/cuttable/cuttableBehavior.d.ts.map +1 -0
- package/traits/cuttable/cuttableBehavior.js +39 -0
- package/traits/cuttable/cuttableBehavior.js.map +1 -0
- package/traits/cuttable/cuttableTrait.d.ts +37 -0
- package/traits/cuttable/cuttableTrait.d.ts.map +1 -0
- package/traits/cuttable/cuttableTrait.js +30 -0
- package/traits/cuttable/cuttableTrait.js.map +1 -0
- package/traits/cuttable/index.d.ts +3 -0
- package/traits/cuttable/index.d.ts.map +1 -0
- package/traits/cuttable/index.js +20 -0
- package/traits/cuttable/index.js.map +1 -0
- package/traits/deadly-room/deadlyRoomBehavior.d.ts +48 -0
- package/traits/deadly-room/deadlyRoomBehavior.d.ts.map +1 -0
- package/traits/deadly-room/deadlyRoomBehavior.js +59 -0
- package/traits/deadly-room/deadlyRoomBehavior.js.map +1 -0
- package/traits/deadly-room/deadlyRoomTrait.d.ts +51 -0
- package/traits/deadly-room/deadlyRoomTrait.d.ts.map +1 -0
- package/traits/deadly-room/deadlyRoomTrait.js +37 -0
- package/traits/deadly-room/deadlyRoomTrait.js.map +1 -0
- package/traits/deadly-room/index.d.ts +3 -0
- package/traits/deadly-room/index.d.ts.map +1 -0
- package/traits/deadly-room/index.js +8 -0
- package/traits/deadly-room/index.js.map +1 -0
- package/traits/destructible/destructibleBehavior.d.ts +3 -3
- package/traits/destructible/destructibleBehavior.d.ts.map +1 -1
- package/traits/destructible/destructibleBehavior.js +12 -12
- package/traits/destructible/destructibleBehavior.js.map +1 -1
- package/traits/destructible/destructibleTrait.d.ts +1 -1
- package/traits/destructible/destructibleTrait.d.ts.map +1 -1
- package/traits/destructible/index.d.ts +2 -2
- package/traits/destructible/index.d.ts.map +1 -1
- package/traits/destructible/index.js +4 -4
- package/traits/destructible/index.js.map +1 -1
- package/traits/diggable/diggableBehavior.d.ts +23 -0
- package/traits/diggable/diggableBehavior.d.ts.map +1 -0
- package/traits/diggable/diggableBehavior.js +39 -0
- package/traits/diggable/diggableBehavior.js.map +1 -0
- package/traits/diggable/diggableTrait.d.ts +37 -0
- package/traits/diggable/diggableTrait.d.ts.map +1 -0
- package/traits/diggable/diggableTrait.js +30 -0
- package/traits/diggable/diggableTrait.js.map +1 -0
- package/traits/diggable/index.d.ts +3 -0
- package/traits/diggable/index.d.ts.map +1 -0
- package/traits/diggable/index.js +20 -0
- package/traits/diggable/index.js.map +1 -0
- package/traits/door/doorBehavior.d.ts +2 -2
- package/traits/door/doorBehavior.d.ts.map +1 -1
- package/traits/door/doorBehavior.js +11 -11
- package/traits/door/doorBehavior.js.map +1 -1
- package/traits/door/doorTrait.d.ts +1 -1
- package/traits/door/doorTrait.d.ts.map +1 -1
- package/traits/door/doorTrait.js +3 -3
- package/traits/door/doorTrait.js.map +1 -1
- package/traits/door/index.d.ts +2 -2
- package/traits/door/index.d.ts.map +1 -1
- package/traits/door/index.js +4 -4
- package/traits/door/index.js.map +1 -1
- package/traits/edible/edibleBehavior.d.ts +3 -3
- package/traits/edible/edibleBehavior.d.ts.map +1 -1
- package/traits/edible/edibleBehavior.js +20 -20
- package/traits/edible/edibleBehavior.js.map +1 -1
- package/traits/edible/edibleTrait.d.ts +1 -1
- package/traits/edible/edibleTrait.d.ts.map +1 -1
- package/traits/edible/edibleTrait.js +3 -3
- package/traits/edible/edibleTrait.js.map +1 -1
- package/traits/edible/index.d.ts +2 -2
- package/traits/edible/index.d.ts.map +1 -1
- package/traits/edible/index.js +2 -2
- package/traits/edible/index.js.map +1 -1
- package/traits/enterable/enterableTrait.d.ts +1 -1
- package/traits/enterable/enterableTrait.d.ts.map +1 -1
- package/traits/enterable/enterableTrait.js +4 -4
- package/traits/enterable/enterableTrait.js.map +1 -1
- package/traits/enterable/index.d.ts +1 -1
- package/traits/enterable/index.d.ts.map +1 -1
- package/traits/enterable/index.js +1 -1
- package/traits/enterable/index.js.map +1 -1
- package/traits/equipped/equippedTrait.d.ts +1 -1
- package/traits/equipped/equippedTrait.d.ts.map +1 -1
- package/traits/equipped/index.d.ts +1 -1
- package/traits/equipped/index.d.ts.map +1 -1
- package/traits/equipped/index.js +2 -2
- package/traits/equipped/index.js.map +1 -1
- package/traits/exit/exitBehavior.d.ts +2 -2
- package/traits/exit/exitBehavior.d.ts.map +1 -1
- package/traits/exit/exitBehavior.js +27 -27
- package/traits/exit/exitBehavior.js.map +1 -1
- package/traits/exit/exitTrait.d.ts +1 -1
- package/traits/exit/exitTrait.d.ts.map +1 -1
- package/traits/exit/exitTrait.js +3 -3
- package/traits/exit/exitTrait.js.map +1 -1
- package/traits/exit/index.d.ts +2 -2
- package/traits/exit/index.d.ts.map +1 -1
- package/traits/exit/index.js +4 -4
- package/traits/exit/index.js.map +1 -1
- package/traits/health/healthBehavior.d.ts +66 -0
- package/traits/health/healthBehavior.d.ts.map +1 -0
- package/traits/health/healthBehavior.js +98 -0
- package/traits/health/healthBehavior.js.map +1 -0
- package/traits/health/healthTrait.d.ts +60 -0
- package/traits/health/healthTrait.d.ts.map +1 -0
- package/traits/health/healthTrait.js +49 -0
- package/traits/health/healthTrait.js.map +1 -0
- package/traits/health/index.d.ts +3 -0
- package/traits/health/index.d.ts.map +1 -0
- package/traits/health/index.js +8 -0
- package/traits/health/index.js.map +1 -0
- package/traits/identity/identityBehavior.d.ts +2 -2
- package/traits/identity/identityBehavior.d.ts.map +1 -1
- package/traits/identity/identityBehavior.js +16 -16
- package/traits/identity/identityBehavior.js.map +1 -1
- package/traits/identity/identityTrait.d.ts +8 -1
- package/traits/identity/identityTrait.d.ts.map +1 -1
- package/traits/identity/identityTrait.js +10 -3
- package/traits/identity/identityTrait.js.map +1 -1
- package/traits/identity/index.d.ts +3 -2
- package/traits/identity/index.d.ts.map +1 -1
- package/traits/identity/index.js +3 -2
- package/traits/identity/index.js.map +1 -1
- package/traits/identity/name-vocabulary.d.ts +31 -0
- package/traits/identity/name-vocabulary.d.ts.map +1 -0
- package/traits/identity/name-vocabulary.js +57 -0
- package/traits/identity/name-vocabulary.js.map +1 -0
- package/traits/implementations.d.ts +65 -38
- package/traits/implementations.d.ts.map +1 -1
- package/traits/implementations.js +165 -117
- package/traits/implementations.js.map +1 -1
- package/traits/index.d.ts +47 -44
- package/traits/index.d.ts.map +1 -1
- package/traits/index.js +48 -44
- package/traits/index.js.map +1 -1
- package/traits/light-source/index.d.ts +2 -2
- package/traits/light-source/index.d.ts.map +1 -1
- package/traits/light-source/index.js +4 -4
- package/traits/light-source/index.js.map +1 -1
- package/traits/light-source/lightSourceBehavior.d.ts +2 -2
- package/traits/light-source/lightSourceBehavior.d.ts.map +1 -1
- package/traits/light-source/lightSourceBehavior.js +16 -16
- package/traits/light-source/lightSourceBehavior.js.map +1 -1
- package/traits/light-source/lightSourceTrait.d.ts +1 -1
- package/traits/light-source/lightSourceTrait.d.ts.map +1 -1
- package/traits/light-source/lightSourceTrait.js +3 -3
- package/traits/light-source/lightSourceTrait.js.map +1 -1
- package/traits/listener/index.d.ts +1 -1
- package/traits/listener/index.d.ts.map +1 -1
- package/traits/listener/index.js +2 -2
- package/traits/listener/index.js.map +1 -1
- package/traits/listener/listenerTrait.d.ts +1 -1
- package/traits/listener/listenerTrait.d.ts.map +1 -1
- package/traits/listener/listenerTrait.js +3 -3
- package/traits/listener/listenerTrait.js.map +1 -1
- package/traits/lockable/index.d.ts +2 -2
- package/traits/lockable/index.d.ts.map +1 -1
- package/traits/lockable/index.js +2 -2
- package/traits/lockable/index.js.map +1 -1
- package/traits/lockable/lockableBehavior.d.ts +2 -2
- package/traits/lockable/lockableBehavior.d.ts.map +1 -1
- package/traits/lockable/lockableBehavior.js +19 -19
- package/traits/lockable/lockableBehavior.js.map +1 -1
- package/traits/lockable/lockableTrait.d.ts +1 -1
- package/traits/lockable/lockableTrait.d.ts.map +1 -1
- package/traits/lockable/lockableTrait.js +3 -3
- package/traits/lockable/lockableTrait.js.map +1 -1
- package/traits/moveable-scenery/index.d.ts +1 -1
- package/traits/moveable-scenery/index.d.ts.map +1 -1
- package/traits/moveable-scenery/index.js +1 -1
- package/traits/moveable-scenery/index.js.map +1 -1
- package/traits/moveable-scenery/moveableSceneryTrait.d.ts +1 -1
- package/traits/moveable-scenery/moveableSceneryTrait.d.ts.map +1 -1
- package/traits/moveable-scenery/moveableSceneryTrait.js +3 -3
- package/traits/moveable-scenery/moveableSceneryTrait.js.map +1 -1
- package/traits/npc/index.d.ts +1 -1
- package/traits/npc/index.d.ts.map +1 -1
- package/traits/npc/index.js +2 -2
- package/traits/npc/index.js.map +1 -1
- package/traits/npc/npcTrait.d.ts +6 -28
- package/traits/npc/npcTrait.d.ts.map +1 -1
- package/traits/npc/npcTrait.js +0 -38
- package/traits/npc/npcTrait.js.map +1 -1
- package/traits/obstructor-protocol.d.ts +3 -3
- package/traits/obstructor-protocol.d.ts.map +1 -1
- package/traits/open-inventory/index.d.ts +1 -1
- package/traits/open-inventory/index.d.ts.map +1 -1
- package/traits/open-inventory/index.js +2 -2
- package/traits/open-inventory/index.js.map +1 -1
- package/traits/open-inventory/openInventoryTrait.d.ts +1 -1
- package/traits/open-inventory/openInventoryTrait.d.ts.map +1 -1
- package/traits/open-inventory/openInventoryTrait.js +3 -3
- package/traits/open-inventory/openInventoryTrait.js.map +1 -1
- package/traits/openable/index.d.ts +2 -2
- package/traits/openable/index.d.ts.map +1 -1
- package/traits/openable/index.js +2 -2
- package/traits/openable/index.js.map +1 -1
- package/traits/openable/openableBehavior.d.ts +12 -2
- package/traits/openable/openableBehavior.d.ts.map +1 -1
- package/traits/openable/openableBehavior.js +32 -11
- package/traits/openable/openableBehavior.js.map +1 -1
- package/traits/openable/openableTrait.d.ts +8 -1
- package/traits/openable/openableTrait.d.ts.map +1 -1
- package/traits/openable/openableTrait.js +7 -3
- package/traits/openable/openableTrait.js.map +1 -1
- package/traits/pullable/index.d.ts +1 -1
- package/traits/pullable/index.d.ts.map +1 -1
- package/traits/pullable/index.js +1 -1
- package/traits/pullable/index.js.map +1 -1
- package/traits/pullable/pullableTrait.d.ts +1 -1
- package/traits/pullable/pullableTrait.d.ts.map +1 -1
- package/traits/pullable/pullableTrait.js +3 -3
- package/traits/pullable/pullableTrait.js.map +1 -1
- package/traits/pushable/index.d.ts +1 -1
- package/traits/pushable/index.d.ts.map +1 -1
- package/traits/pushable/index.js +1 -1
- package/traits/pushable/index.js.map +1 -1
- package/traits/pushable/pushableTrait.d.ts +1 -1
- package/traits/pushable/pushableTrait.d.ts.map +1 -1
- package/traits/pushable/pushableTrait.js +3 -3
- package/traits/pushable/pushableTrait.js.map +1 -1
- package/traits/readable/index.d.ts +2 -2
- package/traits/readable/index.d.ts.map +1 -1
- package/traits/readable/index.js +4 -4
- package/traits/readable/index.js.map +1 -1
- package/traits/readable/readableBehavior.d.ts +1 -1
- package/traits/readable/readableBehavior.d.ts.map +1 -1
- package/traits/readable/readableBehavior.js +10 -10
- package/traits/readable/readableBehavior.js.map +1 -1
- package/traits/readable/readableTrait.d.ts +1 -1
- package/traits/readable/readableTrait.d.ts.map +1 -1
- package/traits/readable/readableTrait.js +3 -3
- package/traits/readable/readableTrait.js.map +1 -1
- package/traits/region/index.d.ts +1 -1
- package/traits/region/index.d.ts.map +1 -1
- package/traits/region/index.js +2 -2
- package/traits/region/index.js.map +1 -1
- package/traits/region/regionTrait.d.ts +1 -1
- package/traits/region/regionTrait.d.ts.map +1 -1
- package/traits/region/regionTrait.js +3 -3
- package/traits/region/regionTrait.js.map +1 -1
- package/traits/room/index.d.ts +2 -2
- package/traits/room/index.d.ts.map +1 -1
- package/traits/room/index.js +4 -4
- package/traits/room/index.js.map +1 -1
- package/traits/room/roomBehavior.d.ts +4 -4
- package/traits/room/roomBehavior.d.ts.map +1 -1
- package/traits/room/roomBehavior.js +25 -25
- package/traits/room/roomBehavior.js.map +1 -1
- package/traits/room/roomTrait.d.ts +10 -5
- package/traits/room/roomTrait.d.ts.map +1 -1
- package/traits/room/roomTrait.js +5 -5
- package/traits/room/roomTrait.js.map +1 -1
- package/traits/scene/index.d.ts +1 -1
- package/traits/scene/index.d.ts.map +1 -1
- package/traits/scene/index.js +2 -2
- package/traits/scene/index.js.map +1 -1
- package/traits/scene/sceneTrait.d.ts +1 -1
- package/traits/scene/sceneTrait.d.ts.map +1 -1
- package/traits/scene/sceneTrait.js +3 -3
- package/traits/scene/sceneTrait.js.map +1 -1
- package/traits/scenery/index.d.ts +2 -2
- package/traits/scenery/index.d.ts.map +1 -1
- package/traits/scenery/index.js +4 -4
- package/traits/scenery/index.js.map +1 -1
- package/traits/scenery/sceneryBehavior.d.ts +1 -1
- package/traits/scenery/sceneryBehavior.d.ts.map +1 -1
- package/traits/scenery/sceneryBehavior.js +5 -5
- package/traits/scenery/sceneryBehavior.js.map +1 -1
- package/traits/scenery/sceneryTrait.d.ts +1 -1
- package/traits/scenery/sceneryTrait.d.ts.map +1 -1
- package/traits/scenery/sceneryTrait.js +3 -3
- package/traits/scenery/sceneryTrait.js.map +1 -1
- package/traits/story-info/index.d.ts +1 -1
- package/traits/story-info/index.d.ts.map +1 -1
- package/traits/story-info/index.js +2 -2
- package/traits/story-info/index.js.map +1 -1
- package/traits/story-info/storyInfoTrait.d.ts +1 -1
- package/traits/story-info/storyInfoTrait.d.ts.map +1 -1
- package/traits/supporter/index.d.ts +2 -2
- package/traits/supporter/index.d.ts.map +1 -1
- package/traits/supporter/index.js +4 -4
- package/traits/supporter/index.js.map +1 -1
- package/traits/supporter/supporterBehavior.d.ts +3 -3
- package/traits/supporter/supporterBehavior.d.ts.map +1 -1
- package/traits/supporter/supporterBehavior.js +15 -15
- package/traits/supporter/supporterBehavior.js.map +1 -1
- package/traits/supporter/supporterTrait.d.ts +1 -1
- package/traits/supporter/supporterTrait.d.ts.map +1 -1
- package/traits/supporter/supporterTrait.js +3 -3
- package/traits/supporter/supporterTrait.js.map +1 -1
- package/traits/switchable/index.d.ts +2 -2
- package/traits/switchable/index.d.ts.map +1 -1
- package/traits/switchable/index.js +2 -2
- package/traits/switchable/index.js.map +1 -1
- package/traits/switchable/switchableBehavior.d.ts +2 -2
- package/traits/switchable/switchableBehavior.d.ts.map +1 -1
- package/traits/switchable/switchableBehavior.js +18 -18
- package/traits/switchable/switchableBehavior.js.map +1 -1
- package/traits/switchable/switchableTrait.d.ts +1 -1
- package/traits/switchable/switchableTrait.d.ts.map +1 -1
- package/traits/switchable/switchableTrait.js +3 -3
- package/traits/switchable/switchableTrait.js.map +1 -1
- package/traits/trait-types.d.ts +4 -1
- package/traits/trait-types.d.ts.map +1 -1
- package/traits/trait-types.js +12 -2
- package/traits/trait-types.js.map +1 -1
- package/traits/trait.d.ts +1 -1
- package/traits/trait.d.ts.map +1 -1
- package/traits/vehicle/index.d.ts +2 -2
- package/traits/vehicle/index.d.ts.map +1 -1
- package/traits/vehicle/index.js +2 -2
- package/traits/vehicle/index.js.map +1 -1
- package/traits/vehicle/vehicleBehavior.d.ts +2 -2
- package/traits/vehicle/vehicleBehavior.d.ts.map +1 -1
- package/traits/vehicle/vehicleBehavior.js +7 -7
- package/traits/vehicle/vehicleBehavior.js.map +1 -1
- package/traits/vehicle/vehicleTrait.d.ts +1 -1
- package/traits/vehicle/vehicleTrait.d.ts.map +1 -1
- package/traits/vehicle/vehicleTrait.js +4 -4
- package/traits/vehicle/vehicleTrait.js.map +1 -1
- package/traits/weapon/index.d.ts +2 -2
- package/traits/weapon/index.d.ts.map +1 -1
- package/traits/weapon/index.js +4 -4
- package/traits/weapon/index.js.map +1 -1
- package/traits/weapon/weaponBehavior.d.ts +11 -4
- package/traits/weapon/weaponBehavior.d.ts.map +1 -1
- package/traits/weapon/weaponBehavior.js +24 -19
- package/traits/weapon/weaponBehavior.js.map +1 -1
- package/traits/weapon/weaponTrait.d.ts +1 -1
- package/traits/weapon/weaponTrait.d.ts.map +1 -1
- package/traits/wearable/index.d.ts +2 -2
- package/traits/wearable/index.d.ts.map +1 -1
- package/traits/wearable/index.js +2 -2
- package/traits/wearable/index.js.map +1 -1
- package/traits/wearable/wearableBehavior.d.ts +1 -1
- package/traits/wearable/wearableBehavior.d.ts.map +1 -1
- package/traits/wearable/wearableBehavior.js +11 -11
- package/traits/wearable/wearableBehavior.js.map +1 -1
- package/traits/wearable/wearableTrait.d.ts +1 -1
- package/traits/wearable/wearableTrait.d.ts.map +1 -1
- package/traits/wearable/wearableTrait.js +3 -3
- package/traits/wearable/wearableTrait.js.map +1 -1
- package/world/AuthorModel.d.ts +23 -17
- package/world/AuthorModel.d.ts.map +1 -1
- package/world/AuthorModel.js +15 -4
- package/world/AuthorModel.js.map +1 -1
- package/world/SharedDataStore.d.ts +2 -2
- package/world/SharedDataStore.d.ts.map +1 -1
- package/world/SharedDataStore.js +2 -2
- package/world/SharedDataStore.js.map +1 -1
- package/world/VisibilityBehavior.d.ts +60 -4
- package/world/VisibilityBehavior.d.ts.map +1 -1
- package/world/VisibilityBehavior.js +193 -101
- package/world/VisibilityBehavior.js.map +1 -1
- package/world/WorldEventSystem.d.ts +1 -1
- package/world/WorldEventSystem.d.ts.map +1 -1
- package/world/WorldModel.d.ts +65 -18
- package/world/WorldModel.d.ts.map +1 -1
- package/world/WorldModel.js +164 -114
- package/world/WorldModel.js.map +1 -1
- package/world/WorldSerializer.d.ts +4 -4
- package/world/WorldSerializer.d.ts.map +1 -1
- package/world/WorldSerializer.js +2 -2
- package/world/WorldSerializer.js.map +1 -1
- package/world/default-trait-registry.d.ts +1 -1
- package/world/default-trait-registry.d.ts.map +1 -1
- package/world/default-trait-registry.js +3 -3
- package/world/default-trait-registry.js.map +1 -1
- package/world/index.d.ts +9 -9
- package/world/index.d.ts.map +1 -1
- package/world/index.js +17 -16
- package/world/index.js.map +1 -1
- package/world/wall-creation.d.ts +2 -2
- package/world/wall-creation.d.ts.map +1 -1
- package/world/wall-creation.js +6 -6
- package/world/wall-creation.js.map +1 -1
- package/world/wall-validation.d.ts +2 -2
- package/world/wall-validation.d.ts.map +1 -1
- package/world/wall-validation.js +3 -3
- package/world/wall-validation.js.map +1 -1
|
@@ -1,38 +1,43 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Behavior for combatant entities
|
|
4
|
-
*/
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.CombatBehavior = void 0;
|
|
7
|
-
const behavior_1 = require("../../behaviors/behavior");
|
|
8
|
-
const trait_types_1 = require("../trait-types");
|
|
9
2
|
/**
|
|
10
3
|
* Behavior for combatant entities.
|
|
11
4
|
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
5
|
+
* Combat orchestration — armor reduction, inventory-drop on death, combat messages —
|
|
6
|
+
* over the entity's combat *stats* (`CombatantTrait`). Health itself lives on the
|
|
7
|
+
* required {@link HealthTrait}; all health reads/writes route through
|
|
8
|
+
* {@link HealthBehavior} (ADR-226 / ADR-223 child A). A combatant is guaranteed a
|
|
9
|
+
* `HealthTrait` by the load-time AC-7 check.
|
|
10
|
+
*
|
|
11
|
+
* Public interface: `canAttack` / `attack` / `heal` / `resurrect` / `isAlive` /
|
|
12
|
+
* `getHealth` / `getHealthPercentage` / `isHostile` / `setHostile`.
|
|
13
|
+
* Owner context: `@sharpee/world-model` — combat (requires the HEALTH layer).
|
|
14
14
|
*/
|
|
15
|
-
|
|
16
|
-
|
|
15
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
+
exports.CombatBehavior = void 0;
|
|
17
|
+
const behavior_js_1 = require("../../behaviors/behavior.js");
|
|
18
|
+
const trait_types_js_1 = require("../trait-types.js");
|
|
19
|
+
const healthBehavior_js_1 = require("../health/healthBehavior.js");
|
|
20
|
+
class CombatBehavior extends behavior_js_1.Behavior {
|
|
21
|
+
static requiredTraits = [trait_types_js_1.TraitType.COMBATANT, trait_types_js_1.TraitType.HEALTH];
|
|
17
22
|
/**
|
|
18
|
-
* Check if a combatant can be attacked
|
|
23
|
+
* Check if a combatant can be attacked (present, and alive per its health).
|
|
19
24
|
*/
|
|
20
25
|
static canAttack(entity) {
|
|
21
|
-
if (!entity.has(
|
|
26
|
+
if (!entity.has(trait_types_js_1.TraitType.COMBATANT)) {
|
|
22
27
|
return false;
|
|
23
28
|
}
|
|
24
|
-
const
|
|
25
|
-
return
|
|
29
|
+
const health = CombatBehavior.optional(entity, trait_types_js_1.TraitType.HEALTH);
|
|
30
|
+
return health ? healthBehavior_js_1.HealthBehavior.isAlive(health) : true;
|
|
26
31
|
}
|
|
27
32
|
/**
|
|
28
|
-
* Attack a combatant
|
|
33
|
+
* Attack a combatant.
|
|
29
34
|
* @param entity The combatant to attack
|
|
30
|
-
* @param damage Base damage amount
|
|
35
|
+
* @param damage Base damage amount (pre-armor)
|
|
31
36
|
* @param world The world model (needed for dropping inventory)
|
|
32
37
|
* @returns Result describing what happened
|
|
33
38
|
*/
|
|
34
39
|
static attack(entity, damage, world) {
|
|
35
|
-
if (!entity.has(
|
|
40
|
+
if (!entity.has(trait_types_js_1.TraitType.COMBATANT)) {
|
|
36
41
|
return {
|
|
37
42
|
success: false,
|
|
38
43
|
damage: 0,
|
|
@@ -41,8 +46,9 @@ class CombatBehavior extends behavior_1.Behavior {
|
|
|
41
46
|
message: 'Entity is not a combatant'
|
|
42
47
|
};
|
|
43
48
|
}
|
|
44
|
-
const combatant = entity.get(
|
|
45
|
-
|
|
49
|
+
const combatant = entity.get(trait_types_js_1.TraitType.COMBATANT);
|
|
50
|
+
const health = CombatBehavior.require(entity, trait_types_js_1.TraitType.HEALTH);
|
|
51
|
+
if (!healthBehavior_js_1.HealthBehavior.isAlive(health)) {
|
|
46
52
|
return {
|
|
47
53
|
success: false,
|
|
48
54
|
damage: 0,
|
|
@@ -50,21 +56,19 @@ class CombatBehavior extends behavior_1.Behavior {
|
|
|
50
56
|
remainingHealth: 0
|
|
51
57
|
};
|
|
52
58
|
}
|
|
53
|
-
// Apply armor reduction
|
|
59
|
+
// Apply armor reduction (always at least 1 damage), then route through health.
|
|
54
60
|
const actualDamage = Math.max(1, damage - combatant.armor);
|
|
55
|
-
|
|
56
|
-
combatant.health = Math.max(0, combatant.health - actualDamage);
|
|
61
|
+
const killed = healthBehavior_js_1.HealthBehavior.takeDamage(health, actualDamage, 'combat');
|
|
57
62
|
const result = {
|
|
58
63
|
success: true,
|
|
59
64
|
damage: actualDamage,
|
|
60
|
-
killed
|
|
61
|
-
remainingHealth:
|
|
65
|
+
killed,
|
|
66
|
+
remainingHealth: health.health,
|
|
62
67
|
message: combatant.hitMessage,
|
|
63
|
-
retaliated: combatant.canRetaliate &&
|
|
68
|
+
retaliated: combatant.canRetaliate && !killed
|
|
64
69
|
};
|
|
65
70
|
// Handle death
|
|
66
|
-
if (
|
|
67
|
-
combatant.isAlive = false;
|
|
71
|
+
if (killed) {
|
|
68
72
|
result.deathMessage = combatant.deathMessage;
|
|
69
73
|
// Drop inventory if specified
|
|
70
74
|
if (combatant.dropsInventory) {
|
|
@@ -85,69 +89,67 @@ class CombatBehavior extends behavior_1.Behavior {
|
|
|
85
89
|
return result;
|
|
86
90
|
}
|
|
87
91
|
/**
|
|
88
|
-
* Heal a combatant
|
|
92
|
+
* Heal a combatant. Returns the amount actually healed.
|
|
89
93
|
*/
|
|
90
94
|
static heal(entity, amount) {
|
|
91
|
-
if (!entity.has(
|
|
95
|
+
if (!entity.has(trait_types_js_1.TraitType.COMBATANT)) {
|
|
92
96
|
return 0;
|
|
93
97
|
}
|
|
94
|
-
const
|
|
95
|
-
|
|
96
|
-
return 0;
|
|
97
|
-
const oldHealth = combatant.health;
|
|
98
|
-
combatant.health = Math.min(combatant.maxHealth, combatant.health + amount);
|
|
99
|
-
return combatant.health - oldHealth;
|
|
98
|
+
const health = CombatBehavior.require(entity, trait_types_js_1.TraitType.HEALTH);
|
|
99
|
+
return healthBehavior_js_1.HealthBehavior.heal(health, amount);
|
|
100
100
|
}
|
|
101
101
|
/**
|
|
102
|
-
* Resurrect a dead combatant
|
|
102
|
+
* Resurrect a dead combatant — clears the terminal state and restores full health.
|
|
103
|
+
* @returns true if a dead combatant was resurrected, false if it was already alive
|
|
103
104
|
*/
|
|
104
105
|
static resurrect(entity) {
|
|
105
|
-
if (!entity.has(
|
|
106
|
+
if (!entity.has(trait_types_js_1.TraitType.COMBATANT)) {
|
|
106
107
|
return false;
|
|
107
108
|
}
|
|
108
|
-
const
|
|
109
|
-
if (
|
|
109
|
+
const health = CombatBehavior.require(entity, trait_types_js_1.TraitType.HEALTH);
|
|
110
|
+
if (healthBehavior_js_1.HealthBehavior.isAlive(health))
|
|
110
111
|
return false;
|
|
111
|
-
|
|
112
|
-
|
|
112
|
+
health.dead = false;
|
|
113
|
+
health.causeOfDeath = undefined;
|
|
114
|
+
health.health = health.maxHealth;
|
|
113
115
|
return true;
|
|
114
116
|
}
|
|
115
117
|
/**
|
|
116
|
-
* Check if combatant is alive
|
|
118
|
+
* Check if combatant is alive (via its health). Non-combatants are alive by default.
|
|
117
119
|
*/
|
|
118
120
|
static isAlive(entity) {
|
|
119
|
-
if (!entity.has(
|
|
121
|
+
if (!entity.has(trait_types_js_1.TraitType.COMBATANT)) {
|
|
120
122
|
return true; // Non-combatants are considered 'alive' by default
|
|
121
123
|
}
|
|
122
|
-
const
|
|
123
|
-
return
|
|
124
|
+
const health = CombatBehavior.optional(entity, trait_types_js_1.TraitType.HEALTH);
|
|
125
|
+
return health ? healthBehavior_js_1.HealthBehavior.isAlive(health) : true;
|
|
124
126
|
}
|
|
125
127
|
/**
|
|
126
|
-
* Get current health
|
|
128
|
+
* Get current health.
|
|
127
129
|
*/
|
|
128
130
|
static getHealth(entity) {
|
|
129
|
-
const
|
|
130
|
-
return
|
|
131
|
+
const health = CombatBehavior.require(entity, trait_types_js_1.TraitType.HEALTH);
|
|
132
|
+
return health.health;
|
|
131
133
|
}
|
|
132
134
|
/**
|
|
133
|
-
* Get health percentage
|
|
135
|
+
* Get health percentage.
|
|
134
136
|
*/
|
|
135
137
|
static getHealthPercentage(entity) {
|
|
136
|
-
const
|
|
137
|
-
return (
|
|
138
|
+
const health = CombatBehavior.require(entity, trait_types_js_1.TraitType.HEALTH);
|
|
139
|
+
return (health.health / health.maxHealth) * 100;
|
|
138
140
|
}
|
|
139
141
|
/**
|
|
140
|
-
* Check if combatant is hostile
|
|
142
|
+
* Check if combatant is hostile.
|
|
141
143
|
*/
|
|
142
144
|
static isHostile(entity) {
|
|
143
|
-
const combatant = CombatBehavior.require(entity,
|
|
145
|
+
const combatant = CombatBehavior.require(entity, trait_types_js_1.TraitType.COMBATANT);
|
|
144
146
|
return combatant.hostile;
|
|
145
147
|
}
|
|
146
148
|
/**
|
|
147
|
-
* Set hostility
|
|
149
|
+
* Set hostility.
|
|
148
150
|
*/
|
|
149
151
|
static setHostile(entity, hostile) {
|
|
150
|
-
const combatant = CombatBehavior.require(entity,
|
|
152
|
+
const combatant = CombatBehavior.require(entity, trait_types_js_1.TraitType.COMBATANT);
|
|
151
153
|
combatant.hostile = hostile;
|
|
152
154
|
}
|
|
153
155
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"combatantBehavior.js","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/combatant/combatantBehavior.ts"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"combatantBehavior.js","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/combatant/combatantBehavior.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,35 +1,35 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Combatant trait for entities that can engage in combat
|
|
2
|
+
* Combatant trait for entities that can engage in combat.
|
|
3
|
+
*
|
|
4
|
+
* Combat STATS only (ADR-226 / ADR-223 child A): a combatant's health, alive/
|
|
5
|
+
* conscious state, and recovery live on the entity's {@link HealthTrait} — the single
|
|
6
|
+
* life-state source — not here. `CombatantTrait` *requires* a `HealthTrait`
|
|
7
|
+
* (enforced at load; ADR-226 §2 / AC-7). Hostility stays here for now (moves to
|
|
8
|
+
* disposition in ADR-223 child C).
|
|
9
|
+
*
|
|
10
|
+
* Data only — all combat logic is in `CombatBehavior`, which reads/writes health
|
|
11
|
+
* through `HealthBehavior`.
|
|
12
|
+
* Owner context: `@sharpee/world-model` — combat stats (requires the HEALTH layer).
|
|
3
13
|
*/
|
|
4
|
-
import { ITrait } from '../trait';
|
|
14
|
+
import { ITrait } from '../trait.js';
|
|
5
15
|
export interface ICombatantData {
|
|
6
|
-
/** Current health points */
|
|
7
|
-
health?: number;
|
|
8
|
-
/** Maximum health points */
|
|
9
|
-
maxHealth?: number;
|
|
10
16
|
/** Combat skill (0-100, affects hit/dodge chance) - ADR-072 */
|
|
11
17
|
skill?: number;
|
|
12
18
|
/** Natural damage (if no weapon) - ADR-072 */
|
|
13
19
|
baseDamage?: number;
|
|
14
|
-
/** Whether this combatant is conscious (false = knocked out) - ADR-072 */
|
|
15
|
-
isConscious?: boolean;
|
|
16
|
-
/** Turns until consciousness recovery - ADR-072 */
|
|
17
|
-
recoveryTurns?: number;
|
|
18
20
|
/** Armor value that reduces damage */
|
|
19
21
|
armor?: number;
|
|
20
22
|
/** Attack power modifier (legacy, use baseDamage) */
|
|
21
23
|
attackPower?: number;
|
|
22
24
|
/** Defense modifier */
|
|
23
25
|
defense?: number;
|
|
24
|
-
/** Whether this combatant is alive */
|
|
25
|
-
isAlive?: boolean;
|
|
26
26
|
/** Custom message when hit */
|
|
27
27
|
hitMessage?: string;
|
|
28
28
|
/** Custom message when killed */
|
|
29
29
|
deathMessage?: string;
|
|
30
30
|
/** Custom message when attacking */
|
|
31
31
|
attackMessage?: string;
|
|
32
|
-
/** Whether this combatant is hostile by default */
|
|
32
|
+
/** Whether this combatant is hostile by default (moves to disposition, ADR-223 child C) */
|
|
33
33
|
hostile?: boolean;
|
|
34
34
|
/** Whether this combatant can retaliate */
|
|
35
35
|
canRetaliate?: boolean;
|
|
@@ -43,22 +43,17 @@ export interface ICombatantData {
|
|
|
43
43
|
/**
|
|
44
44
|
* Combatant trait indicates an entity can engage in combat.
|
|
45
45
|
*
|
|
46
|
-
* This trait contains only
|
|
47
|
-
* is in CombatBehavior
|
|
46
|
+
* This trait contains only combat *stats* — health and life-state are on the
|
|
47
|
+
* required {@link HealthTrait}. All combat logic is in `CombatBehavior`.
|
|
48
48
|
*/
|
|
49
49
|
export declare class CombatantTrait implements ITrait, ICombatantData {
|
|
50
50
|
static readonly type: "combatant";
|
|
51
51
|
readonly type: "combatant";
|
|
52
|
-
health: number;
|
|
53
|
-
maxHealth: number;
|
|
54
52
|
skill: number;
|
|
55
53
|
baseDamage: number;
|
|
56
|
-
isConscious: boolean;
|
|
57
|
-
recoveryTurns?: number;
|
|
58
54
|
armor: number;
|
|
59
55
|
attackPower: number;
|
|
60
56
|
defense: number;
|
|
61
|
-
isAlive: boolean;
|
|
62
57
|
hitMessage?: string;
|
|
63
58
|
deathMessage?: string;
|
|
64
59
|
attackMessage?: string;
|
|
@@ -68,34 +63,5 @@ export declare class CombatantTrait implements ITrait, ICombatantData {
|
|
|
68
63
|
experienceValue: number;
|
|
69
64
|
isUndead: boolean;
|
|
70
65
|
constructor(data?: ICombatantData);
|
|
71
|
-
/**
|
|
72
|
-
* Computed property to check if combatant is alive based on health
|
|
73
|
-
*/
|
|
74
|
-
get alive(): boolean;
|
|
75
|
-
/**
|
|
76
|
-
* Check if combatant can act (alive and conscious)
|
|
77
|
-
*/
|
|
78
|
-
get canAct(): boolean;
|
|
79
|
-
/**
|
|
80
|
-
* Knock out this combatant (unconscious but alive)
|
|
81
|
-
*/
|
|
82
|
-
knockOut(recoveryTurns?: number): void;
|
|
83
|
-
/**
|
|
84
|
-
* Wake up this combatant
|
|
85
|
-
*/
|
|
86
|
-
wakeUp(): void;
|
|
87
|
-
/**
|
|
88
|
-
* Kill this combatant
|
|
89
|
-
*/
|
|
90
|
-
kill(): void;
|
|
91
|
-
/**
|
|
92
|
-
* Take damage
|
|
93
|
-
* @returns true if combatant was killed
|
|
94
|
-
*/
|
|
95
|
-
takeDamage(amount: number): boolean;
|
|
96
|
-
/**
|
|
97
|
-
* Heal this combatant
|
|
98
|
-
*/
|
|
99
|
-
heal(amount: number): void;
|
|
100
66
|
}
|
|
101
67
|
//# sourceMappingURL=combatantTrait.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"combatantTrait.d.ts","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/combatant/combatantTrait.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"combatantTrait.d.ts","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/combatant/combatantTrait.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,MAAM,WAAW,cAAc;IAC7B,+DAA+D;IAC/D,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,8CAA8C;IAC9C,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,sCAAsC;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,qDAAqD;IACrD,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,uBAAuB;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,8BAA8B;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,iCAAiC;IACjC,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,oCAAoC;IACpC,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,2FAA2F;IAC3F,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,2CAA2C;IAC3C,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB,0CAA0C;IAC1C,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB,8CAA8C;IAC9C,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;;;GAKG;AACH,qBAAa,cAAe,YAAW,MAAM,EAAE,cAAc;IAC3D,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAG,WAAW,CAAU;IAC5C,QAAQ,CAAC,IAAI,EAAG,WAAW,CAAU;IAErC,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,OAAO,CAAC;IACtB,cAAc,EAAE,OAAO,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,OAAO,CAAC;gBAEN,IAAI,GAAE,cAAmB;CAgBtC"}
|
|
@@ -1,29 +1,33 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/**
|
|
3
|
-
* Combatant trait for entities that can engage in combat
|
|
3
|
+
* Combatant trait for entities that can engage in combat.
|
|
4
|
+
*
|
|
5
|
+
* Combat STATS only (ADR-226 / ADR-223 child A): a combatant's health, alive/
|
|
6
|
+
* conscious state, and recovery live on the entity's {@link HealthTrait} — the single
|
|
7
|
+
* life-state source — not here. `CombatantTrait` *requires* a `HealthTrait`
|
|
8
|
+
* (enforced at load; ADR-226 §2 / AC-7). Hostility stays here for now (moves to
|
|
9
|
+
* disposition in ADR-223 child C).
|
|
10
|
+
*
|
|
11
|
+
* Data only — all combat logic is in `CombatBehavior`, which reads/writes health
|
|
12
|
+
* through `HealthBehavior`.
|
|
13
|
+
* Owner context: `@sharpee/world-model` — combat stats (requires the HEALTH layer).
|
|
4
14
|
*/
|
|
5
15
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
16
|
exports.CombatantTrait = void 0;
|
|
7
17
|
/**
|
|
8
18
|
* Combatant trait indicates an entity can engage in combat.
|
|
9
19
|
*
|
|
10
|
-
* This trait contains only
|
|
11
|
-
* is in CombatBehavior
|
|
20
|
+
* This trait contains only combat *stats* — health and life-state are on the
|
|
21
|
+
* required {@link HealthTrait}. All combat logic is in `CombatBehavior`.
|
|
12
22
|
*/
|
|
13
23
|
class CombatantTrait {
|
|
14
24
|
static type = 'combatant';
|
|
15
25
|
type = 'combatant';
|
|
16
|
-
// CombatantData properties
|
|
17
|
-
health;
|
|
18
|
-
maxHealth;
|
|
19
26
|
skill;
|
|
20
27
|
baseDamage;
|
|
21
|
-
isConscious;
|
|
22
|
-
recoveryTurns;
|
|
23
28
|
armor;
|
|
24
29
|
attackPower;
|
|
25
30
|
defense;
|
|
26
|
-
isAlive;
|
|
27
31
|
hitMessage;
|
|
28
32
|
deathMessage;
|
|
29
33
|
attackMessage;
|
|
@@ -34,16 +38,11 @@ class CombatantTrait {
|
|
|
34
38
|
isUndead;
|
|
35
39
|
constructor(data = {}) {
|
|
36
40
|
// Set defaults and merge with provided data
|
|
37
|
-
this.health = data.health ?? data.maxHealth ?? 10;
|
|
38
|
-
this.maxHealth = data.maxHealth ?? 10;
|
|
39
41
|
this.skill = data.skill ?? 30; // Default skill level (ADR-072)
|
|
40
42
|
this.baseDamage = data.baseDamage ?? data.attackPower ?? 1; // ADR-072
|
|
41
|
-
this.isConscious = data.isConscious ?? true; // ADR-072
|
|
42
|
-
this.recoveryTurns = data.recoveryTurns; // ADR-072
|
|
43
43
|
this.armor = data.armor ?? 0;
|
|
44
44
|
this.attackPower = data.attackPower ?? 1;
|
|
45
45
|
this.defense = data.defense ?? 0;
|
|
46
|
-
this.isAlive = data.isAlive ?? true;
|
|
47
46
|
this.hitMessage = data.hitMessage;
|
|
48
47
|
this.deathMessage = data.deathMessage;
|
|
49
48
|
this.attackMessage = data.attackMessage;
|
|
@@ -53,72 +52,6 @@ class CombatantTrait {
|
|
|
53
52
|
this.experienceValue = data.experienceValue ?? 0;
|
|
54
53
|
this.isUndead = data.isUndead ?? false;
|
|
55
54
|
}
|
|
56
|
-
/**
|
|
57
|
-
* Computed property to check if combatant is alive based on health
|
|
58
|
-
*/
|
|
59
|
-
get alive() {
|
|
60
|
-
return this.health > 0;
|
|
61
|
-
}
|
|
62
|
-
/**
|
|
63
|
-
* Check if combatant can act (alive and conscious)
|
|
64
|
-
*/
|
|
65
|
-
get canAct() {
|
|
66
|
-
return this.isAlive && this.isConscious;
|
|
67
|
-
}
|
|
68
|
-
/**
|
|
69
|
-
* Knock out this combatant (unconscious but alive)
|
|
70
|
-
*/
|
|
71
|
-
knockOut(recoveryTurns) {
|
|
72
|
-
this.isConscious = false;
|
|
73
|
-
if (recoveryTurns !== undefined) {
|
|
74
|
-
this.recoveryTurns = recoveryTurns;
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
/**
|
|
78
|
-
* Wake up this combatant
|
|
79
|
-
*/
|
|
80
|
-
wakeUp() {
|
|
81
|
-
if (this.isAlive) {
|
|
82
|
-
this.isConscious = true;
|
|
83
|
-
this.recoveryTurns = undefined;
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
/**
|
|
87
|
-
* Kill this combatant
|
|
88
|
-
*/
|
|
89
|
-
kill() {
|
|
90
|
-
this.health = 0;
|
|
91
|
-
this.isAlive = false;
|
|
92
|
-
this.isConscious = false;
|
|
93
|
-
}
|
|
94
|
-
/**
|
|
95
|
-
* Take damage
|
|
96
|
-
* @returns true if combatant was killed
|
|
97
|
-
*/
|
|
98
|
-
takeDamage(amount) {
|
|
99
|
-
const effectiveDamage = Math.max(0, amount - this.armor);
|
|
100
|
-
this.health = Math.max(0, this.health - effectiveDamage);
|
|
101
|
-
if (this.health <= 0) {
|
|
102
|
-
this.kill();
|
|
103
|
-
return true;
|
|
104
|
-
}
|
|
105
|
-
// Check for knockout (20% health threshold per ADR-072)
|
|
106
|
-
if (this.health <= this.maxHealth * 0.2) {
|
|
107
|
-
this.knockOut();
|
|
108
|
-
}
|
|
109
|
-
return false;
|
|
110
|
-
}
|
|
111
|
-
/**
|
|
112
|
-
* Heal this combatant
|
|
113
|
-
*/
|
|
114
|
-
heal(amount) {
|
|
115
|
-
if (this.isAlive) {
|
|
116
|
-
this.health = Math.min(this.maxHealth, this.health + amount);
|
|
117
|
-
if (this.health > this.maxHealth * 0.2) {
|
|
118
|
-
this.wakeUp();
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
55
|
}
|
|
123
56
|
exports.CombatantTrait = CombatantTrait;
|
|
124
57
|
//# sourceMappingURL=combatantTrait.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"combatantTrait.js","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/combatant/combatantTrait.ts"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"combatantTrait.js","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/combatant/combatantTrait.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;GAYG;;;AA6CH;;;;;GAKG;AACH,MAAa,cAAc;IACzB,MAAM,CAAU,IAAI,GAAG,WAAoB,CAAC;IACnC,IAAI,GAAG,WAAoB,CAAC;IAErC,KAAK,CAAS;IACd,UAAU,CAAS;IACnB,KAAK,CAAS;IACd,WAAW,CAAS;IACpB,OAAO,CAAS;IAChB,UAAU,CAAU;IACpB,YAAY,CAAU;IACtB,aAAa,CAAU;IACvB,OAAO,CAAU;IACjB,YAAY,CAAU;IACtB,cAAc,CAAU;IACxB,eAAe,CAAS;IACxB,QAAQ,CAAU;IAElB,YAAY,OAAuB,EAAE;QACnC,4CAA4C;QAC5C,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,gCAAgC;QAC/D,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC,UAAU;QACtE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC;QAC7B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC;QACjC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QAClC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QACtC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;QACxC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,KAAK,CAAC;QACrC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC;QAC9C,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC;QAClD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,IAAI,CAAC,CAAC;QACjD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,KAAK,CAAC;IACzC,CAAC;;AAjCH,wCAkCC"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { CombatantTrait, ICombatantData } from './combatantTrait';
|
|
2
|
-
export { CombatBehavior, ICombatResult } from './combatantBehavior';
|
|
1
|
+
export { CombatantTrait, ICombatantData } from './combatantTrait.js';
|
|
2
|
+
export { CombatBehavior, ICombatResult } from './combatantBehavior.js';
|
|
3
3
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/combatant/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/combatant/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.CombatBehavior = exports.CombatantTrait = void 0;
|
|
4
|
-
var
|
|
5
|
-
Object.defineProperty(exports, "CombatantTrait", { enumerable: true, get: function () { return
|
|
6
|
-
var
|
|
7
|
-
Object.defineProperty(exports, "CombatBehavior", { enumerable: true, get: function () { return
|
|
4
|
+
var combatantTrait_js_1 = require("./combatantTrait.js");
|
|
5
|
+
Object.defineProperty(exports, "CombatantTrait", { enumerable: true, get: function () { return combatantTrait_js_1.CombatantTrait; } });
|
|
6
|
+
var combatantBehavior_js_1 = require("./combatantBehavior.js");
|
|
7
|
+
Object.defineProperty(exports, "CombatBehavior", { enumerable: true, get: function () { return combatantBehavior_js_1.CombatBehavior; } });
|
|
8
8
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/combatant/index.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/combatant/index.ts"],"names":[],"mappings":";;;AAAA,yDAAqE;AAA5D,mHAAA,cAAc,OAAA;AACvB,+DAAuE;AAA9D,sHAAA,cAAc,OAAA"}
|
|
@@ -11,9 +11,9 @@
|
|
|
11
11
|
* Public interface: ConcealedStateTrait, IConcealedStateTrait, isConcealed, getConcealmentState.
|
|
12
12
|
* Owner context: @sharpee/world-model / traits
|
|
13
13
|
*/
|
|
14
|
-
import { ITrait } from '../trait';
|
|
15
|
-
import { IFEntity } from '../../entities';
|
|
16
|
-
import { ConcealmentPosition, ConcealmentQuality } from './concealmentTrait';
|
|
14
|
+
import { ITrait } from '../trait.js';
|
|
15
|
+
import { IFEntity } from '../../entities/index.js';
|
|
16
|
+
import { ConcealmentPosition, ConcealmentQuality } from './concealmentTrait.js';
|
|
17
17
|
/**
|
|
18
18
|
* Data interface for the concealed state.
|
|
19
19
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"concealedStateTrait.d.ts","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/concealment/concealedStateTrait.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"concealedStateTrait.d.ts","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/concealment/concealedStateTrait.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAEnD,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAEhF;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,4DAA4D;IAC5D,QAAQ,EAAE,MAAM,CAAC;IAEjB,8BAA8B;IAC9B,QAAQ,EAAE,mBAAmB,CAAC;IAE9B,mEAAmE;IACnE,OAAO,EAAE,kBAAkB,CAAC;CAC7B;AAED;;;;;;GAMG;AACH,qBAAa,mBAAoB,YAAW,MAAM,EAAE,oBAAoB;IACtE,MAAM,CAAC,QAAQ,CAAC,IAAI,8BAA8B;IAClD,QAAQ,CAAC,IAAI,8BAA8B;IAE3C,4EAA4E;IAC5E,MAAM,CAAC,QAAQ,CAAC,YAAY,gCAAoC;IAEhE,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,OAAO,EAAE,kBAAkB,CAAC;gBAEhB,IAAI,EAAE,oBAAoB;CAKvC;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,QAAQ,GAAG,OAAO,CAErD;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,QAAQ,GAAG,oBAAoB,GAAG,SAAS,CAItF"}
|
|
@@ -16,7 +16,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
16
16
|
exports.ConcealedStateTrait = void 0;
|
|
17
17
|
exports.isConcealed = isConcealed;
|
|
18
18
|
exports.getConcealmentState = getConcealmentState;
|
|
19
|
-
const
|
|
19
|
+
const VisibilityBehavior_js_1 = require("../../world/VisibilityBehavior.js");
|
|
20
20
|
/**
|
|
21
21
|
* Dynamic trait applied to an actor to mark them as concealed.
|
|
22
22
|
*
|
|
@@ -28,7 +28,7 @@ class ConcealedStateTrait {
|
|
|
28
28
|
static type = 'if.trait.concealed_state';
|
|
29
29
|
type = 'if.trait.concealed_state';
|
|
30
30
|
/** Registers the visibility capability — concealed actors block canSee() */
|
|
31
|
-
static capabilities = [
|
|
31
|
+
static capabilities = [VisibilityBehavior_js_1.VISIBILITY_CAPABILITY];
|
|
32
32
|
targetId;
|
|
33
33
|
position;
|
|
34
34
|
quality;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"concealedStateTrait.js","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/concealment/concealedStateTrait.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;GAYG;;;AAoDH,kCAEC;AAQD,kDAIC;AA9DD,
|
|
1
|
+
{"version":3,"file":"concealedStateTrait.js","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/concealment/concealedStateTrait.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;GAYG;;;AAoDH,kCAEC;AAQD,kDAIC;AA9DD,6EAA0E;AAiB1E;;;;;;GAMG;AACH,MAAa,mBAAmB;IAC9B,MAAM,CAAU,IAAI,GAAG,0BAA0B,CAAC;IACzC,IAAI,GAAG,0BAA0B,CAAC;IAE3C,4EAA4E;IAC5E,MAAM,CAAU,YAAY,GAAG,CAAC,6CAAqB,CAAU,CAAC;IAEhE,QAAQ,CAAS;IACjB,QAAQ,CAAsB;IAC9B,OAAO,CAAqB;IAE5B,YAAY,IAA0B;QACpC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC9B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC9B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IAC9B,CAAC;;AAfH,kDAgBC;AAED;;;;;GAKG;AACH,SAAgB,WAAW,CAAC,MAAgB;IAC1C,OAAO,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;AAC9C,CAAC;AAED;;;;;GAKG;AACH,SAAgB,mBAAmB,CAAC,MAAgB;IAClD,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;IACnD,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7B,OAAO,KAAwC,CAAC;AAClD,CAAC"}
|
|
@@ -8,8 +8,8 @@
|
|
|
8
8
|
* Public interface: ConcealedVisibilityBehavior, registerConcealedVisibilityBehavior.
|
|
9
9
|
* Owner context: @sharpee/world-model / traits / concealment
|
|
10
10
|
*/
|
|
11
|
-
import { CapabilityBehavior } from '../../capabilities/capability-behavior';
|
|
12
|
-
import { WorldModel } from '../../world/WorldModel';
|
|
11
|
+
import { CapabilityBehavior } from '../../capabilities/capability-behavior.js';
|
|
12
|
+
import { WorldModel } from '../../world/WorldModel.js';
|
|
13
13
|
/**
|
|
14
14
|
* Default visibility behavior for concealed actors.
|
|
15
15
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"concealedVisibilityBehavior.d.ts","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/concealment/concealedVisibilityBehavior.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"concealedVisibilityBehavior.d.ts","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/concealment/concealedVisibilityBehavior.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,2CAA2C,CAAC;AAC/E,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAIvD;;;;;GAKG;AACH,eAAO,MAAM,2BAA2B,EAAE,kBAUzC,CAAC;AAEF;;;;;;;;;;GAUG;AACH,wBAAgB,mCAAmC,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI,CAM3E"}
|
|
@@ -12,8 +12,8 @@
|
|
|
12
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
13
|
exports.ConcealedVisibilityBehavior = void 0;
|
|
14
14
|
exports.registerConcealedVisibilityBehavior = registerConcealedVisibilityBehavior;
|
|
15
|
-
const
|
|
16
|
-
const
|
|
15
|
+
const VisibilityBehavior_js_1 = require("../../world/VisibilityBehavior.js");
|
|
16
|
+
const concealedStateTrait_js_1 = require("./concealedStateTrait.js");
|
|
17
17
|
/**
|
|
18
18
|
* Default visibility behavior for concealed actors.
|
|
19
19
|
*
|
|
@@ -42,6 +42,6 @@ exports.ConcealedVisibilityBehavior = {
|
|
|
42
42
|
* @param world - The world instance to register the binding on.
|
|
43
43
|
*/
|
|
44
44
|
function registerConcealedVisibilityBehavior(world) {
|
|
45
|
-
world.registerCapabilityBehavior(
|
|
45
|
+
world.registerCapabilityBehavior(concealedStateTrait_js_1.ConcealedStateTrait.type, VisibilityBehavior_js_1.VISIBILITY_CAPABILITY, exports.ConcealedVisibilityBehavior);
|
|
46
46
|
}
|
|
47
47
|
//# sourceMappingURL=concealedVisibilityBehavior.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"concealedVisibilityBehavior.js","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/concealment/concealedVisibilityBehavior.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;AAoCH,kFAMC;AAtCD,
|
|
1
|
+
{"version":3,"file":"concealedVisibilityBehavior.js","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/concealment/concealedVisibilityBehavior.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;AAoCH,kFAMC;AAtCD,6EAA0E;AAC1E,qEAA+D;AAE/D;;;;;GAKG;AACU,QAAA,2BAA2B,GAAuB;IAC7D,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW;QAChD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;IAC9C,CAAC;IAED,yDAAyD;IACzD,iFAAiF;IACjF,OAAO,KAAI,CAAC;IACZ,MAAM,KAAK,OAAO,EAAE,CAAC,CAAC,CAAC;IACvB,OAAO,KAAK,OAAO,EAAE,CAAC,CAAC,CAAC;CACzB,CAAC;AAEF;;;;;;;;;;GAUG;AACH,SAAgB,mCAAmC,CAAC,KAAiB;IACnE,KAAK,CAAC,0BAA0B,CAC9B,4CAAmB,CAAC,IAAI,EACxB,6CAAqB,EACrB,mCAA2B,CAC5B,CAAC;AACJ,CAAC"}
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* Public interface: ConcealmentTrait, ConcealmentPosition, isConcealmentTrait.
|
|
9
9
|
* Owner context: @sharpee/world-model / traits
|
|
10
10
|
*/
|
|
11
|
-
import { ITrait } from '../trait';
|
|
11
|
+
import { ITrait } from '../trait.js';
|
|
12
12
|
/** How an actor can hide relative to the entity */
|
|
13
13
|
export type ConcealmentPosition = 'behind' | 'under' | 'on' | 'inside';
|
|
14
14
|
/** How well the hiding spot conceals — affects NPC detection at the story level */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"concealmentTrait.d.ts","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/concealment/concealmentTrait.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"concealmentTrait.d.ts","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/concealment/concealmentTrait.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,mDAAmD;AACnD,MAAM,MAAM,mBAAmB,GAAG,QAAQ,GAAG,OAAO,GAAG,IAAI,GAAG,QAAQ,CAAC;AAEvE,mFAAmF;AACnF,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,WAAW,CAAC;AAExE;;;;;;;;;;;GAWG;AACH,qBAAa,gBAAiB,YAAW,MAAM;IAC7C,MAAM,CAAC,QAAQ,CAAC,IAAI,0BAA0B;IAC9C,QAAQ,CAAC,IAAI,0BAA0B;IAEvC,sDAAsD;IACtD,SAAS,EAAE,mBAAmB,EAAE,CAAC;IAEjC,gEAAgE;IAChE,QAAQ,EAAE,MAAM,CAAC;IAEjB,uEAAuE;IACvE,OAAO,EAAE,kBAAkB,CAAC;gBAEhB,OAAO,EAAE;QACnB,SAAS,EAAE,mBAAmB,EAAE,CAAC;QACjC,OAAO,EAAE,kBAAkB,CAAC;QAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB;IAMD;;;;;OAKG;IACH,gBAAgB,CAAC,QAAQ,EAAE,mBAAmB,GAAG,OAAO;CAGzD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,gBAAgB,CAE3E"}
|