@sharpee/stdlib 1.0.0 → 1.0.8
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/actions/author/index.d.ts.map +1 -1
- package/actions/author/trace.d.ts +1 -1
- package/actions/author/trace.d.ts.map +1 -1
- package/actions/base/index.d.ts.map +1 -1
- package/actions/base/migration-shim.d.ts +1 -1
- package/actions/base/migration-shim.d.ts.map +1 -1
- package/actions/base/report-helpers.d.ts +1 -1
- package/actions/base/report-helpers.d.ts.map +1 -1
- package/actions/base/snapshot-utils.d.ts +1 -1
- package/actions/base/snapshot-utils.d.ts.map +1 -1
- package/actions/base/snapshot-utils.js +1 -1
- package/actions/capability-dispatch.d.ts.map +1 -1
- package/actions/capability-dispatch.js +1 -1
- package/actions/constants.d.ts.map +1 -1
- package/actions/context-adapter.d.ts +3 -3
- package/actions/context-adapter.d.ts.map +1 -1
- package/actions/data-builder-types.d.ts +1 -1
- package/actions/data-builder-types.d.ts.map +1 -1
- package/actions/enhanced-context.d.ts +1 -1
- package/actions/enhanced-context.d.ts.map +1 -1
- package/actions/enhanced-context.js +2 -2
- package/actions/enhanced-types.d.ts +3 -3
- package/actions/enhanced-types.d.ts.map +1 -1
- package/actions/helpers/emit-illustrations.d.ts +2 -2
- package/actions/helpers/emit-illustrations.d.ts.map +1 -1
- package/actions/index.d.ts +1 -1
- package/actions/index.d.ts.map +1 -1
- package/actions/index.js +1 -1
- package/actions/meta-action.d.ts +1 -1
- package/actions/meta-action.d.ts.map +1 -1
- package/actions/meta-registry.d.ts.map +1 -1
- package/actions/registry.d.ts +1 -1
- package/actions/registry.d.ts.map +1 -1
- package/actions/standard/about/about-events.d.ts.map +1 -1
- package/actions/standard/about/about.d.ts.map +1 -1
- package/actions/standard/about/about.js +1 -1
- package/actions/standard/about/index.d.ts.map +1 -1
- package/actions/standard/again/again-events.d.ts.map +1 -1
- package/actions/standard/again/again.d.ts.map +1 -1
- package/actions/standard/again/again.js +1 -1
- package/actions/standard/again/index.d.ts.map +1 -1
- package/actions/standard/attacking/attacking-data.d.ts.map +1 -1
- package/actions/standard/attacking/attacking-events.d.ts +1 -1
- package/actions/standard/attacking/attacking-events.d.ts.map +1 -1
- package/actions/standard/attacking/attacking-types.d.ts +1 -1
- package/actions/standard/attacking/attacking-types.d.ts.map +1 -1
- package/actions/standard/attacking/attacking.d.ts.map +1 -1
- package/actions/standard/attacking/attacking.js +1 -1
- package/actions/standard/attacking/index.d.ts.map +1 -1
- package/actions/standard/climbing/climbing-events.d.ts +1 -1
- package/actions/standard/climbing/climbing-events.d.ts.map +1 -1
- package/actions/standard/climbing/climbing.d.ts.map +1 -1
- package/actions/standard/climbing/climbing.js +1 -1
- package/actions/standard/climbing/index.d.ts.map +1 -1
- package/actions/standard/closing/closing-data.d.ts.map +1 -1
- package/actions/standard/closing/closing-error-prevents-closing.d.ts.map +1 -1
- package/actions/standard/closing/closing-event-data.d.ts +1 -1
- package/actions/standard/closing/closing-event-data.d.ts.map +1 -1
- package/actions/standard/closing/closing-messages.d.ts.map +1 -1
- package/actions/standard/closing/closing.d.ts.map +1 -1
- package/actions/standard/closing/closing.js +1 -1
- package/actions/standard/closing/index.d.ts.map +1 -1
- package/actions/standard/drinking/drinking-events.d.ts +1 -1
- package/actions/standard/drinking/drinking-events.d.ts.map +1 -1
- package/actions/standard/drinking/drinking.d.ts.map +1 -1
- package/actions/standard/drinking/drinking.js +1 -1
- package/actions/standard/drinking/index.d.ts.map +1 -1
- package/actions/standard/dropping/dropping-data.d.ts.map +1 -1
- package/actions/standard/dropping/dropping-data.js +1 -1
- package/actions/standard/dropping/dropping-events.d.ts +1 -1
- package/actions/standard/dropping/dropping-events.d.ts.map +1 -1
- package/actions/standard/dropping/dropping-messages.d.ts.map +1 -1
- package/actions/standard/dropping/dropping-types.d.ts +2 -2
- package/actions/standard/dropping/dropping-types.d.ts.map +1 -1
- package/actions/standard/dropping/dropping.d.ts.map +1 -1
- package/actions/standard/dropping/dropping.js +1 -1
- package/actions/standard/dropping/index.d.ts.map +1 -1
- package/actions/standard/eating/eating-events.d.ts +1 -1
- package/actions/standard/eating/eating-events.d.ts.map +1 -1
- package/actions/standard/eating/eating.d.ts.map +1 -1
- package/actions/standard/eating/eating.js +1 -1
- package/actions/standard/eating/index.d.ts.map +1 -1
- package/actions/standard/entering/entering-events.d.ts +1 -1
- package/actions/standard/entering/entering-events.d.ts.map +1 -1
- package/actions/standard/entering/entering-messages.d.ts.map +1 -1
- package/actions/standard/entering/entering.d.ts.map +1 -1
- package/actions/standard/entering/entering.js +1 -1
- package/actions/standard/entering/index.d.ts.map +1 -1
- package/actions/standard/examining/examining-data.d.ts +1 -1
- package/actions/standard/examining/examining-data.d.ts.map +1 -1
- package/actions/standard/examining/examining-data.js +2 -2
- package/actions/standard/examining/examining-events.d.ts +1 -1
- package/actions/standard/examining/examining-events.d.ts.map +1 -1
- package/actions/standard/examining/examining-messages.d.ts.map +1 -1
- package/actions/standard/examining/examining.d.ts.map +1 -1
- package/actions/standard/examining/index.d.ts.map +1 -1
- package/actions/standard/exiting/exiting-events.d.ts +1 -1
- package/actions/standard/exiting/exiting-events.d.ts.map +1 -1
- package/actions/standard/exiting/exiting-messages.d.ts.map +1 -1
- package/actions/standard/exiting/exiting.d.ts.map +1 -1
- package/actions/standard/exiting/exiting.js +1 -1
- package/actions/standard/exiting/index.d.ts.map +1 -1
- package/actions/standard/giving/giving-events.d.ts.map +1 -1
- package/actions/standard/giving/giving.d.ts.map +1 -1
- package/actions/standard/giving/giving.js +1 -1
- package/actions/standard/giving/index.d.ts.map +1 -1
- package/actions/standard/going/going-data.d.ts.map +1 -1
- package/actions/standard/going/going-data.js +1 -1
- package/actions/standard/going/going-events.d.ts +1 -1
- package/actions/standard/going/going-events.d.ts.map +1 -1
- package/actions/standard/going/going-messages.d.ts.map +1 -1
- package/actions/standard/going/going.d.ts +1 -1
- package/actions/standard/going/going.d.ts.map +1 -1
- package/actions/standard/going/going.js +1 -1
- package/actions/standard/going/index.d.ts.map +1 -1
- package/actions/standard/help/help-events.d.ts.map +1 -1
- package/actions/standard/help/help.d.ts.map +1 -1
- package/actions/standard/help/index.d.ts.map +1 -1
- package/actions/standard/hiding/concealment-break.d.ts +1 -1
- package/actions/standard/hiding/concealment-break.d.ts.map +1 -1
- package/actions/standard/hiding/concealment-break.js +1 -1
- package/actions/standard/hiding/hiding-events.d.ts +2 -2
- package/actions/standard/hiding/hiding-events.d.ts.map +1 -1
- package/actions/standard/hiding/hiding.d.ts.map +1 -1
- package/actions/standard/hiding/hiding.js +1 -1
- package/actions/standard/hiding/index.d.ts.map +1 -1
- package/actions/standard/hiding/revealing.d.ts.map +1 -1
- package/actions/standard/hiding/revealing.js +1 -1
- package/actions/standard/index.d.ts.map +1 -1
- package/actions/standard/inserting/index.d.ts.map +1 -1
- package/actions/standard/inserting/inserting-data.d.ts.map +1 -1
- package/actions/standard/inserting/inserting-events.d.ts.map +1 -1
- package/actions/standard/inserting/inserting-messages.d.ts.map +1 -1
- package/actions/standard/inserting/inserting.d.ts.map +1 -1
- package/actions/standard/inventory/index.d.ts.map +1 -1
- package/actions/standard/inventory/inventory-events.d.ts.map +1 -1
- package/actions/standard/inventory/inventory-messages.d.ts.map +1 -1
- package/actions/standard/inventory/inventory.d.ts.map +1 -1
- package/actions/standard/inventory/inventory.js +1 -1
- package/actions/standard/listening/index.d.ts.map +1 -1
- package/actions/standard/listening/listening-events.d.ts +1 -1
- package/actions/standard/listening/listening-events.d.ts.map +1 -1
- package/actions/standard/listening/listening.d.ts.map +1 -1
- package/actions/standard/listening/listening.js +1 -1
- package/actions/standard/lock-shared.d.ts +2 -2
- package/actions/standard/lock-shared.d.ts.map +1 -1
- package/actions/standard/lock-shared.js +1 -1
- package/actions/standard/locking/index.d.ts.map +1 -1
- package/actions/standard/locking/locking-events.d.ts +1 -1
- package/actions/standard/locking/locking-events.d.ts.map +1 -1
- package/actions/standard/locking/locking-messages.d.ts.map +1 -1
- package/actions/standard/locking/locking.d.ts.map +1 -1
- package/actions/standard/locking/locking.js +1 -1
- package/actions/standard/looking/index.d.ts.map +1 -1
- package/actions/standard/looking/looking-data.d.ts.map +1 -1
- package/actions/standard/looking/looking-data.js +2 -2
- package/actions/standard/looking/looking-events.d.ts.map +1 -1
- package/actions/standard/looking/looking-messages.d.ts.map +1 -1
- package/actions/standard/looking/looking.d.ts.map +1 -1
- package/actions/standard/looking/looking.js +1 -1
- package/actions/standard/lowering/index.d.ts.map +1 -1
- package/actions/standard/lowering/lowering.d.ts.map +1 -1
- package/actions/standard/opening/index.d.ts.map +1 -1
- package/actions/standard/opening/opening-data.d.ts.map +1 -1
- package/actions/standard/opening/opening-events.d.ts +1 -1
- package/actions/standard/opening/opening-events.d.ts.map +1 -1
- package/actions/standard/opening/opening-messages.d.ts.map +1 -1
- package/actions/standard/opening/opening-types.d.ts +1 -1
- package/actions/standard/opening/opening-types.d.ts.map +1 -1
- package/actions/standard/opening/opening.d.ts.map +1 -1
- package/actions/standard/opening/opening.js +1 -1
- package/actions/standard/pulling/index.d.ts.map +1 -1
- package/actions/standard/pulling/pulling-events.d.ts +1 -1
- package/actions/standard/pulling/pulling-events.d.ts.map +1 -1
- package/actions/standard/pulling/pulling.d.ts.map +1 -1
- package/actions/standard/pulling/pulling.js +1 -1
- package/actions/standard/pushing/index.d.ts.map +1 -1
- package/actions/standard/pushing/pushing-events.d.ts +1 -1
- package/actions/standard/pushing/pushing-events.d.ts.map +1 -1
- package/actions/standard/pushing/pushing-original.d.ts.map +1 -1
- package/actions/standard/pushing/pushing-original.js +1 -1
- package/actions/standard/pushing/pushing-types.d.ts +1 -1
- package/actions/standard/pushing/pushing-types.d.ts.map +1 -1
- package/actions/standard/pushing/pushing.d.ts.map +1 -1
- package/actions/standard/pushing/pushing.js +1 -1
- package/actions/standard/putting/index.d.ts.map +1 -1
- package/actions/standard/putting/putting-data.d.ts.map +1 -1
- package/actions/standard/putting/putting-events.d.ts.map +1 -1
- package/actions/standard/putting/putting-messages.d.ts.map +1 -1
- package/actions/standard/putting/putting-types.d.ts +1 -1
- package/actions/standard/putting/putting-types.d.ts.map +1 -1
- package/actions/standard/putting/putting.d.ts.map +1 -1
- package/actions/standard/putting/putting.js +1 -1
- package/actions/standard/quitting/index.d.ts.map +1 -1
- package/actions/standard/quitting/quitting-events.d.ts.map +1 -1
- package/actions/standard/quitting/quitting.d.ts.map +1 -1
- package/actions/standard/quitting/quitting.js +1 -1
- package/actions/standard/raising/index.d.ts.map +1 -1
- package/actions/standard/raising/raising.d.ts.map +1 -1
- package/actions/standard/reading/index.d.ts.map +1 -1
- package/actions/standard/reading/reading-events.d.ts +1 -1
- package/actions/standard/reading/reading-events.d.ts.map +1 -1
- package/actions/standard/reading/reading.d.ts.map +1 -1
- package/actions/standard/reading/reading.js +1 -1
- package/actions/standard/removing/index.d.ts.map +1 -1
- package/actions/standard/removing/removing-data.d.ts.map +1 -1
- package/actions/standard/removing/removing-events.d.ts.map +1 -1
- package/actions/standard/removing/removing-messages.d.ts.map +1 -1
- package/actions/standard/removing/removing-types.d.ts +1 -1
- package/actions/standard/removing/removing-types.d.ts.map +1 -1
- package/actions/standard/removing/removing.d.ts.map +1 -1
- package/actions/standard/removing/removing.js +1 -1
- package/actions/standard/restarting/index.d.ts.map +1 -1
- package/actions/standard/restarting/restarting-events.d.ts.map +1 -1
- package/actions/standard/restarting/restarting.d.ts.map +1 -1
- package/actions/standard/restarting/restarting.js +1 -1
- package/actions/standard/restoring/index.d.ts.map +1 -1
- package/actions/standard/restoring/restoring-events.d.ts.map +1 -1
- package/actions/standard/restoring/restoring.d.ts.map +1 -1
- package/actions/standard/restoring/restoring.js +1 -1
- package/actions/standard/saving/index.d.ts.map +1 -1
- package/actions/standard/saving/saving-events.d.ts.map +1 -1
- package/actions/standard/saving/saving.d.ts.map +1 -1
- package/actions/standard/saving/saving.js +1 -1
- package/actions/standard/scoring/index.d.ts.map +1 -1
- package/actions/standard/scoring/scoring-events.d.ts.map +1 -1
- package/actions/standard/scoring/scoring.d.ts.map +1 -1
- package/actions/standard/scoring/scoring.js +1 -1
- package/actions/standard/searching/index.d.ts.map +1 -1
- package/actions/standard/searching/searching-events.d.ts +1 -1
- package/actions/standard/searching/searching-events.d.ts.map +1 -1
- package/actions/standard/searching/searching.d.ts.map +1 -1
- package/actions/standard/searching/searching.js +1 -1
- package/actions/standard/searching-helpers.d.ts +1 -1
- package/actions/standard/searching-helpers.d.ts.map +1 -1
- package/actions/standard/searching-helpers.js +1 -1
- package/actions/standard/showing/index.d.ts.map +1 -1
- package/actions/standard/showing/showing-events.d.ts.map +1 -1
- package/actions/standard/showing/showing.d.ts.map +1 -1
- package/actions/standard/showing/showing.js +1 -1
- package/actions/standard/sleeping/index.d.ts.map +1 -1
- package/actions/standard/sleeping/sleeping-events.d.ts +1 -1
- package/actions/standard/sleeping/sleeping-events.d.ts.map +1 -1
- package/actions/standard/sleeping/sleeping.d.ts.map +1 -1
- package/actions/standard/smelling/index.d.ts.map +1 -1
- package/actions/standard/smelling/smelling-events.d.ts +1 -1
- package/actions/standard/smelling/smelling-events.d.ts.map +1 -1
- package/actions/standard/smelling/smelling.d.ts.map +1 -1
- package/actions/standard/smelling/smelling.js +1 -1
- package/actions/standard/switching-shared.d.ts +1 -1
- package/actions/standard/switching-shared.d.ts.map +1 -1
- package/actions/standard/switching-shared.js +1 -1
- package/actions/standard/switching_off/index.d.ts.map +1 -1
- package/actions/standard/switching_off/switching_off-events.d.ts +1 -1
- package/actions/standard/switching_off/switching_off-events.d.ts.map +1 -1
- package/actions/standard/switching_off/switching_off-messages.d.ts.map +1 -1
- package/actions/standard/switching_off/switching_off.d.ts.map +1 -1
- package/actions/standard/switching_off/switching_off.js +1 -1
- package/actions/standard/switching_on/index.d.ts.map +1 -1
- package/actions/standard/switching_on/switching_on-events.d.ts +1 -1
- package/actions/standard/switching_on/switching_on-events.d.ts.map +1 -1
- package/actions/standard/switching_on/switching_on-messages.d.ts.map +1 -1
- package/actions/standard/switching_on/switching_on.d.ts.map +1 -1
- package/actions/standard/switching_on/switching_on.js +1 -1
- package/actions/standard/taking/index.d.ts.map +1 -1
- package/actions/standard/taking/taking-data.d.ts.map +1 -1
- package/actions/standard/taking/taking-events.d.ts +1 -1
- package/actions/standard/taking/taking-events.d.ts.map +1 -1
- package/actions/standard/taking/taking-messages.d.ts.map +1 -1
- package/actions/standard/taking/taking-types.d.ts +2 -2
- package/actions/standard/taking/taking-types.d.ts.map +1 -1
- package/actions/standard/taking/taking.d.ts.map +1 -1
- package/actions/standard/taking/taking.js +1 -1
- package/actions/standard/taking_off/index.d.ts.map +1 -1
- package/actions/standard/taking_off/taking-off-events.d.ts +1 -1
- package/actions/standard/taking_off/taking-off-events.d.ts.map +1 -1
- package/actions/standard/taking_off/taking-off.d.ts.map +1 -1
- package/actions/standard/taking_off/taking-off.js +1 -1
- package/actions/standard/talking/index.d.ts.map +1 -1
- package/actions/standard/talking/talking-events.d.ts +1 -1
- package/actions/standard/talking/talking-events.d.ts.map +1 -1
- package/actions/standard/talking/talking.d.ts.map +1 -1
- package/actions/standard/talking/talking.js +1 -1
- package/actions/standard/throwing/index.d.ts.map +1 -1
- package/actions/standard/throwing/throwing-events.d.ts.map +1 -1
- package/actions/standard/throwing/throwing.d.ts.map +1 -1
- package/actions/standard/throwing/throwing.js +1 -1
- package/actions/standard/touching/index.d.ts.map +1 -1
- package/actions/standard/touching/touching-events.d.ts +1 -1
- package/actions/standard/touching/touching-events.d.ts.map +1 -1
- package/actions/standard/touching/touching.d.ts.map +1 -1
- package/actions/standard/touching/touching.js +1 -1
- package/actions/standard/undoing/index.d.ts.map +1 -1
- package/actions/standard/undoing/undoing-events.d.ts.map +1 -1
- package/actions/standard/undoing/undoing.d.ts.map +1 -1
- package/actions/standard/undoing/undoing.js +1 -1
- package/actions/standard/unlocking/index.d.ts.map +1 -1
- package/actions/standard/unlocking/unlocking-events.d.ts +1 -1
- package/actions/standard/unlocking/unlocking-events.d.ts.map +1 -1
- package/actions/standard/unlocking/unlocking-messages.d.ts.map +1 -1
- package/actions/standard/unlocking/unlocking.d.ts.map +1 -1
- package/actions/standard/unlocking/unlocking.js +1 -1
- package/actions/standard/version/index.d.ts.map +1 -1
- package/actions/standard/version/version-events.d.ts.map +1 -1
- package/actions/standard/version/version.d.ts.map +1 -1
- package/actions/standard/version/version.js +1 -1
- package/actions/standard/waiting/index.d.ts.map +1 -1
- package/actions/standard/waiting/waiting-events.d.ts +1 -1
- package/actions/standard/waiting/waiting-events.d.ts.map +1 -1
- package/actions/standard/waiting/waiting.d.ts.map +1 -1
- package/actions/standard/wearable-shared.d.ts +2 -2
- package/actions/standard/wearable-shared.d.ts.map +1 -1
- package/actions/standard/wearable-shared.js +1 -1
- package/actions/standard/wearing/index.d.ts.map +1 -1
- package/actions/standard/wearing/wearing-events.d.ts +1 -1
- package/actions/standard/wearing/wearing-events.d.ts.map +1 -1
- package/actions/standard/wearing/wearing-messages.d.ts.map +1 -1
- package/actions/standard/wearing/wearing.d.ts.map +1 -1
- package/actions/standard/wearing/wearing.js +1 -1
- package/actions/types.d.ts +1 -1
- package/actions/types.d.ts.map +1 -1
- package/capabilities/command-history.d.ts +1 -1
- package/capabilities/command-history.d.ts.map +1 -1
- package/capabilities/conversation.d.ts +1 -1
- package/capabilities/conversation.d.ts.map +1 -1
- package/capabilities/debug.d.ts +1 -1
- package/capabilities/debug.d.ts.map +1 -1
- package/capabilities/game-meta.d.ts +1 -1
- package/capabilities/game-meta.d.ts.map +1 -1
- package/capabilities/index.d.ts.map +1 -1
- package/capabilities/index.js +1 -1
- package/capabilities/save-restore.d.ts +1 -1
- package/capabilities/save-restore.d.ts.map +1 -1
- package/capabilities/scoring.d.ts +1 -1
- package/capabilities/scoring.d.ts.map +1 -1
- package/chains/index.d.ts +1 -1
- package/chains/index.d.ts.map +1 -1
- package/chains/opened-revealed.d.ts +2 -2
- package/chains/opened-revealed.d.ts.map +1 -1
- package/chains/opened-revealed.js +1 -1
- package/channels/index.d.ts +1 -1
- package/channels/index.d.ts.map +1 -1
- package/channels/keys.d.ts.map +1 -1
- package/channels/keys.js +1 -1
- package/channels/media.d.ts +2 -2
- package/channels/media.d.ts.map +1 -1
- package/channels/registry.d.ts +1 -1
- package/channels/registry.d.ts.map +1 -1
- package/channels/sound-events.d.ts +2 -2
- package/channels/sound-events.d.ts.map +1 -1
- package/channels/standard.d.ts +1 -1
- package/channels/standard.d.ts.map +1 -1
- package/channels/standard.js +1 -1
- package/channels/world-helpers.d.ts +2 -2
- package/channels/world-helpers.d.ts.map +1 -1
- package/combat/index.d.ts.map +1 -1
- package/combat/weapon-utils.d.ts +1 -1
- package/combat/weapon-utils.d.ts.map +1 -1
- package/combat/weapon-utils.js +1 -1
- package/events/action-events.d.ts.map +1 -1
- package/events/base-event.d.ts.map +1 -1
- package/events/common-patterns.d.ts +1 -1
- package/events/common-patterns.d.ts.map +1 -1
- package/events/event-registry.d.ts +1 -1
- package/events/event-registry.d.ts.map +1 -1
- package/events/event-utils.d.ts +2 -2
- package/events/event-utils.d.ts.map +1 -1
- package/events/index.d.ts.map +1 -1
- package/helpers/index.d.ts.map +1 -1
- package/helpers/multi-object-handler.d.ts +2 -2
- package/helpers/multi-object-handler.d.ts.map +1 -1
- package/helpers/multi-object-handler.js +1 -1
- package/index.d.ts.map +1 -1
- package/inference/implicit-inference.d.ts +1 -1
- package/inference/implicit-inference.d.ts.map +1 -1
- package/inference/index.d.ts.map +1 -1
- package/npc/behaviors.d.ts.map +1 -1
- package/npc/behaviors.js +1 -1
- package/npc/character-messages.d.ts.map +1 -1
- package/npc/character-observer.d.ts +2 -2
- package/npc/character-observer.d.ts.map +1 -1
- package/npc/character-observer.js +1 -1
- package/npc/index.d.ts.map +1 -1
- package/npc/lucidity-decay.d.ts +2 -2
- package/npc/lucidity-decay.d.ts.map +1 -1
- package/npc/lucidity-decay.js +1 -1
- package/npc/npc-messages.d.ts.map +1 -1
- package/npc/npc-service.d.ts +2 -2
- package/npc/npc-service.d.ts.map +1 -1
- package/npc/npc-service.js +1 -1
- package/npc/types.d.ts +2 -2
- package/npc/types.d.ts.map +1 -1
- package/package.json +7 -7
- package/parser/index.d.ts +1 -1
- package/parser/index.d.ts.map +1 -1
- package/parser/index.js +1 -1
- package/query-handlers/index.d.ts.map +1 -1
- package/query-handlers/quit-handler.d.ts +1 -1
- package/query-handlers/quit-handler.d.ts.map +1 -1
- package/query-handlers/quit-handler.js +1 -1
- package/query-handlers/restart-handler.d.ts +1 -1
- package/query-handlers/restart-handler.d.ts.map +1 -1
- package/query-handlers/restart-handler.js +1 -1
- package/scope/index.d.ts.map +1 -1
- package/scope/scope-resolver.d.ts +1 -1
- package/scope/scope-resolver.d.ts.map +1 -1
- package/scope/scope-resolver.js +1 -1
- package/scope/types.d.ts +1 -1
- package/scope/types.d.ts.map +1 -1
- package/scope/witness-system.d.ts +1 -1
- package/scope/witness-system.d.ts.map +1 -1
- package/scope/witness-system.js +2 -2
- package/services/PerceptionService.d.ts +4 -4
- package/services/PerceptionService.d.ts.map +1 -1
- package/services/PerceptionService.js +1 -1
- package/services/index.d.ts.map +1 -1
- package/utils/entity-info.d.ts +2 -2
- package/utils/entity-info.d.ts.map +1 -1
- package/utils/entity-info.js +1 -1
- package/utils/index.d.ts.map +1 -1
- package/validation/command-validator.d.ts +2 -2
- package/validation/command-validator.d.ts.map +1 -1
- package/validation/command-validator.js +1 -1
- package/validation/index.d.ts.map +1 -1
- package/validation/types.d.ts +1 -1
- package/validation/types.d.ts.map +1 -1
- package/vocabulary/index.d.ts.map +1 -1
- package/vocabulary/standard-english.d.ts.map +1 -1
- package/actions/context.d.ts +0 -95
- package/actions/context.d.ts.map +0 -1
- package/actions/context.js +0 -272
- package/actions/context.js.map +0 -1
- package/actions/standard/inserting/inserting-semantic.d.ts +0 -42
- package/actions/standard/inserting/inserting-semantic.d.ts.map +0 -1
- package/actions/standard/inserting/inserting-semantic.js +0 -219
- package/actions/standard/inserting/inserting-semantic.js.map +0 -1
- package/combat/combat-messages.d.ts +0 -52
- package/combat/combat-messages.d.ts.map +0 -1
- package/combat/combat-messages.js +0 -69
- package/combat/combat-messages.js.map +0 -1
- package/combat/combat-service.d.ts +0 -109
- package/combat/combat-service.d.ts.map +0 -1
- package/combat/combat-service.js +0 -244
- package/combat/combat-service.js.map +0 -1
- package/events/helpers.d.ts +0 -44
- package/events/helpers.d.ts.map +0 -1
- package/events/helpers.js +0 -141
- package/events/helpers.js.map +0 -1
- package/services/scoring/index.d.ts +0 -6
- package/services/scoring/index.d.ts.map +0 -1
- package/services/scoring/index.js +0 -12
- package/services/scoring/index.js.map +0 -1
- package/services/scoring/scoring-event-processor.d.ts +0 -337
- package/services/scoring/scoring-event-processor.d.ts.map +0 -1
- package/services/scoring/scoring-event-processor.js +0 -613
- package/services/scoring/scoring-event-processor.js.map +0 -1
- package/services/scoring/scoring-service.d.ts +0 -185
- package/services/scoring/scoring-service.d.ts.map +0 -1
- package/services/scoring/scoring-service.js +0 -279
- package/services/scoring/scoring-service.js.map +0 -1
- package/sharpee-stdlib-0.9.109.tgz +0 -0
- package/sharpee-stdlib-0.9.110.tgz +0 -0
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Combat Message IDs (ADR-072)
|
|
4
|
-
*
|
|
5
|
-
* Semantic message IDs for combat-related events.
|
|
6
|
-
* Actual text is provided by the language layer.
|
|
7
|
-
*/
|
|
8
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.CombatMessages = void 0;
|
|
10
|
-
exports.getHealthStatusMessageId = getHealthStatusMessageId;
|
|
11
|
-
/**
|
|
12
|
-
* Message IDs for combat events
|
|
13
|
-
*/
|
|
14
|
-
exports.CombatMessages = {
|
|
15
|
-
// Attack outcomes
|
|
16
|
-
ATTACK_MISSED: 'combat.attack.missed',
|
|
17
|
-
ATTACK_HIT: 'combat.attack.hit',
|
|
18
|
-
ATTACK_HIT_LIGHT: 'combat.attack.hit_light',
|
|
19
|
-
ATTACK_HIT_HEAVY: 'combat.attack.hit_heavy',
|
|
20
|
-
ATTACK_KNOCKED_OUT: 'combat.attack.knocked_out',
|
|
21
|
-
ATTACK_KILLED: 'combat.attack.killed',
|
|
22
|
-
// Defense outcomes
|
|
23
|
-
DEFEND_BLOCKED: 'combat.defend.blocked',
|
|
24
|
-
DEFEND_PARRIED: 'combat.defend.parried',
|
|
25
|
-
DEFEND_DODGED: 'combat.defend.dodged',
|
|
26
|
-
// Health status descriptions
|
|
27
|
-
HEALTH_HEALTHY: 'combat.health.healthy',
|
|
28
|
-
HEALTH_WOUNDED: 'combat.health.wounded',
|
|
29
|
-
HEALTH_BADLY_WOUNDED: 'combat.health.badly_wounded',
|
|
30
|
-
HEALTH_NEAR_DEATH: 'combat.health.near_death',
|
|
31
|
-
HEALTH_UNCONSCIOUS: 'combat.health.unconscious',
|
|
32
|
-
HEALTH_DEAD: 'combat.health.dead',
|
|
33
|
-
// Special weapon messages
|
|
34
|
-
SWORD_GLOWS: 'combat.special.sword_glows',
|
|
35
|
-
SWORD_STOPS_GLOWING: 'combat.special.sword_stops_glowing',
|
|
36
|
-
BLESSED_WEAPON_EFFECT: 'combat.special.blessed_weapon',
|
|
37
|
-
// Error/validation messages
|
|
38
|
-
CANNOT_ATTACK: 'combat.cannot_attack',
|
|
39
|
-
ALREADY_DEAD: 'combat.already_dead',
|
|
40
|
-
NOT_HOSTILE: 'combat.not_hostile',
|
|
41
|
-
NO_TARGET: 'combat.no_target',
|
|
42
|
-
TARGET_UNCONSCIOUS: 'combat.target_unconscious',
|
|
43
|
-
NEED_WEAPON: 'combat.need_weapon',
|
|
44
|
-
// Combat state messages
|
|
45
|
-
COMBAT_STARTED: 'combat.started',
|
|
46
|
-
COMBAT_ENDED: 'combat.ended',
|
|
47
|
-
PLAYER_DIED: 'combat.player_died',
|
|
48
|
-
PLAYER_RESURRECTED: 'combat.player_resurrected',
|
|
49
|
-
};
|
|
50
|
-
/**
|
|
51
|
-
* Get message ID for a health status
|
|
52
|
-
*/
|
|
53
|
-
function getHealthStatusMessageId(status) {
|
|
54
|
-
switch (status) {
|
|
55
|
-
case 'healthy':
|
|
56
|
-
return exports.CombatMessages.HEALTH_HEALTHY;
|
|
57
|
-
case 'wounded':
|
|
58
|
-
return exports.CombatMessages.HEALTH_WOUNDED;
|
|
59
|
-
case 'badly_wounded':
|
|
60
|
-
return exports.CombatMessages.HEALTH_BADLY_WOUNDED;
|
|
61
|
-
case 'near_death':
|
|
62
|
-
return exports.CombatMessages.HEALTH_NEAR_DEATH;
|
|
63
|
-
case 'unconscious':
|
|
64
|
-
return exports.CombatMessages.HEALTH_UNCONSCIOUS;
|
|
65
|
-
case 'dead':
|
|
66
|
-
return exports.CombatMessages.HEALTH_DEAD;
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
//# sourceMappingURL=combat-messages.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"combat-messages.js","sourceRoot":"","sources":["../../../../repos/sharpee/packages/stdlib/src/combat/combat-messages.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAkEH,4DAeC;AA/ED;;GAEG;AACU,QAAA,cAAc,GAAG;IAC5B,kBAAkB;IAClB,aAAa,EAAE,sBAAsB;IACrC,UAAU,EAAE,mBAAmB;IAC/B,gBAAgB,EAAE,yBAAyB;IAC3C,gBAAgB,EAAE,yBAAyB;IAC3C,kBAAkB,EAAE,2BAA2B;IAC/C,aAAa,EAAE,sBAAsB;IAErC,mBAAmB;IACnB,cAAc,EAAE,uBAAuB;IACvC,cAAc,EAAE,uBAAuB;IACvC,aAAa,EAAE,sBAAsB;IAErC,6BAA6B;IAC7B,cAAc,EAAE,uBAAuB;IACvC,cAAc,EAAE,uBAAuB;IACvC,oBAAoB,EAAE,6BAA6B;IACnD,iBAAiB,EAAE,0BAA0B;IAC7C,kBAAkB,EAAE,2BAA2B;IAC/C,WAAW,EAAE,oBAAoB;IAEjC,0BAA0B;IAC1B,WAAW,EAAE,4BAA4B;IACzC,mBAAmB,EAAE,oCAAoC;IACzD,qBAAqB,EAAE,+BAA+B;IAEtD,4BAA4B;IAC5B,aAAa,EAAE,sBAAsB;IACrC,YAAY,EAAE,qBAAqB;IACnC,WAAW,EAAE,oBAAoB;IACjC,SAAS,EAAE,kBAAkB;IAC7B,kBAAkB,EAAE,2BAA2B;IAC/C,WAAW,EAAE,oBAAoB;IAEjC,wBAAwB;IACxB,cAAc,EAAE,gBAAgB;IAChC,YAAY,EAAE,cAAc;IAC5B,WAAW,EAAE,oBAAoB;IACjC,kBAAkB,EAAE,2BAA2B;CACvC,CAAC;AAkBX;;GAEG;AACH,SAAgB,wBAAwB,CAAC,MAAoB;IAC3D,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,SAAS;YACZ,OAAO,sBAAc,CAAC,cAAc,CAAC;QACvC,KAAK,SAAS;YACZ,OAAO,sBAAc,CAAC,cAAc,CAAC;QACvC,KAAK,eAAe;YAClB,OAAO,sBAAc,CAAC,oBAAoB,CAAC;QAC7C,KAAK,YAAY;YACf,OAAO,sBAAc,CAAC,iBAAiB,CAAC;QAC1C,KAAK,aAAa;YAChB,OAAO,sBAAc,CAAC,kBAAkB,CAAC;QAC3C,KAAK,MAAM;YACT,OAAO,sBAAc,CAAC,WAAW,CAAC;IACtC,CAAC;AACH,CAAC"}
|
|
@@ -1,109 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Combat Service (ADR-072)
|
|
3
|
-
*
|
|
4
|
-
* Handles combat resolution using a skill-based probability system.
|
|
5
|
-
*/
|
|
6
|
-
import { EntityId, SeededRandom } from "../../core/index";
|
|
7
|
-
import { IFEntity, WorldModel } from "../../world-model/index";
|
|
8
|
-
import { HealthStatus } from './combat-messages';
|
|
9
|
-
/**
|
|
10
|
-
* Context for combat resolution
|
|
11
|
-
*/
|
|
12
|
-
export interface CombatContext {
|
|
13
|
-
/** The attacker entity */
|
|
14
|
-
attacker: IFEntity;
|
|
15
|
-
/** The target entity */
|
|
16
|
-
target: IFEntity;
|
|
17
|
-
/** Weapon being used (if any) */
|
|
18
|
-
weapon?: IFEntity;
|
|
19
|
-
/** The world model */
|
|
20
|
-
world: WorldModel;
|
|
21
|
-
/** Seeded random number generator */
|
|
22
|
-
random: SeededRandom;
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* Result of combat resolution
|
|
26
|
-
*/
|
|
27
|
-
export interface CombatResult {
|
|
28
|
-
/** Whether the attack hit */
|
|
29
|
-
hit: boolean;
|
|
30
|
-
/** Damage dealt (0 if missed) */
|
|
31
|
-
damage: number;
|
|
32
|
-
/** Target's new health after damage */
|
|
33
|
-
targetNewHealth: number;
|
|
34
|
-
/** Whether target was knocked out (unconscious) */
|
|
35
|
-
targetKnockedOut: boolean;
|
|
36
|
-
/** Whether target was killed */
|
|
37
|
-
targetKilled: boolean;
|
|
38
|
-
/** Message ID for the result */
|
|
39
|
-
messageId: string;
|
|
40
|
-
/** Data for the message */
|
|
41
|
-
messageData: Record<string, unknown>;
|
|
42
|
-
}
|
|
43
|
-
/**
|
|
44
|
-
* Validation result for combat
|
|
45
|
-
*/
|
|
46
|
-
export interface CombatValidation {
|
|
47
|
-
valid: boolean;
|
|
48
|
-
messageId?: string;
|
|
49
|
-
messageData?: Record<string, unknown>;
|
|
50
|
-
}
|
|
51
|
-
/**
|
|
52
|
-
* Combat Service interface
|
|
53
|
-
*/
|
|
54
|
-
export interface ICombatService {
|
|
55
|
-
/** Resolve a single attack */
|
|
56
|
-
resolveAttack(context: CombatContext): CombatResult;
|
|
57
|
-
/** Check if attacker can attack target */
|
|
58
|
-
canAttack(attacker: IFEntity, target: IFEntity): CombatValidation;
|
|
59
|
-
/** Get descriptive health status */
|
|
60
|
-
getHealthStatus(entity: IFEntity): HealthStatus;
|
|
61
|
-
/** Calculate hit chance */
|
|
62
|
-
calculateHitChance(attackerSkill: number, defenderSkill: number, weaponBonus: number): number;
|
|
63
|
-
}
|
|
64
|
-
/**
|
|
65
|
-
* Combat Service implementation
|
|
66
|
-
*/
|
|
67
|
-
export declare class CombatService implements ICombatService {
|
|
68
|
-
/**
|
|
69
|
-
* Calculate hit chance based on skills
|
|
70
|
-
*
|
|
71
|
-
* Base chance starts at 50%.
|
|
72
|
-
* Each point of skill advantage = +1%.
|
|
73
|
-
* Clamped to 10%-95% (always some chance either way).
|
|
74
|
-
*/
|
|
75
|
-
calculateHitChance(attackerSkill: number, defenderSkill: number, weaponBonus: number): number;
|
|
76
|
-
/**
|
|
77
|
-
* Resolve an attack
|
|
78
|
-
*/
|
|
79
|
-
resolveAttack(context: CombatContext): CombatResult;
|
|
80
|
-
/**
|
|
81
|
-
* Check if an entity can attack another
|
|
82
|
-
*/
|
|
83
|
-
canAttack(attacker: IFEntity, target: IFEntity): CombatValidation;
|
|
84
|
-
/**
|
|
85
|
-
* Get health status for an entity
|
|
86
|
-
*/
|
|
87
|
-
getHealthStatus(entity: IFEntity): HealthStatus;
|
|
88
|
-
}
|
|
89
|
-
/**
|
|
90
|
-
* Create a new Combat Service instance
|
|
91
|
-
*/
|
|
92
|
-
export declare function createCombatService(): ICombatService;
|
|
93
|
-
/**
|
|
94
|
-
* Result of applying combat damage
|
|
95
|
-
*/
|
|
96
|
-
export interface ApplyCombatResultInfo {
|
|
97
|
-
/** IDs of items dropped from target's inventory */
|
|
98
|
-
droppedItems: EntityId[];
|
|
99
|
-
}
|
|
100
|
-
/**
|
|
101
|
-
* Apply combat result to the target entity
|
|
102
|
-
* Handles health updates, consciousness changes, death, and inventory dropping
|
|
103
|
-
*/
|
|
104
|
-
export declare function applyCombatResult(target: IFEntity, result: CombatResult, world: WorldModel): ApplyCombatResultInfo;
|
|
105
|
-
/**
|
|
106
|
-
* Find the wielded weapon for an entity
|
|
107
|
-
*/
|
|
108
|
-
export declare function findWieldedWeapon(entity: IFEntity, world: WorldModel): IFEntity | undefined;
|
|
109
|
-
//# sourceMappingURL=combat-service.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"combat-service.d.ts","sourceRoot":"","sources":["../../../../repos/sharpee/packages/stdlib/src/combat/combat-service.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAkB,QAAQ,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AACvE,OAAO,EACL,QAAQ,EACR,UAAU,EAIX,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAkB,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjE;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,0BAA0B;IAC1B,QAAQ,EAAE,QAAQ,CAAC;IAEnB,wBAAwB;IACxB,MAAM,EAAE,QAAQ,CAAC;IAEjB,iCAAiC;IACjC,MAAM,CAAC,EAAE,QAAQ,CAAC;IAElB,sBAAsB;IACtB,KAAK,EAAE,UAAU,CAAC;IAElB,qCAAqC;IACrC,MAAM,EAAE,YAAY,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,6BAA6B;IAC7B,GAAG,EAAE,OAAO,CAAC;IAEb,iCAAiC;IACjC,MAAM,EAAE,MAAM,CAAC;IAEf,uCAAuC;IACvC,eAAe,EAAE,MAAM,CAAC;IAExB,mDAAmD;IACnD,gBAAgB,EAAE,OAAO,CAAC;IAE1B,gCAAgC;IAChC,YAAY,EAAE,OAAO,CAAC;IAEtB,gCAAgC;IAChC,SAAS,EAAE,MAAM,CAAC;IAElB,2BAA2B;IAC3B,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACtC;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACvC;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,8BAA8B;IAC9B,aAAa,CAAC,OAAO,EAAE,aAAa,GAAG,YAAY,CAAC;IAEpD,0CAA0C;IAC1C,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,GAAG,gBAAgB,CAAC;IAElE,oCAAoC;IACpC,eAAe,CAAC,MAAM,EAAE,QAAQ,GAAG,YAAY,CAAC;IAEhD,2BAA2B;IAC3B,kBAAkB,CAChB,aAAa,EAAE,MAAM,EACrB,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,MAAM,GAClB,MAAM,CAAC;CACX;AAED;;GAEG;AACH,qBAAa,aAAc,YAAW,cAAc;IAClD;;;;;;OAMG;IACH,kBAAkB,CAChB,aAAa,EAAE,MAAM,EACrB,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,MAAM,GAClB,MAAM;IAMT;;OAEG;IACH,aAAa,CAAC,OAAO,EAAE,aAAa,GAAG,YAAY;IA8FnD;;OAEG;IACH,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,GAAG,gBAAgB;IA0BjE;;OAEG;IACH,eAAe,CAAC,MAAM,EAAE,QAAQ,GAAG,YAAY;CA0BhD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,cAAc,CAEpD;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,mDAAmD;IACnD,YAAY,EAAE,QAAQ,EAAE,CAAC;CAC1B;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,QAAQ,EAChB,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,UAAU,GAChB,qBAAqB,CAkCvB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,QAAQ,EAChB,KAAK,EAAE,UAAU,GAChB,QAAQ,GAAG,SAAS,CAiCtB"}
|
package/combat/combat-service.js
DELETED
|
@@ -1,244 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Combat Service (ADR-072)
|
|
4
|
-
*
|
|
5
|
-
* Handles combat resolution using a skill-based probability system.
|
|
6
|
-
*/
|
|
7
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
-
exports.CombatService = void 0;
|
|
9
|
-
exports.createCombatService = createCombatService;
|
|
10
|
-
exports.applyCombatResult = applyCombatResult;
|
|
11
|
-
exports.findWieldedWeapon = findWieldedWeapon;
|
|
12
|
-
const world_model_1 = require("../../world-model/index.js");
|
|
13
|
-
const combat_messages_1 = require("./combat-messages");
|
|
14
|
-
/**
|
|
15
|
-
* Combat Service implementation
|
|
16
|
-
*/
|
|
17
|
-
class CombatService {
|
|
18
|
-
/**
|
|
19
|
-
* Calculate hit chance based on skills
|
|
20
|
-
*
|
|
21
|
-
* Base chance starts at 50%.
|
|
22
|
-
* Each point of skill advantage = +1%.
|
|
23
|
-
* Clamped to 10%-95% (always some chance either way).
|
|
24
|
-
*/
|
|
25
|
-
calculateHitChance(attackerSkill, defenderSkill, weaponBonus) {
|
|
26
|
-
const baseChance = 50;
|
|
27
|
-
const skillDiff = attackerSkill + weaponBonus - defenderSkill;
|
|
28
|
-
return Math.max(10, Math.min(95, baseChance + skillDiff));
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* Resolve an attack
|
|
32
|
-
*/
|
|
33
|
-
resolveAttack(context) {
|
|
34
|
-
const { attacker, target, weapon, random } = context;
|
|
35
|
-
// Get combatant traits
|
|
36
|
-
const attackerCombat = attacker.get(world_model_1.TraitType.COMBATANT);
|
|
37
|
-
const targetCombat = target.get(world_model_1.TraitType.COMBATANT);
|
|
38
|
-
const weaponTrait = weapon?.get(world_model_1.TraitType.WEAPON);
|
|
39
|
-
// Get skill values
|
|
40
|
-
const attackerSkill = attackerCombat?.skill ?? 30;
|
|
41
|
-
const defenderSkill = targetCombat?.skill ?? 30;
|
|
42
|
-
const weaponBonus = weaponTrait?.skillBonus ?? 0;
|
|
43
|
-
// Calculate hit chance
|
|
44
|
-
const hitChance = this.calculateHitChance(attackerSkill, defenderSkill, weaponBonus);
|
|
45
|
-
// Roll to hit
|
|
46
|
-
const roll = random.int(1, 100);
|
|
47
|
-
const hit = roll <= hitChance;
|
|
48
|
-
// Base message data
|
|
49
|
-
const messageData = {
|
|
50
|
-
attackerName: attacker.name,
|
|
51
|
-
targetName: target.name,
|
|
52
|
-
weaponName: weapon?.name,
|
|
53
|
-
};
|
|
54
|
-
if (!hit) {
|
|
55
|
-
return {
|
|
56
|
-
hit: false,
|
|
57
|
-
damage: 0,
|
|
58
|
-
targetNewHealth: targetCombat?.health ?? 0,
|
|
59
|
-
targetKnockedOut: false,
|
|
60
|
-
targetKilled: false,
|
|
61
|
-
messageId: combat_messages_1.CombatMessages.ATTACK_MISSED,
|
|
62
|
-
messageData,
|
|
63
|
-
};
|
|
64
|
-
}
|
|
65
|
-
// Calculate damage
|
|
66
|
-
const baseDamage = attackerCombat?.baseDamage ?? 1;
|
|
67
|
-
const weaponDamage = weaponTrait?.damage ?? 0;
|
|
68
|
-
let totalDamage = baseDamage + weaponDamage;
|
|
69
|
-
// Blessed weapon bonus against undead (if applicable)
|
|
70
|
-
if (weaponTrait?.isBlessed) {
|
|
71
|
-
// Check if target is undead (story would define this trait)
|
|
72
|
-
const targetIdentity = target.get(world_model_1.TraitType.IDENTITY);
|
|
73
|
-
if (targetIdentity?.isUndead) {
|
|
74
|
-
totalDamage = Math.floor(totalDamage * 1.5);
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
// Apply armor reduction
|
|
78
|
-
const armor = targetCombat?.armor ?? 0;
|
|
79
|
-
const effectiveDamage = Math.max(1, totalDamage - armor); // Always do at least 1 damage
|
|
80
|
-
// Calculate new health
|
|
81
|
-
const currentHealth = targetCombat?.health ?? 10;
|
|
82
|
-
const newHealth = Math.max(0, currentHealth - effectiveDamage);
|
|
83
|
-
// Determine outcome
|
|
84
|
-
const killed = newHealth <= 0;
|
|
85
|
-
const maxHealth = targetCombat?.maxHealth ?? 10;
|
|
86
|
-
const knockedOut = !killed && newHealth <= maxHealth * 0.2;
|
|
87
|
-
// Add damage to message data
|
|
88
|
-
messageData.damage = effectiveDamage;
|
|
89
|
-
// Determine message based on outcome
|
|
90
|
-
let messageId;
|
|
91
|
-
if (killed) {
|
|
92
|
-
messageId = combat_messages_1.CombatMessages.ATTACK_KILLED;
|
|
93
|
-
}
|
|
94
|
-
else if (knockedOut) {
|
|
95
|
-
messageId = combat_messages_1.CombatMessages.ATTACK_KNOCKED_OUT;
|
|
96
|
-
}
|
|
97
|
-
else if (effectiveDamage >= maxHealth * 0.3) {
|
|
98
|
-
messageId = combat_messages_1.CombatMessages.ATTACK_HIT_HEAVY;
|
|
99
|
-
}
|
|
100
|
-
else if (effectiveDamage <= maxHealth * 0.1) {
|
|
101
|
-
messageId = combat_messages_1.CombatMessages.ATTACK_HIT_LIGHT;
|
|
102
|
-
}
|
|
103
|
-
else {
|
|
104
|
-
messageId = combat_messages_1.CombatMessages.ATTACK_HIT;
|
|
105
|
-
}
|
|
106
|
-
return {
|
|
107
|
-
hit: true,
|
|
108
|
-
damage: effectiveDamage,
|
|
109
|
-
targetNewHealth: newHealth,
|
|
110
|
-
targetKnockedOut: knockedOut,
|
|
111
|
-
targetKilled: killed,
|
|
112
|
-
messageId,
|
|
113
|
-
messageData,
|
|
114
|
-
};
|
|
115
|
-
}
|
|
116
|
-
/**
|
|
117
|
-
* Check if an entity can attack another
|
|
118
|
-
*/
|
|
119
|
-
canAttack(attacker, target) {
|
|
120
|
-
// Check if target has combatant trait
|
|
121
|
-
const targetCombat = target.get(world_model_1.TraitType.COMBATANT);
|
|
122
|
-
if (!targetCombat) {
|
|
123
|
-
return {
|
|
124
|
-
valid: false,
|
|
125
|
-
messageId: combat_messages_1.CombatMessages.CANNOT_ATTACK,
|
|
126
|
-
messageData: { targetName: target.name },
|
|
127
|
-
};
|
|
128
|
-
}
|
|
129
|
-
// Check if target is alive
|
|
130
|
-
if (!targetCombat.isAlive) {
|
|
131
|
-
return {
|
|
132
|
-
valid: false,
|
|
133
|
-
messageId: combat_messages_1.CombatMessages.ALREADY_DEAD,
|
|
134
|
-
messageData: { targetName: target.name },
|
|
135
|
-
};
|
|
136
|
-
}
|
|
137
|
-
// Check if target is unconscious (optional - some games allow attacking unconscious targets)
|
|
138
|
-
// For now, we allow it but could add a flag to control this
|
|
139
|
-
return { valid: true };
|
|
140
|
-
}
|
|
141
|
-
/**
|
|
142
|
-
* Get health status for an entity
|
|
143
|
-
*/
|
|
144
|
-
getHealthStatus(entity) {
|
|
145
|
-
const combatant = entity.get(world_model_1.TraitType.COMBATANT);
|
|
146
|
-
if (!combatant) {
|
|
147
|
-
return 'healthy'; // Non-combatants are "healthy"
|
|
148
|
-
}
|
|
149
|
-
if (!combatant.isAlive) {
|
|
150
|
-
return 'dead';
|
|
151
|
-
}
|
|
152
|
-
if (!combatant.isConscious) {
|
|
153
|
-
return 'unconscious';
|
|
154
|
-
}
|
|
155
|
-
const healthPercent = combatant.health / combatant.maxHealth;
|
|
156
|
-
if (healthPercent <= 0.1) {
|
|
157
|
-
return 'near_death';
|
|
158
|
-
}
|
|
159
|
-
else if (healthPercent <= 0.3) {
|
|
160
|
-
return 'badly_wounded';
|
|
161
|
-
}
|
|
162
|
-
else if (healthPercent <= 0.7) {
|
|
163
|
-
return 'wounded';
|
|
164
|
-
}
|
|
165
|
-
else {
|
|
166
|
-
return 'healthy';
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
exports.CombatService = CombatService;
|
|
171
|
-
/**
|
|
172
|
-
* Create a new Combat Service instance
|
|
173
|
-
*/
|
|
174
|
-
function createCombatService() {
|
|
175
|
-
return new CombatService();
|
|
176
|
-
}
|
|
177
|
-
/**
|
|
178
|
-
* Apply combat result to the target entity
|
|
179
|
-
* Handles health updates, consciousness changes, death, and inventory dropping
|
|
180
|
-
*/
|
|
181
|
-
function applyCombatResult(target, result, world) {
|
|
182
|
-
const info = { droppedItems: [] };
|
|
183
|
-
if (!result.hit)
|
|
184
|
-
return info;
|
|
185
|
-
const combatant = target.get(world_model_1.TraitType.COMBATANT);
|
|
186
|
-
if (!combatant)
|
|
187
|
-
return info;
|
|
188
|
-
// Update health
|
|
189
|
-
combatant.health = result.targetNewHealth;
|
|
190
|
-
// Update consciousness
|
|
191
|
-
if (result.targetKnockedOut) {
|
|
192
|
-
combatant.knockOut();
|
|
193
|
-
}
|
|
194
|
-
// Update alive status and handle death
|
|
195
|
-
if (result.targetKilled) {
|
|
196
|
-
combatant.kill();
|
|
197
|
-
// Drop inventory if configured
|
|
198
|
-
if (combatant.dropsInventory) {
|
|
199
|
-
const location = world.getLocation(target.id);
|
|
200
|
-
if (location) {
|
|
201
|
-
const inventory = world.getContents(target.id);
|
|
202
|
-
for (const item of inventory) {
|
|
203
|
-
world.moveEntity(item.id, location);
|
|
204
|
-
info.droppedItems.push(item.id);
|
|
205
|
-
}
|
|
206
|
-
}
|
|
207
|
-
}
|
|
208
|
-
}
|
|
209
|
-
return info;
|
|
210
|
-
}
|
|
211
|
-
/**
|
|
212
|
-
* Find the wielded weapon for an entity
|
|
213
|
-
*/
|
|
214
|
-
function findWieldedWeapon(entity, world) {
|
|
215
|
-
// Get entity's inventory
|
|
216
|
-
const inventory = world.getContents(entity.id);
|
|
217
|
-
// Find weapons
|
|
218
|
-
const weapons = inventory.filter((item) => item.has(world_model_1.TraitType.WEAPON));
|
|
219
|
-
if (weapons.length === 0) {
|
|
220
|
-
return undefined;
|
|
221
|
-
}
|
|
222
|
-
// Prefer equipped weapons
|
|
223
|
-
const equipped = weapons.filter((w) => {
|
|
224
|
-
if (!w.has(world_model_1.TraitType.EQUIPPED))
|
|
225
|
-
return false;
|
|
226
|
-
const equippedTrait = w.get(world_model_1.TraitType.EQUIPPED);
|
|
227
|
-
return equippedTrait?.isEquipped;
|
|
228
|
-
});
|
|
229
|
-
if (equipped.length > 0) {
|
|
230
|
-
// Return weapon with highest damage
|
|
231
|
-
return equipped.reduce((best, current) => {
|
|
232
|
-
const bestWeapon = best.get(world_model_1.TraitType.WEAPON);
|
|
233
|
-
const currentWeapon = current.get(world_model_1.TraitType.WEAPON);
|
|
234
|
-
return currentWeapon.damage > bestWeapon.damage ? current : best;
|
|
235
|
-
});
|
|
236
|
-
}
|
|
237
|
-
// Return first weapon found (or best by damage)
|
|
238
|
-
return weapons.reduce((best, current) => {
|
|
239
|
-
const bestWeapon = best.get(world_model_1.TraitType.WEAPON);
|
|
240
|
-
const currentWeapon = current.get(world_model_1.TraitType.WEAPON);
|
|
241
|
-
return currentWeapon.damage > bestWeapon.damage ? current : best;
|
|
242
|
-
});
|
|
243
|
-
}
|
|
244
|
-
//# sourceMappingURL=combat-service.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"combat-service.js","sourceRoot":"","sources":["../../../../repos/sharpee/packages/stdlib/src/combat/combat-service.ts"],"names":[],"mappings":"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"}
|
package/events/helpers.d.ts
DELETED
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Helper utilities for common event handler patterns
|
|
3
|
-
*/
|
|
4
|
-
import { ISemanticEvent } from "../../core/index";
|
|
5
|
-
import { IFEntity, WorldModel } from "../../world-model/index";
|
|
6
|
-
interface GameEvent extends ISemanticEvent {
|
|
7
|
-
type: string;
|
|
8
|
-
data: Record<string, any>;
|
|
9
|
-
}
|
|
10
|
-
type EntityEventHandler = (event: GameEvent, world: WorldModel) => void | ISemanticEvent[];
|
|
11
|
-
/**
|
|
12
|
-
* Create a handler that toggles a switchable entity
|
|
13
|
-
*/
|
|
14
|
-
export declare function createToggleHandler(entity: IFEntity): EntityEventHandler;
|
|
15
|
-
/**
|
|
16
|
-
* Create a handler that opens something when triggered
|
|
17
|
-
*/
|
|
18
|
-
export declare function createOpenHandler(entity: IFEntity, target: string): EntityEventHandler;
|
|
19
|
-
/**
|
|
20
|
-
* Create a handler that reveals a hidden passage
|
|
21
|
-
*/
|
|
22
|
-
export declare function createRevealHandler(entity: IFEntity, passage: string): EntityEventHandler;
|
|
23
|
-
/**
|
|
24
|
-
* Create a handler that displays a message
|
|
25
|
-
*/
|
|
26
|
-
export declare function createMessageHandler(message: string, params?: Record<string, any>): EntityEventHandler;
|
|
27
|
-
/**
|
|
28
|
-
* Compose multiple handlers into one
|
|
29
|
-
*/
|
|
30
|
-
export declare function composeHandlers(...handlers: EntityEventHandler[]): EntityEventHandler;
|
|
31
|
-
/**
|
|
32
|
-
* Create a handler that only fires once
|
|
33
|
-
*/
|
|
34
|
-
export declare function createOnceHandler(handler: EntityEventHandler): EntityEventHandler;
|
|
35
|
-
/**
|
|
36
|
-
* Create a handler that only fires after N times
|
|
37
|
-
*/
|
|
38
|
-
export declare function createAfterHandler(count: number, handler: EntityEventHandler): EntityEventHandler;
|
|
39
|
-
/**
|
|
40
|
-
* Create a handler with a condition
|
|
41
|
-
*/
|
|
42
|
-
export declare function createConditionalHandler(condition: (event: GameEvent) => boolean, handler: EntityEventHandler): EntityEventHandler;
|
|
43
|
-
export {};
|
|
44
|
-
//# sourceMappingURL=helpers.d.ts.map
|
package/events/helpers.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../../../../repos/sharpee/packages/stdlib/src/events/helpers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAG5D,UAAU,SAAU,SAAQ,cAAc;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC3B;AAGD,KAAK,kBAAkB,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,KAAK,IAAI,GAAG,cAAc,EAAE,CAAC;AAE3F;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,QAAQ,GAAG,kBAAkB,CAqBxE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAG,kBAAkB,CActF;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,GAAG,kBAAkB,CAczF;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,kBAAkB,CActG;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,GAAG,QAAQ,EAAE,kBAAkB,EAAE,GAAG,kBAAkB,CAWrF;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,kBAAkB,GAAG,kBAAkB,CAQjF;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB,GAAG,kBAAkB,CAQjG;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,OAAO,EACxC,OAAO,EAAE,kBAAkB,GAC1B,kBAAkB,CAMpB"}
|
package/events/helpers.js
DELETED
|
@@ -1,141 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Helper utilities for common event handler patterns
|
|
4
|
-
*/
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.createToggleHandler = createToggleHandler;
|
|
7
|
-
exports.createOpenHandler = createOpenHandler;
|
|
8
|
-
exports.createRevealHandler = createRevealHandler;
|
|
9
|
-
exports.createMessageHandler = createMessageHandler;
|
|
10
|
-
exports.composeHandlers = composeHandlers;
|
|
11
|
-
exports.createOnceHandler = createOnceHandler;
|
|
12
|
-
exports.createAfterHandler = createAfterHandler;
|
|
13
|
-
exports.createConditionalHandler = createConditionalHandler;
|
|
14
|
-
/**
|
|
15
|
-
* Create a handler that toggles a switchable entity
|
|
16
|
-
*/
|
|
17
|
-
function createToggleHandler(entity) {
|
|
18
|
-
return (event, _world) => {
|
|
19
|
-
// Toggle the switch state
|
|
20
|
-
const switchable = entity.get('SWITCHABLE');
|
|
21
|
-
if (switchable && 'isOn' in switchable) {
|
|
22
|
-
switchable.isOn = !switchable.isOn;
|
|
23
|
-
// Return event indicating the state change
|
|
24
|
-
return [{
|
|
25
|
-
id: `${Date.now()}-toggled`,
|
|
26
|
-
type: 'if.event.toggled',
|
|
27
|
-
timestamp: Date.now(),
|
|
28
|
-
data: {
|
|
29
|
-
entity: entity.id,
|
|
30
|
-
newState: switchable.isOn
|
|
31
|
-
},
|
|
32
|
-
entities: { [entity.id]: entity }
|
|
33
|
-
}];
|
|
34
|
-
}
|
|
35
|
-
return undefined;
|
|
36
|
-
};
|
|
37
|
-
}
|
|
38
|
-
/**
|
|
39
|
-
* Create a handler that opens something when triggered
|
|
40
|
-
*/
|
|
41
|
-
function createOpenHandler(entity, target) {
|
|
42
|
-
return (event, _world) => {
|
|
43
|
-
// Return event to open the target
|
|
44
|
-
return [{
|
|
45
|
-
id: `${Date.now()}-open-triggered`,
|
|
46
|
-
type: 'if.event.open_triggered',
|
|
47
|
-
timestamp: Date.now(),
|
|
48
|
-
data: {
|
|
49
|
-
trigger: entity.id,
|
|
50
|
-
target: target
|
|
51
|
-
},
|
|
52
|
-
entities: { [entity.id]: entity }
|
|
53
|
-
}];
|
|
54
|
-
};
|
|
55
|
-
}
|
|
56
|
-
/**
|
|
57
|
-
* Create a handler that reveals a hidden passage
|
|
58
|
-
*/
|
|
59
|
-
function createRevealHandler(entity, passage) {
|
|
60
|
-
return (event, _world) => {
|
|
61
|
-
// Return event to reveal the passage
|
|
62
|
-
return [{
|
|
63
|
-
id: `${Date.now()}-passage-revealed`,
|
|
64
|
-
type: 'if.event.passage_revealed',
|
|
65
|
-
timestamp: Date.now(),
|
|
66
|
-
data: {
|
|
67
|
-
trigger: entity.id,
|
|
68
|
-
passage: passage
|
|
69
|
-
},
|
|
70
|
-
entities: { [entity.id]: entity }
|
|
71
|
-
}];
|
|
72
|
-
};
|
|
73
|
-
}
|
|
74
|
-
/**
|
|
75
|
-
* Create a handler that displays a message
|
|
76
|
-
*/
|
|
77
|
-
function createMessageHandler(message, params) {
|
|
78
|
-
return (event, _world) => {
|
|
79
|
-
return [{
|
|
80
|
-
id: `${Date.now()}-custom-message`,
|
|
81
|
-
type: 'action.message',
|
|
82
|
-
timestamp: Date.now(),
|
|
83
|
-
data: {
|
|
84
|
-
messageId: 'custom',
|
|
85
|
-
message: message,
|
|
86
|
-
params: params || {}
|
|
87
|
-
},
|
|
88
|
-
entities: {}
|
|
89
|
-
}];
|
|
90
|
-
};
|
|
91
|
-
}
|
|
92
|
-
/**
|
|
93
|
-
* Compose multiple handlers into one
|
|
94
|
-
*/
|
|
95
|
-
function composeHandlers(...handlers) {
|
|
96
|
-
return (event, world) => {
|
|
97
|
-
const results = [];
|
|
98
|
-
for (const handler of handlers) {
|
|
99
|
-
const result = handler(event, world);
|
|
100
|
-
if (result && Array.isArray(result)) {
|
|
101
|
-
results.push(...result);
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
return results.length > 0 ? results : undefined;
|
|
105
|
-
};
|
|
106
|
-
}
|
|
107
|
-
/**
|
|
108
|
-
* Create a handler that only fires once
|
|
109
|
-
*/
|
|
110
|
-
function createOnceHandler(handler) {
|
|
111
|
-
let fired = false;
|
|
112
|
-
return (event, world) => {
|
|
113
|
-
if (!fired) {
|
|
114
|
-
fired = true;
|
|
115
|
-
return handler(event, world);
|
|
116
|
-
}
|
|
117
|
-
};
|
|
118
|
-
}
|
|
119
|
-
/**
|
|
120
|
-
* Create a handler that only fires after N times
|
|
121
|
-
*/
|
|
122
|
-
function createAfterHandler(count, handler) {
|
|
123
|
-
let callCount = 0;
|
|
124
|
-
return (event, world) => {
|
|
125
|
-
callCount++;
|
|
126
|
-
if (callCount >= count) {
|
|
127
|
-
return handler(event, world);
|
|
128
|
-
}
|
|
129
|
-
};
|
|
130
|
-
}
|
|
131
|
-
/**
|
|
132
|
-
* Create a handler with a condition
|
|
133
|
-
*/
|
|
134
|
-
function createConditionalHandler(condition, handler) {
|
|
135
|
-
return (event, world) => {
|
|
136
|
-
if (condition(event)) {
|
|
137
|
-
return handler(event, world);
|
|
138
|
-
}
|
|
139
|
-
};
|
|
140
|
-
}
|
|
141
|
-
//# sourceMappingURL=helpers.js.map
|
package/events/helpers.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../../../../../repos/sharpee/packages/stdlib/src/events/helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Scoring service exports (ADR-085)
|
|
3
|
-
*/
|
|
4
|
-
export { IScoringService, ScoringService, ScoringServiceConfig, ScoringDefinition, ScoreEntry, RankDefinition, DEFAULT_RANKS, } from './scoring-service';
|
|
5
|
-
export { ScoringEventProcessor, IEventProcessorRegistration, TreasureConfig, RoomVisitConfig, SequenceStep, SequenceConfig, SequenceState, GoalCondition, GoalConfig, GoalProgress, UnlockConfig, ScoringProcessorState, } from './scoring-event-processor';
|
|
6
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../repos/sharpee/packages/stdlib/src/services/scoring/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,eAAe,EACf,cAAc,EACd,oBAAoB,EACpB,iBAAiB,EACjB,UAAU,EACV,cAAc,EACd,aAAa,GACd,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,qBAAqB,EACrB,2BAA2B,EAC3B,cAAc,EACd,eAAe,EACf,YAAY,EACZ,cAAc,EACd,aAAa,EACb,aAAa,EACb,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,qBAAqB,GACtB,MAAM,2BAA2B,CAAC"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Scoring service exports (ADR-085)
|
|
4
|
-
*/
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.ScoringEventProcessor = exports.DEFAULT_RANKS = exports.ScoringService = void 0;
|
|
7
|
-
var scoring_service_1 = require("./scoring-service");
|
|
8
|
-
Object.defineProperty(exports, "ScoringService", { enumerable: true, get: function () { return scoring_service_1.ScoringService; } });
|
|
9
|
-
Object.defineProperty(exports, "DEFAULT_RANKS", { enumerable: true, get: function () { return scoring_service_1.DEFAULT_RANKS; } });
|
|
10
|
-
var scoring_event_processor_1 = require("./scoring-event-processor");
|
|
11
|
-
Object.defineProperty(exports, "ScoringEventProcessor", { enumerable: true, get: function () { return scoring_event_processor_1.ScoringEventProcessor; } });
|
|
12
|
-
//# sourceMappingURL=index.js.map
|