@sharpee/stdlib 2.2.0 → 3.1.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/actions/base/snapshot-utils.js +2 -2
- package/actions/base/snapshot-utils.js.map +1 -1
- package/actions/constants.d.ts +2 -0
- package/actions/constants.d.ts.map +1 -1
- package/actions/constants.js +3 -0
- package/actions/constants.js.map +1 -1
- package/actions/index.d.ts +2 -0
- package/actions/index.d.ts.map +1 -1
- package/actions/index.js +6 -0
- package/actions/index.js.map +1 -1
- package/actions/lifecycle/descriptor.d.ts +111 -0
- package/actions/lifecycle/descriptor.d.ts.map +1 -0
- package/actions/lifecycle/descriptor.js +22 -0
- package/actions/lifecycle/descriptor.js.map +1 -0
- package/actions/lifecycle/index.d.ts +14 -0
- package/actions/lifecycle/index.d.ts.map +1 -0
- package/actions/lifecycle/index.js +27 -0
- package/actions/lifecycle/index.js.map +1 -0
- package/actions/lifecycle/lifecycle-engine.d.ts +173 -0
- package/actions/lifecycle/lifecycle-engine.d.ts.map +1 -0
- package/actions/lifecycle/lifecycle-engine.js +247 -0
- package/actions/lifecycle/lifecycle-engine.js.map +1 -0
- package/actions/lifecycle/multi-object-lifecycle.d.ts +105 -0
- package/actions/lifecycle/multi-object-lifecycle.d.ts.map +1 -0
- package/actions/lifecycle/multi-object-lifecycle.js +136 -0
- package/actions/lifecycle/multi-object-lifecycle.js.map +1 -0
- package/actions/lifecycle/registry.d.ts +39 -0
- package/actions/lifecycle/registry.d.ts.map +1 -0
- package/actions/lifecycle/registry.js +128 -0
- package/actions/lifecycle/registry.js.map +1 -0
- package/actions/standard/asking/asking.d.ts +25 -0
- package/actions/standard/asking/asking.d.ts.map +1 -0
- package/actions/standard/asking/asking.js +114 -0
- package/actions/standard/asking/asking.js.map +1 -0
- package/actions/standard/asking/index.d.ts +5 -0
- package/actions/standard/asking/index.d.ts.map +1 -0
- package/actions/standard/asking/index.js +10 -0
- package/actions/standard/asking/index.js.map +1 -0
- package/actions/standard/attacking/attacking.d.ts +14 -0
- package/actions/standard/attacking/attacking.d.ts.map +1 -1
- package/actions/standard/attacking/attacking.js +138 -94
- package/actions/standard/attacking/attacking.js.map +1 -1
- package/actions/standard/attacking/index.d.ts +1 -1
- package/actions/standard/attacking/index.d.ts.map +1 -1
- package/actions/standard/attacking/index.js +2 -1
- package/actions/standard/attacking/index.js.map +1 -1
- package/actions/standard/climbing/climbing.d.ts +10 -0
- package/actions/standard/climbing/climbing.d.ts.map +1 -1
- package/actions/standard/climbing/climbing.js +51 -11
- package/actions/standard/climbing/climbing.js.map +1 -1
- package/actions/standard/closing/closing.d.ts +6 -0
- package/actions/standard/closing/closing.d.ts.map +1 -1
- package/actions/standard/closing/closing.js +37 -31
- package/actions/standard/closing/closing.js.map +1 -1
- package/actions/standard/cutting/cutting-messages.d.ts +17 -0
- package/actions/standard/cutting/cutting-messages.d.ts.map +1 -0
- package/actions/standard/cutting/cutting-messages.js +22 -0
- package/actions/standard/cutting/cutting-messages.js.map +1 -0
- package/actions/standard/cutting/cutting.d.ts +35 -0
- package/actions/standard/cutting/cutting.d.ts.map +1 -0
- package/actions/standard/cutting/cutting.js +228 -0
- package/actions/standard/cutting/cutting.js.map +1 -0
- package/actions/standard/cutting/index.d.ts +7 -0
- package/actions/standard/cutting/index.d.ts.map +1 -0
- package/actions/standard/cutting/index.js +12 -0
- package/actions/standard/cutting/index.js.map +1 -0
- package/actions/standard/deadly-room-death/deadly-room-death.d.ts +16 -0
- package/actions/standard/deadly-room-death/deadly-room-death.d.ts.map +1 -0
- package/actions/standard/deadly-room-death/deadly-room-death.js +44 -0
- package/actions/standard/deadly-room-death/deadly-room-death.js.map +1 -0
- package/actions/standard/deadly-room-death/index.d.ts +2 -0
- package/actions/standard/deadly-room-death/index.d.ts.map +1 -0
- package/actions/standard/deadly-room-death/index.js +6 -0
- package/actions/standard/deadly-room-death/index.js.map +1 -0
- package/actions/standard/digging/digging-messages.d.ts +17 -0
- package/actions/standard/digging/digging-messages.d.ts.map +1 -0
- package/actions/standard/digging/digging-messages.js +22 -0
- package/actions/standard/digging/digging-messages.js.map +1 -0
- package/actions/standard/digging/digging.d.ts +35 -0
- package/actions/standard/digging/digging.d.ts.map +1 -0
- package/actions/standard/digging/digging.js +228 -0
- package/actions/standard/digging/digging.js.map +1 -0
- package/actions/standard/digging/index.d.ts +7 -0
- package/actions/standard/digging/index.d.ts.map +1 -0
- package/actions/standard/digging/index.js +12 -0
- package/actions/standard/digging/index.js.map +1 -0
- package/actions/standard/drinking/drinking.d.ts +9 -0
- package/actions/standard/drinking/drinking.d.ts.map +1 -1
- package/actions/standard/drinking/drinking.js +40 -2
- package/actions/standard/drinking/drinking.js.map +1 -1
- package/actions/standard/dropping/dropping-types.d.ts +10 -18
- package/actions/standard/dropping/dropping-types.d.ts.map +1 -1
- package/actions/standard/dropping/dropping-types.js.map +1 -1
- package/actions/standard/dropping/dropping.d.ts +6 -0
- package/actions/standard/dropping/dropping.d.ts.map +1 -1
- package/actions/standard/dropping/dropping.js +86 -108
- package/actions/standard/dropping/dropping.js.map +1 -1
- package/actions/standard/eating/eating.d.ts +9 -0
- package/actions/standard/eating/eating.d.ts.map +1 -1
- package/actions/standard/eating/eating.js +40 -2
- package/actions/standard/eating/eating.js.map +1 -1
- package/actions/standard/entering/entering.d.ts +14 -5
- package/actions/standard/entering/entering.d.ts.map +1 -1
- package/actions/standard/entering/entering.js +45 -67
- package/actions/standard/entering/entering.js.map +1 -1
- package/actions/standard/examining/examining.d.ts +6 -0
- package/actions/standard/examining/examining.d.ts.map +1 -1
- package/actions/standard/examining/examining.js +39 -3
- package/actions/standard/examining/examining.js.map +1 -1
- package/actions/standard/exiting/exiting.d.ts +6 -0
- package/actions/standard/exiting/exiting.d.ts.map +1 -1
- package/actions/standard/exiting/exiting.js +54 -3
- package/actions/standard/exiting/exiting.js.map +1 -1
- package/actions/standard/giving/giving.d.ts +21 -0
- package/actions/standard/giving/giving.d.ts.map +1 -1
- package/actions/standard/giving/giving.js +78 -2
- package/actions/standard/giving/giving.js.map +1 -1
- package/actions/standard/going/going.d.ts +10 -16
- package/actions/standard/going/going.d.ts.map +1 -1
- package/actions/standard/going/going.js +134 -140
- package/actions/standard/going/going.js.map +1 -1
- package/actions/standard/hiding/hiding.d.ts +10 -1
- package/actions/standard/hiding/hiding.d.ts.map +1 -1
- package/actions/standard/hiding/hiding.js +43 -4
- package/actions/standard/hiding/hiding.js.map +1 -1
- package/actions/standard/index.d.ts +5 -0
- package/actions/standard/index.d.ts.map +1 -1
- package/actions/standard/index.js +19 -4
- package/actions/standard/index.js.map +1 -1
- package/actions/standard/inserting/inserting.d.ts +12 -0
- package/actions/standard/inserting/inserting.d.ts.map +1 -1
- package/actions/standard/inserting/inserting.js +70 -5
- package/actions/standard/inserting/inserting.js.map +1 -1
- package/actions/standard/listening/listening.d.ts +12 -1
- package/actions/standard/listening/listening.d.ts.map +1 -1
- package/actions/standard/listening/listening.js +45 -4
- package/actions/standard/listening/listening.js.map +1 -1
- package/actions/standard/locking/locking.d.ts +9 -0
- package/actions/standard/locking/locking.d.ts.map +1 -1
- package/actions/standard/locking/locking.js +62 -3
- package/actions/standard/locking/locking.js.map +1 -1
- package/actions/standard/looking/index.d.ts +1 -0
- package/actions/standard/looking/index.d.ts.map +1 -1
- package/actions/standard/looking/index.js +5 -1
- package/actions/standard/looking/index.js.map +1 -1
- package/actions/standard/looking/snippet-gate-registry.d.ts +55 -0
- package/actions/standard/looking/snippet-gate-registry.d.ts.map +1 -0
- package/actions/standard/looking/snippet-gate-registry.js +63 -0
- package/actions/standard/looking/snippet-gate-registry.js.map +1 -0
- package/actions/standard/looking/snippet-resolver.d.ts +9 -3
- package/actions/standard/looking/snippet-resolver.d.ts.map +1 -1
- package/actions/standard/looking/snippet-resolver.js +75 -4
- package/actions/standard/looking/snippet-resolver.js.map +1 -1
- package/actions/standard/opening/opening-messages.d.ts +3 -0
- package/actions/standard/opening/opening-messages.d.ts.map +1 -1
- package/actions/standard/opening/opening-messages.js +4 -0
- package/actions/standard/opening/opening-messages.js.map +1 -1
- package/actions/standard/opening/opening.d.ts +8 -0
- package/actions/standard/opening/opening.d.ts.map +1 -1
- package/actions/standard/opening/opening.js +73 -39
- package/actions/standard/opening/opening.js.map +1 -1
- package/actions/standard/pulling/pulling.d.ts +9 -0
- package/actions/standard/pulling/pulling.d.ts.map +1 -1
- package/actions/standard/pulling/pulling.js +40 -2
- package/actions/standard/pulling/pulling.js.map +1 -1
- package/actions/standard/pushing/pushing-types.d.ts +3 -6
- package/actions/standard/pushing/pushing-types.d.ts.map +1 -1
- package/actions/standard/pushing/pushing-types.js +3 -1
- package/actions/standard/pushing/pushing-types.js.map +1 -1
- package/actions/standard/pushing/pushing.d.ts +14 -5
- package/actions/standard/pushing/pushing.d.ts.map +1 -1
- package/actions/standard/pushing/pushing.js +51 -71
- package/actions/standard/pushing/pushing.js.map +1 -1
- package/actions/standard/putting/putting-types.d.ts +10 -21
- package/actions/standard/putting/putting-types.d.ts.map +1 -1
- package/actions/standard/putting/putting-types.js +0 -1
- package/actions/standard/putting/putting-types.js.map +1 -1
- package/actions/standard/putting/putting.d.ts +10 -0
- package/actions/standard/putting/putting.d.ts.map +1 -1
- package/actions/standard/putting/putting.js +133 -151
- package/actions/standard/putting/putting.js.map +1 -1
- package/actions/standard/reading/reading.d.ts +6 -0
- package/actions/standard/reading/reading.d.ts.map +1 -1
- package/actions/standard/reading/reading.js +39 -3
- package/actions/standard/reading/reading.js.map +1 -1
- package/actions/standard/removing/removing-types.d.ts +10 -16
- package/actions/standard/removing/removing-types.d.ts.map +1 -1
- package/actions/standard/removing/removing-types.js.map +1 -1
- package/actions/standard/removing/removing.d.ts +13 -0
- package/actions/standard/removing/removing.d.ts.map +1 -1
- package/actions/standard/removing/removing.js +147 -88
- package/actions/standard/removing/removing.js.map +1 -1
- package/actions/standard/searching/searching.d.ts +10 -0
- package/actions/standard/searching/searching.d.ts.map +1 -1
- package/actions/standard/searching/searching.js +44 -8
- package/actions/standard/searching/searching.js.map +1 -1
- package/actions/standard/showing/showing.d.ts +14 -0
- package/actions/standard/showing/showing.d.ts.map +1 -1
- package/actions/standard/showing/showing.js +62 -2
- package/actions/standard/showing/showing.js.map +1 -1
- package/actions/standard/smelling/smelling.d.ts +10 -0
- package/actions/standard/smelling/smelling.d.ts.map +1 -1
- package/actions/standard/smelling/smelling.js +41 -2
- package/actions/standard/smelling/smelling.js.map +1 -1
- package/actions/standard/switching_off/switching_off.d.ts +11 -1
- package/actions/standard/switching_off/switching_off.d.ts.map +1 -1
- package/actions/standard/switching_off/switching_off.js +44 -4
- package/actions/standard/switching_off/switching_off.js.map +1 -1
- package/actions/standard/switching_on/switching_on.d.ts +14 -5
- package/actions/standard/switching_on/switching_on.d.ts.map +1 -1
- package/actions/standard/switching_on/switching_on.js +45 -57
- package/actions/standard/switching_on/switching_on.js.map +1 -1
- package/actions/standard/taking/taking-types.d.ts +14 -32
- package/actions/standard/taking/taking-types.d.ts.map +1 -1
- package/actions/standard/taking/taking-types.js.map +1 -1
- package/actions/standard/taking/taking.d.ts +11 -0
- package/actions/standard/taking/taking.d.ts.map +1 -1
- package/actions/standard/taking/taking.js +107 -111
- package/actions/standard/taking/taking.js.map +1 -1
- package/actions/standard/taking_off/taking-off.d.ts +6 -0
- package/actions/standard/taking_off/taking-off.d.ts.map +1 -1
- package/actions/standard/taking_off/taking-off.js +57 -21
- package/actions/standard/taking_off/taking-off.js.map +1 -1
- package/actions/standard/talking/talking.d.ts +15 -0
- package/actions/standard/talking/talking.d.ts.map +1 -1
- package/actions/standard/talking/talking.js +52 -3
- package/actions/standard/talking/talking.js.map +1 -1
- package/actions/standard/telling/index.d.ts +5 -0
- package/actions/standard/telling/index.d.ts.map +1 -0
- package/actions/standard/telling/index.js +10 -0
- package/actions/standard/telling/index.js.map +1 -0
- package/actions/standard/telling/telling.d.ts +25 -0
- package/actions/standard/telling/telling.d.ts.map +1 -0
- package/actions/standard/telling/telling.js +114 -0
- package/actions/standard/telling/telling.js.map +1 -0
- package/actions/standard/throwing/throwing.d.ts +11 -0
- package/actions/standard/throwing/throwing.d.ts.map +1 -1
- package/actions/standard/throwing/throwing.js +69 -70
- package/actions/standard/throwing/throwing.js.map +1 -1
- package/actions/standard/tool-shared.d.ts +38 -0
- package/actions/standard/tool-shared.d.ts.map +1 -0
- package/actions/standard/tool-shared.js +74 -0
- package/actions/standard/tool-shared.js.map +1 -0
- package/actions/standard/touching/touching.d.ts +9 -0
- package/actions/standard/touching/touching.d.ts.map +1 -1
- package/actions/standard/touching/touching.js +40 -4
- package/actions/standard/touching/touching.js.map +1 -1
- package/actions/standard/turning/index.d.ts +5 -0
- package/actions/standard/turning/index.d.ts.map +1 -0
- package/actions/standard/turning/index.js +9 -0
- package/actions/standard/turning/index.js.map +1 -0
- package/actions/standard/turning/turning.d.ts +17 -0
- package/actions/standard/turning/turning.d.ts.map +1 -0
- package/actions/standard/turning/turning.js +25 -0
- package/actions/standard/turning/turning.js.map +1 -0
- package/actions/standard/unlocking/unlocking.d.ts +9 -0
- package/actions/standard/unlocking/unlocking.d.ts.map +1 -1
- package/actions/standard/unlocking/unlocking.js +62 -3
- package/actions/standard/unlocking/unlocking.js.map +1 -1
- package/actions/standard/wearing/wearing.d.ts +11 -1
- package/actions/standard/wearing/wearing.d.ts.map +1 -1
- package/actions/standard/wearing/wearing.js +57 -12
- package/actions/standard/wearing/wearing.js.map +1 -1
- package/channels/standard.d.ts +13 -10
- package/channels/standard.d.ts.map +1 -1
- package/channels/standard.js +14 -10
- package/channels/standard.js.map +1 -1
- package/death/deadly-room-transformer.d.ts +37 -0
- package/death/deadly-room-transformer.d.ts.map +1 -0
- package/death/deadly-room-transformer.js +79 -0
- package/death/deadly-room-transformer.js.map +1 -0
- package/death/index.d.ts +18 -0
- package/death/index.d.ts.map +1 -0
- package/death/index.js +28 -0
- package/death/index.js.map +1 -0
- package/death/kill-player.d.ts +49 -0
- package/death/kill-player.d.ts.map +1 -0
- package/death/kill-player.js +55 -0
- package/death/kill-player.js.map +1 -0
- package/death/player-death-events.d.ts +40 -0
- package/death/player-death-events.d.ts.map +1 -0
- package/death/player-death-events.js +27 -0
- package/death/player-death-events.js.map +1 -0
- package/death/probabilistic-death.d.ts +23 -0
- package/death/probabilistic-death.d.ts.map +1 -0
- package/death/probabilistic-death.js +27 -0
- package/death/probabilistic-death.js.map +1 -0
- package/index.d.ts +1 -0
- package/index.d.ts.map +1 -1
- package/index.js +1 -0
- package/index.js.map +1 -1
- package/npc/behaviors.d.ts.map +1 -1
- package/npc/behaviors.js +9 -8
- package/npc/behaviors.js.map +1 -1
- package/npc/npc-service.d.ts +8 -0
- package/npc/npc-service.d.ts.map +1 -1
- package/npc/npc-service.js +19 -18
- package/npc/npc-service.js.map +1 -1
- package/package.json +7 -7
|
@@ -5,18 +5,37 @@
|
|
|
5
5
|
* This action handles wearing items that have the WEARABLE trait.
|
|
6
6
|
* It validates that the item can be worn and isn't already worn.
|
|
7
7
|
*
|
|
8
|
-
* Uses
|
|
8
|
+
* Uses four-phase pattern:
|
|
9
9
|
* 1. validate: Check if item is wearable and can be worn
|
|
10
10
|
* 2. execute: Call WearableBehavior.wear(), store result in sharedData
|
|
11
11
|
* 3. report: Generate events from sharedData
|
|
12
|
+
* 4. blocked: Generate error events when validation fails
|
|
13
|
+
*
|
|
14
|
+
* Interceptor consultation (ADR-118) runs through the shared lifecycle
|
|
15
|
+
* engine (ADR-228) via `wearingLifecycle` — no hand-rolled hook plumbing.
|
|
12
16
|
*/
|
|
13
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
-
exports.wearingAction = void 0;
|
|
18
|
+
exports.wearingAction = exports.wearingLifecycle = void 0;
|
|
15
19
|
const world_model_1 = require("@sharpee/world-model");
|
|
16
20
|
const constants_1 = require("../../constants");
|
|
17
21
|
const scope_1 = require("../../../scope");
|
|
18
22
|
const utils_1 = require("../../../utils");
|
|
19
23
|
const wearable_shared_1 = require("../wearable-shared");
|
|
24
|
+
const lifecycle_1 = require("../../lifecycle");
|
|
25
|
+
/**
|
|
26
|
+
* Interceptor surface (ADR-228): the worn item is the only consultable
|
|
27
|
+
* entity of a WEAR command.
|
|
28
|
+
*/
|
|
29
|
+
exports.wearingLifecycle = {
|
|
30
|
+
actionId: constants_1.IFActions.WEARING,
|
|
31
|
+
slots: [
|
|
32
|
+
{
|
|
33
|
+
id: 'item',
|
|
34
|
+
actionIds: [constants_1.IFActions.WEARING],
|
|
35
|
+
resolve: (ctx) => ctx.command.directObject?.entity
|
|
36
|
+
}
|
|
37
|
+
]
|
|
38
|
+
};
|
|
20
39
|
function getWearingSharedData(context) {
|
|
21
40
|
return context.sharedData;
|
|
22
41
|
}
|
|
@@ -42,6 +61,10 @@ exports.wearingAction = {
|
|
|
42
61
|
if (!item) {
|
|
43
62
|
return { valid: false, error: 'no_target' };
|
|
44
63
|
}
|
|
64
|
+
const state = (0, lifecycle_1.resolveLifecycle)(context, exports.wearingLifecycle);
|
|
65
|
+
const preVeto = (0, lifecycle_1.runPreValidate)(context, state);
|
|
66
|
+
if (preVeto)
|
|
67
|
+
return preVeto;
|
|
45
68
|
if (!item.has(world_model_1.TraitType.WEARABLE)) {
|
|
46
69
|
return { valid: false, error: 'not_wearable' };
|
|
47
70
|
}
|
|
@@ -58,6 +81,22 @@ exports.wearingAction = {
|
|
|
58
81
|
}
|
|
59
82
|
return { valid: false, error: 'cant_wear_that' };
|
|
60
83
|
}
|
|
84
|
+
// Folded execute-phase refusal (ADR-229 R1): a pure read, so it runs
|
|
85
|
+
// as standard validation and its failure flows through blocked() →
|
|
86
|
+
// onBlocked like every other refusal.
|
|
87
|
+
const wearableContext = (0, wearable_shared_1.analyzeWearableContext)(context, item, actor);
|
|
88
|
+
const conflictingItem = (0, wearable_shared_1.checkWearingConflicts)(wearableContext);
|
|
89
|
+
if (conflictingItem) {
|
|
90
|
+
return {
|
|
91
|
+
valid: false,
|
|
92
|
+
error: wearableContext.wearableTrait.layer !== undefined ? 'hands_full' : 'already_wearing',
|
|
93
|
+
params: { item: (0, utils_1.nounPhraseFor)(conflictingItem) }
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
// Canonical placement (ADR-228): postValidate runs after ALL standard validation
|
|
97
|
+
const postVeto = (0, lifecycle_1.runPostValidate)(context, state);
|
|
98
|
+
if (postVeto)
|
|
99
|
+
return postVeto;
|
|
61
100
|
return { valid: true };
|
|
62
101
|
},
|
|
63
102
|
execute(context) {
|
|
@@ -73,15 +112,9 @@ exports.wearingAction = {
|
|
|
73
112
|
// Store body part and layer
|
|
74
113
|
sharedData.bodyPart = wearableTrait.bodyPart;
|
|
75
114
|
sharedData.layer = wearableTrait.layer;
|
|
76
|
-
//
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
sharedData.failed = true;
|
|
80
|
-
sharedData.errorMessageId = wearableTrait.layer !== undefined ? 'hands_full' : 'already_wearing';
|
|
81
|
-
sharedData.errorReason = sharedData.errorMessageId;
|
|
82
|
-
sharedData.errorParams = { item: (0, utils_1.nounPhraseFor)(conflictingItem) };
|
|
83
|
-
return;
|
|
84
|
-
}
|
|
115
|
+
// Wearing conflicts are a validate-phase refusal now (ADR-229 R1) —
|
|
116
|
+
// execute only keeps the behavior-result defensive branch below as
|
|
117
|
+
// the true safety net.
|
|
85
118
|
// Delegate state change to behavior
|
|
86
119
|
const result = world_model_1.WearableBehavior.wear(item, actor);
|
|
87
120
|
// Handle failure cases (defensive checks).
|
|
@@ -109,6 +142,9 @@ exports.wearingAction = {
|
|
|
109
142
|
sharedData.failed = false;
|
|
110
143
|
sharedData.params = (0, wearable_shared_1.buildWearableEventParams)(item, wearableTrait);
|
|
111
144
|
sharedData.messageId = 'worn';
|
|
145
|
+
const state = (0, lifecycle_1.getLifecycleState)(context);
|
|
146
|
+
if (state)
|
|
147
|
+
(0, lifecycle_1.runPostExecute)(context, state);
|
|
112
148
|
},
|
|
113
149
|
/**
|
|
114
150
|
* Report phase - generates events after successful execution
|
|
@@ -144,6 +180,9 @@ exports.wearingAction = {
|
|
|
144
180
|
bodyPart: sharedData.bodyPart,
|
|
145
181
|
layer: sharedData.layer
|
|
146
182
|
}));
|
|
183
|
+
const state = (0, lifecycle_1.getLifecycleState)(context);
|
|
184
|
+
if (state)
|
|
185
|
+
(0, lifecycle_1.runPostReport)(context, state, events, 'if.event.worn');
|
|
147
186
|
return events;
|
|
148
187
|
},
|
|
149
188
|
/**
|
|
@@ -153,7 +192,7 @@ exports.wearingAction = {
|
|
|
153
192
|
*/
|
|
154
193
|
blocked(context, result) {
|
|
155
194
|
const item = context.command.directObject?.entity;
|
|
156
|
-
|
|
195
|
+
const events = [context.event('if.event.wear_blocked', {
|
|
157
196
|
// Rendering data
|
|
158
197
|
messageId: `${context.action.id}.${result.error}`,
|
|
159
198
|
params: result.params || {},
|
|
@@ -162,6 +201,12 @@ exports.wearingAction = {
|
|
|
162
201
|
itemName: item?.name,
|
|
163
202
|
reason: result.error
|
|
164
203
|
})];
|
|
204
|
+
if (result.error) {
|
|
205
|
+
const state = (0, lifecycle_1.getLifecycleState)(context);
|
|
206
|
+
if (state)
|
|
207
|
+
(0, lifecycle_1.runOnBlocked)(context, state, events, 'if.event.wear_blocked', result.error);
|
|
208
|
+
}
|
|
209
|
+
return events;
|
|
165
210
|
},
|
|
166
211
|
metadata: {
|
|
167
212
|
requiresDirectObject: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wearing.js","sourceRoot":"","sources":["../../../../../../../../../repos/sharpee_v2/packages/stdlib/src/actions/standard/wearing/wearing.ts"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"wearing.js","sourceRoot":"","sources":["../../../../../../../../../repos/sharpee_v2/packages/stdlib/src/actions/standard/wearing/wearing.ts"],"names":[],"mappings":"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"}
|
package/channels/standard.d.ts
CHANGED
|
@@ -28,10 +28,13 @@ import type { IOChannel, MainEntry } from '@sharpee/if-domain';
|
|
|
28
28
|
*
|
|
29
29
|
* - `game.won` / `game.lost` — engine emits these from `engine.stop()`
|
|
30
30
|
* via `createGameWonEvent` / `createGameLostEvent` (core/events).
|
|
31
|
-
* - `
|
|
32
|
-
*
|
|
33
|
-
*
|
|
34
|
-
*
|
|
31
|
+
* - `if.event.player.died` — the canonical player-death event (ADR-224),
|
|
32
|
+
* emitted by `killPlayer` from any death mechanism (combat, hazard,
|
|
33
|
+
* grue, gas). Re-pointed here from the pre-ADR-224 `combat.player_died`
|
|
34
|
+
* (a hard cutover — no alias; that name and its `@sharpee/ext-basic-combat`
|
|
35
|
+
* producer are retired). The `PLAYER_DIED` constant is the canonical
|
|
36
|
+
* `PLAYER_DIED_EVENT` imported from the `death` module so emitter and
|
|
37
|
+
* channel never drift (one wire shape).
|
|
35
38
|
* - `game.score_changed` — no production emitter today. The channel
|
|
36
39
|
* listens for it, but it stays silent until a story or extension
|
|
37
40
|
* adopts the convention. Listed for forward-compatibility.
|
|
@@ -39,7 +42,7 @@ import type { IOChannel, MainEntry } from '@sharpee/if-domain';
|
|
|
39
42
|
* Each event carries its message in `event.data.message` (string).
|
|
40
43
|
*/
|
|
41
44
|
export declare const STANDARD_CHANNEL_EVENTS: {
|
|
42
|
-
readonly PLAYER_DIED: "
|
|
45
|
+
readonly PLAYER_DIED: "if.event.player.died";
|
|
43
46
|
readonly GAME_WON: "game.won";
|
|
44
47
|
readonly GAME_LOST: "game.lost";
|
|
45
48
|
readonly SCORE_CHANGED: "game.score_changed";
|
|
@@ -125,11 +128,11 @@ export declare const infoChannel: IOChannel<StoryInfoPayload>;
|
|
|
125
128
|
*/
|
|
126
129
|
export declare const ifidChannel: IOChannel<string>;
|
|
127
130
|
/**
|
|
128
|
-
* `death` — event-mode death notification. Closure looks for
|
|
129
|
-
* `if.event.
|
|
130
|
-
* `data.message` field. Stories that want different death
|
|
131
|
-
* register a replacement `IOChannel` with id `'death'`
|
|
132
|
-
* per ADR-163 §6).
|
|
131
|
+
* `death` — event-mode death notification. Closure looks for the
|
|
132
|
+
* canonical `if.event.player.died` event (ADR-224) in this turn's events
|
|
133
|
+
* and projects its `data.message` field. Stories that want different death
|
|
134
|
+
* handling register a replacement `IOChannel` with id `'death'`
|
|
135
|
+
* (last-write-wins per ADR-163 §6).
|
|
133
136
|
*/
|
|
134
137
|
export declare const deathChannel: IOChannel<string>;
|
|
135
138
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"standard.d.ts","sourceRoot":"","sources":["../../../../../../../repos/sharpee_v2/packages/stdlib/src/channels/standard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"standard.d.ts","sourceRoot":"","sources":["../../../../../../../repos/sharpee_v2/packages/stdlib/src/channels/standard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAwB/D;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,uBAAuB;;;;;CAK1B,CAAC;AAwCX;;;;;;GAMG;AACH,eAAO,MAAM,WAAW,EAAE,SAAS,CAAC,SAAS,CAkB5C,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,aAAa,EAAE,SAAS,CAAC,MAAM,CAa3C,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,eAAe,EAAE,SAAS,CAAC,MAAM,CAM7C,CAAC;AAEF;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,YAAY,EAAE,SAAS,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CA0B3E,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,WAAW,EAAE,SAAS,CAAC,MAAM,CAMzC,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;GAMG;AACH,eAAO,MAAM,WAAW,EAAE,SAAS,CAAC,gBAAgB,CAkBnD,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,WAAW,EAAE,SAAS,CAAC,MAAM,CAYzC,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,YAAY,EAAE,SAAS,CAAC,MAAM,CAa1C,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,cAAc,EAAE,SAAS,CAAC,MAAM,CAgB5C,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,kBAAkB,EAAE,SAAS,CAAC,MAAM,CAahD,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,MAAM,kBAAkB,GAC1B,aAAa,GACb,gBAAgB,GAChB,mBAAmB,CAAC;AAExB;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,kBAAkB,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AA8BD;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,gBAAgB,EAAE,SAAS,CAAC,gBAAgB,CAexD,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,EAAE,aAAa,CAAC,SAAS,CAYtD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;CAYvB,CAAC;AAEX,MAAM,MAAM,iBAAiB,GAC3B,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,OAAO,oBAAoB,CAAC,CAAC"}
|
package/channels/standard.js
CHANGED
|
@@ -21,6 +21,7 @@
|
|
|
21
21
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
22
|
exports.STANDARD_CHANNEL_IDS = exports.STANDARD_CHANNELS = exports.lifecycleChannel = exports.scoreNotifyChannel = exports.endgameChannel = exports.deathChannel = exports.ifidChannel = exports.infoChannel = exports.turnChannel = exports.scoreChannel = exports.locationChannel = exports.promptChannel = exports.mainChannel = exports.STANDARD_CHANNEL_EVENTS = void 0;
|
|
23
23
|
const text_blocks_1 = require("@sharpee/text-blocks");
|
|
24
|
+
const death_1 = require("../death");
|
|
24
25
|
const keys_1 = require("./keys");
|
|
25
26
|
const world_helpers_1 = require("./world-helpers");
|
|
26
27
|
/**
|
|
@@ -50,10 +51,13 @@ function flattenContent(content) {
|
|
|
50
51
|
*
|
|
51
52
|
* - `game.won` / `game.lost` — engine emits these from `engine.stop()`
|
|
52
53
|
* via `createGameWonEvent` / `createGameLostEvent` (core/events).
|
|
53
|
-
* - `
|
|
54
|
-
*
|
|
55
|
-
*
|
|
56
|
-
*
|
|
54
|
+
* - `if.event.player.died` — the canonical player-death event (ADR-224),
|
|
55
|
+
* emitted by `killPlayer` from any death mechanism (combat, hazard,
|
|
56
|
+
* grue, gas). Re-pointed here from the pre-ADR-224 `combat.player_died`
|
|
57
|
+
* (a hard cutover — no alias; that name and its `@sharpee/ext-basic-combat`
|
|
58
|
+
* producer are retired). The `PLAYER_DIED` constant is the canonical
|
|
59
|
+
* `PLAYER_DIED_EVENT` imported from the `death` module so emitter and
|
|
60
|
+
* channel never drift (one wire shape).
|
|
57
61
|
* - `game.score_changed` — no production emitter today. The channel
|
|
58
62
|
* listens for it, but it stays silent until a story or extension
|
|
59
63
|
* adopts the convention. Listed for forward-compatibility.
|
|
@@ -61,7 +65,7 @@ function flattenContent(content) {
|
|
|
61
65
|
* Each event carries its message in `event.data.message` (string).
|
|
62
66
|
*/
|
|
63
67
|
exports.STANDARD_CHANNEL_EVENTS = {
|
|
64
|
-
PLAYER_DIED:
|
|
68
|
+
PLAYER_DIED: death_1.PLAYER_DIED_EVENT,
|
|
65
69
|
GAME_WON: 'game.won',
|
|
66
70
|
GAME_LOST: 'game.lost',
|
|
67
71
|
SCORE_CHANGED: 'game.score_changed',
|
|
@@ -243,11 +247,11 @@ exports.ifidChannel = {
|
|
|
243
247
|
},
|
|
244
248
|
};
|
|
245
249
|
/**
|
|
246
|
-
* `death` — event-mode death notification. Closure looks for
|
|
247
|
-
* `if.event.
|
|
248
|
-
* `data.message` field. Stories that want different death
|
|
249
|
-
* register a replacement `IOChannel` with id `'death'`
|
|
250
|
-
* per ADR-163 §6).
|
|
250
|
+
* `death` — event-mode death notification. Closure looks for the
|
|
251
|
+
* canonical `if.event.player.died` event (ADR-224) in this turn's events
|
|
252
|
+
* and projects its `data.message` field. Stories that want different death
|
|
253
|
+
* handling register a replacement `IOChannel` with id `'death'`
|
|
254
|
+
* (last-write-wins per ADR-163 §6).
|
|
251
255
|
*/
|
|
252
256
|
exports.deathChannel = {
|
|
253
257
|
id: 'death',
|
package/channels/standard.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"standard.js","sourceRoot":"","sources":["../../../../../../../repos/sharpee_v2/packages/stdlib/src/channels/standard.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;GAkBG;;;AAIH,sDAAuD;AAEvD,iCAAmC;AACnC,mDAAqE;AAErE;;;;;;GAMG;AACH,SAAS,cAAc,CAAC,OAAmC;IACzD,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;QAC3B,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAE,GAAG,IAAI,IAAI,CAAC;;YACrC,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"standard.js","sourceRoot":"","sources":["../../../../../../../repos/sharpee_v2/packages/stdlib/src/channels/standard.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Deadly-room command transformer (ADR-224 Decision 3).
|
|
3
|
+
*
|
|
4
|
+
* Runs after parse / before validate: while the player stands in a room carrying
|
|
5
|
+
* `DeadlyRoomTrait`, a verb outside the room's safe allowlist is redirected to the
|
|
6
|
+
* generic {@link DEADLY_ROOM_DEATH_ACTION_ID} action (whose `report()` calls
|
|
7
|
+
* `killPlayer`). This is the seam MDL's Aragain Falls needs — "every verb but LOOK
|
|
8
|
+
* is fatal here" catches objectless verbs (WAIT, INVENTORY) an ADR-208 action
|
|
9
|
+
* interceptor could never see, because interceptors resolve on a direct object.
|
|
10
|
+
*
|
|
11
|
+
* The engine auto-registers this transformer (like a standard plugin), injecting
|
|
12
|
+
* its seeded RNG for the probabilistic (`chance`) variant. The transformer is a
|
|
13
|
+
* plain `(parsed, world) => parsed` function so stdlib need not import the engine's
|
|
14
|
+
* `ParsedCommandTransformer` type — that would invert the dependency direction.
|
|
15
|
+
*
|
|
16
|
+
* Public interface: `createDeadlyRoomTransformer`, `DEADLY_ROOM_DEATH_ACTION_ID`,
|
|
17
|
+
* `DEADLY_ROOM_CAUSE_KEY`, `DEADLY_ROOM_MESSAGE_KEY`.
|
|
18
|
+
* Owner context: `@sharpee/stdlib` — the player-death primitive (ADR-224).
|
|
19
|
+
*/
|
|
20
|
+
import type { SeededRandom } from '@sharpee/core';
|
|
21
|
+
import type { IParsedCommand, WorldModel } from '@sharpee/world-model';
|
|
22
|
+
/** The generic platform action a lethal deadly-room verb is redirected to. */
|
|
23
|
+
export declare const DEADLY_ROOM_DEATH_ACTION_ID = "if.action.deadly_room_death";
|
|
24
|
+
/** `extras` key carrying the death cause from the transformer to the death action. */
|
|
25
|
+
export declare const DEADLY_ROOM_CAUSE_KEY = "deadlyRoomCause";
|
|
26
|
+
/** `extras` key carrying the optional death message id. */
|
|
27
|
+
export declare const DEADLY_ROOM_MESSAGE_KEY = "deadlyRoomMessageId";
|
|
28
|
+
/**
|
|
29
|
+
* Build the deadly-room transformer. Returns the parsed command unchanged unless
|
|
30
|
+
* the player's room has a `DeadlyRoomTrait` and the command's verb is lethal there,
|
|
31
|
+
* in which case it redirects to the generic death action, threading the cause and
|
|
32
|
+
* message id through `extras`.
|
|
33
|
+
*
|
|
34
|
+
* @param rng the engine's seeded RNG, used only for the probabilistic (`chance`) variant
|
|
35
|
+
*/
|
|
36
|
+
export declare function createDeadlyRoomTransformer(rng?: SeededRandom): (parsed: IParsedCommand, world: WorldModel) => IParsedCommand;
|
|
37
|
+
//# sourceMappingURL=deadly-room-transformer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deadly-room-transformer.d.ts","sourceRoot":"","sources":["../../../../../../../repos/sharpee_v2/packages/stdlib/src/death/deadly-room-transformer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAY,MAAM,sBAAsB,CAAC;AAGjF,8EAA8E;AAC9E,eAAO,MAAM,2BAA2B,gCAAgC,CAAC;AAEzE,sFAAsF;AACtF,eAAO,MAAM,qBAAqB,oBAAoB,CAAC;AAEvD,2DAA2D;AAC3D,eAAO,MAAM,uBAAuB,wBAAwB,CAAC;AAkB7D;;;;;;;GAOG;AACH,wBAAgB,2BAA2B,CACzC,GAAG,CAAC,EAAE,YAAY,GACjB,CAAC,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,UAAU,KAAK,cAAc,CAuB/D"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Deadly-room command transformer (ADR-224 Decision 3).
|
|
4
|
+
*
|
|
5
|
+
* Runs after parse / before validate: while the player stands in a room carrying
|
|
6
|
+
* `DeadlyRoomTrait`, a verb outside the room's safe allowlist is redirected to the
|
|
7
|
+
* generic {@link DEADLY_ROOM_DEATH_ACTION_ID} action (whose `report()` calls
|
|
8
|
+
* `killPlayer`). This is the seam MDL's Aragain Falls needs — "every verb but LOOK
|
|
9
|
+
* is fatal here" catches objectless verbs (WAIT, INVENTORY) an ADR-208 action
|
|
10
|
+
* interceptor could never see, because interceptors resolve on a direct object.
|
|
11
|
+
*
|
|
12
|
+
* The engine auto-registers this transformer (like a standard plugin), injecting
|
|
13
|
+
* its seeded RNG for the probabilistic (`chance`) variant. The transformer is a
|
|
14
|
+
* plain `(parsed, world) => parsed` function so stdlib need not import the engine's
|
|
15
|
+
* `ParsedCommandTransformer` type — that would invert the dependency direction.
|
|
16
|
+
*
|
|
17
|
+
* Public interface: `createDeadlyRoomTransformer`, `DEADLY_ROOM_DEATH_ACTION_ID`,
|
|
18
|
+
* `DEADLY_ROOM_CAUSE_KEY`, `DEADLY_ROOM_MESSAGE_KEY`.
|
|
19
|
+
* Owner context: `@sharpee/stdlib` — the player-death primitive (ADR-224).
|
|
20
|
+
*/
|
|
21
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
|
+
exports.DEADLY_ROOM_MESSAGE_KEY = exports.DEADLY_ROOM_CAUSE_KEY = exports.DEADLY_ROOM_DEATH_ACTION_ID = void 0;
|
|
23
|
+
exports.createDeadlyRoomTransformer = createDeadlyRoomTransformer;
|
|
24
|
+
const world_model_1 = require("@sharpee/world-model");
|
|
25
|
+
/** The generic platform action a lethal deadly-room verb is redirected to. */
|
|
26
|
+
exports.DEADLY_ROOM_DEATH_ACTION_ID = 'if.action.deadly_room_death';
|
|
27
|
+
/** `extras` key carrying the death cause from the transformer to the death action. */
|
|
28
|
+
exports.DEADLY_ROOM_CAUSE_KEY = 'deadlyRoomCause';
|
|
29
|
+
/** `extras` key carrying the optional death message id. */
|
|
30
|
+
exports.DEADLY_ROOM_MESSAGE_KEY = 'deadlyRoomMessageId';
|
|
31
|
+
/**
|
|
32
|
+
* Resolve the room the player is effectively in, following a containing vehicle
|
|
33
|
+
* (a boat at the falls) to its own location — the deadly-room marker sits on the
|
|
34
|
+
* room, not the vehicle.
|
|
35
|
+
*/
|
|
36
|
+
function resolvePlayerRoom(world, player) {
|
|
37
|
+
const locationId = world.getLocation(player.id);
|
|
38
|
+
if (!locationId)
|
|
39
|
+
return undefined;
|
|
40
|
+
const location = world.getEntity(locationId);
|
|
41
|
+
if (location?.has(world_model_1.TraitType.VEHICLE)) {
|
|
42
|
+
const vehicleRoomId = world.getLocation(location.id);
|
|
43
|
+
return vehicleRoomId ? world.getEntity(vehicleRoomId) : undefined;
|
|
44
|
+
}
|
|
45
|
+
return location;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Build the deadly-room transformer. Returns the parsed command unchanged unless
|
|
49
|
+
* the player's room has a `DeadlyRoomTrait` and the command's verb is lethal there,
|
|
50
|
+
* in which case it redirects to the generic death action, threading the cause and
|
|
51
|
+
* message id through `extras`.
|
|
52
|
+
*
|
|
53
|
+
* @param rng the engine's seeded RNG, used only for the probabilistic (`chance`) variant
|
|
54
|
+
*/
|
|
55
|
+
function createDeadlyRoomTransformer(rng) {
|
|
56
|
+
return (parsed, world) => {
|
|
57
|
+
const player = world.getPlayer();
|
|
58
|
+
if (!player)
|
|
59
|
+
return parsed;
|
|
60
|
+
const room = resolvePlayerRoom(world, player);
|
|
61
|
+
const trait = room?.get(world_model_1.TraitType.DEADLY_ROOM);
|
|
62
|
+
if (!trait)
|
|
63
|
+
return parsed;
|
|
64
|
+
const verdict = world_model_1.DeadlyRoomBehavior.checkVerb(trait, parsed.action ?? '', rng);
|
|
65
|
+
if (!verdict.lethal)
|
|
66
|
+
return parsed;
|
|
67
|
+
return {
|
|
68
|
+
...parsed,
|
|
69
|
+
action: exports.DEADLY_ROOM_DEATH_ACTION_ID,
|
|
70
|
+
extras: {
|
|
71
|
+
...parsed.extras,
|
|
72
|
+
[exports.DEADLY_ROOM_CAUSE_KEY]: verdict.cause,
|
|
73
|
+
[exports.DEADLY_ROOM_MESSAGE_KEY]: verdict.messageId,
|
|
74
|
+
deadlyRoomOriginalAction: parsed.action,
|
|
75
|
+
},
|
|
76
|
+
};
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=deadly-room-transformer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deadly-room-transformer.js","sourceRoot":"","sources":["../../../../../../../repos/sharpee_v2/packages/stdlib/src/death/deadly-room-transformer.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;GAkBG;;;AAuCH,kEAyBC;AA5DD,sDAAsF;AAEtF,8EAA8E;AACjE,QAAA,2BAA2B,GAAG,6BAA6B,CAAC;AAEzE,sFAAsF;AACzE,QAAA,qBAAqB,GAAG,iBAAiB,CAAC;AAEvD,2DAA2D;AAC9C,QAAA,uBAAuB,GAAG,qBAAqB,CAAC;AAE7D;;;;GAIG;AACH,SAAS,iBAAiB,CAAC,KAAiB,EAAE,MAAgB;IAC5D,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAChD,IAAI,CAAC,UAAU;QAAE,OAAO,SAAS,CAAC;IAClC,MAAM,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IAC7C,IAAI,QAAQ,EAAE,GAAG,CAAC,uBAAS,CAAC,OAAO,CAAC,EAAE,CAAC;QACrC,MAAM,aAAa,GAAG,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACrD,OAAO,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACpE,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,2BAA2B,CACzC,GAAkB;IAElB,OAAO,CAAC,MAAsB,EAAE,KAAiB,EAAkB,EAAE;QACnE,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;QACjC,IAAI,CAAC,MAAM;YAAE,OAAO,MAAM,CAAC;QAE3B,MAAM,IAAI,GAAG,iBAAiB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC9C,MAAM,KAAK,GAAG,IAAI,EAAE,GAAG,CAAC,uBAAS,CAAC,WAAW,CAAgC,CAAC;QAC9E,IAAI,CAAC,KAAK;YAAE,OAAO,MAAM,CAAC;QAE1B,MAAM,OAAO,GAAG,gCAAkB,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC;QAC9E,IAAI,CAAC,OAAO,CAAC,MAAM;YAAE,OAAO,MAAM,CAAC;QAEnC,OAAO;YACL,GAAG,MAAM;YACT,MAAM,EAAE,mCAA2B;YACnC,MAAM,EAAE;gBACN,GAAG,MAAM,CAAC,MAAM;gBAChB,CAAC,6BAAqB,CAAC,EAAE,OAAO,CAAC,KAAK;gBACtC,CAAC,+BAAuB,CAAC,EAAE,OAAO,CAAC,SAAS;gBAC5C,wBAAwB,EAAE,MAAM,CAAC,MAAM;aACxC;SACF,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC"}
|
package/death/index.d.ts
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @sharpee/stdlib/death — the player-death primitive (ADR-224).
|
|
3
|
+
*
|
|
4
|
+
* Owner context: stdlib. The single canonical death event and the `killPlayer`
|
|
5
|
+
* helper every death mechanism lowers to. The engine imports `PLAYER_DIED_EVENT`
|
|
6
|
+
* for its game-over routing; the stdlib `death` channel imports it too — one wire
|
|
7
|
+
* shape, no drift (DEVARCH rule 8b).
|
|
8
|
+
*
|
|
9
|
+
* Public interface:
|
|
10
|
+
* - `killPlayer` — apply the lethal transition + produce the canonical event.
|
|
11
|
+
* - `PLAYER_DIED_EVENT`, `IPlayerDiedPayload` — the canonical event type and payload.
|
|
12
|
+
* - `IKillPlayerOptions` — `killPlayer`'s options.
|
|
13
|
+
*/
|
|
14
|
+
export { killPlayer, type IKillPlayerOptions } from './kill-player';
|
|
15
|
+
export { PLAYER_DIED_EVENT, type IPlayerDiedPayload } from './player-death-events';
|
|
16
|
+
export { rollLethal } from './probabilistic-death';
|
|
17
|
+
export { createDeadlyRoomTransformer, DEADLY_ROOM_DEATH_ACTION_ID, DEADLY_ROOM_CAUSE_KEY, DEADLY_ROOM_MESSAGE_KEY, } from './deadly-room-transformer';
|
|
18
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../repos/sharpee_v2/packages/stdlib/src/death/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,UAAU,EAAE,KAAK,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,KAAK,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AACnF,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EACL,2BAA2B,EAC3B,2BAA2B,EAC3B,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,2BAA2B,CAAC"}
|
package/death/index.js
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @sharpee/stdlib/death — the player-death primitive (ADR-224).
|
|
4
|
+
*
|
|
5
|
+
* Owner context: stdlib. The single canonical death event and the `killPlayer`
|
|
6
|
+
* helper every death mechanism lowers to. The engine imports `PLAYER_DIED_EVENT`
|
|
7
|
+
* for its game-over routing; the stdlib `death` channel imports it too — one wire
|
|
8
|
+
* shape, no drift (DEVARCH rule 8b).
|
|
9
|
+
*
|
|
10
|
+
* Public interface:
|
|
11
|
+
* - `killPlayer` — apply the lethal transition + produce the canonical event.
|
|
12
|
+
* - `PLAYER_DIED_EVENT`, `IPlayerDiedPayload` — the canonical event type and payload.
|
|
13
|
+
* - `IKillPlayerOptions` — `killPlayer`'s options.
|
|
14
|
+
*/
|
|
15
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
+
exports.DEADLY_ROOM_MESSAGE_KEY = exports.DEADLY_ROOM_CAUSE_KEY = exports.DEADLY_ROOM_DEATH_ACTION_ID = exports.createDeadlyRoomTransformer = exports.rollLethal = exports.PLAYER_DIED_EVENT = exports.killPlayer = void 0;
|
|
17
|
+
var kill_player_1 = require("./kill-player");
|
|
18
|
+
Object.defineProperty(exports, "killPlayer", { enumerable: true, get: function () { return kill_player_1.killPlayer; } });
|
|
19
|
+
var player_death_events_1 = require("./player-death-events");
|
|
20
|
+
Object.defineProperty(exports, "PLAYER_DIED_EVENT", { enumerable: true, get: function () { return player_death_events_1.PLAYER_DIED_EVENT; } });
|
|
21
|
+
var probabilistic_death_1 = require("./probabilistic-death");
|
|
22
|
+
Object.defineProperty(exports, "rollLethal", { enumerable: true, get: function () { return probabilistic_death_1.rollLethal; } });
|
|
23
|
+
var deadly_room_transformer_1 = require("./deadly-room-transformer");
|
|
24
|
+
Object.defineProperty(exports, "createDeadlyRoomTransformer", { enumerable: true, get: function () { return deadly_room_transformer_1.createDeadlyRoomTransformer; } });
|
|
25
|
+
Object.defineProperty(exports, "DEADLY_ROOM_DEATH_ACTION_ID", { enumerable: true, get: function () { return deadly_room_transformer_1.DEADLY_ROOM_DEATH_ACTION_ID; } });
|
|
26
|
+
Object.defineProperty(exports, "DEADLY_ROOM_CAUSE_KEY", { enumerable: true, get: function () { return deadly_room_transformer_1.DEADLY_ROOM_CAUSE_KEY; } });
|
|
27
|
+
Object.defineProperty(exports, "DEADLY_ROOM_MESSAGE_KEY", { enumerable: true, get: function () { return deadly_room_transformer_1.DEADLY_ROOM_MESSAGE_KEY; } });
|
|
28
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../repos/sharpee_v2/packages/stdlib/src/death/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;GAYG;;;AAEH,6CAAoE;AAA3D,yGAAA,UAAU,OAAA;AACnB,6DAAmF;AAA1E,wHAAA,iBAAiB,OAAA;AAC1B,6DAAmD;AAA1C,iHAAA,UAAU,OAAA;AACnB,qEAKmC;AAJjC,sIAAA,2BAA2B,OAAA;AAC3B,sIAAA,2BAA2B,OAAA;AAC3B,gIAAA,qBAAqB,OAAA;AACrB,kIAAA,uBAAuB,OAAA"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `killPlayer` — the single Sharpee-Way player-death primitive (ADR-224 Decision 2).
|
|
3
|
+
*
|
|
4
|
+
* Every death mechanism (combat, a deadly-room verb-allowlist, a probabilistic
|
|
5
|
+
* grue, a gas interceptor, a scheduler daemon) calls this instead of hand-mutating
|
|
6
|
+
* a dead flag or hand-emitting an ad-hoc event. It applies the lethal transition to
|
|
7
|
+
* the player's `HealthTrait` (the single mortality substrate, ADR-226) and returns
|
|
8
|
+
* the canonical {@link PLAYER_DIED_EVENT}; the caller routes that event into its
|
|
9
|
+
* event stream (an action's report list, an interceptor's effects, a daemon's
|
|
10
|
+
* returned events). The engine observes the event and owns game-over routing.
|
|
11
|
+
*
|
|
12
|
+
* Public interface: `killPlayer`.
|
|
13
|
+
* Owner context: `@sharpee/stdlib` — the player-death primitive (ADR-224).
|
|
14
|
+
*/
|
|
15
|
+
import type { ISemanticEvent } from '@sharpee/core';
|
|
16
|
+
import type { IFEntity, WorldModel } from '@sharpee/world-model';
|
|
17
|
+
/**
|
|
18
|
+
* Options for {@link killPlayer}.
|
|
19
|
+
*/
|
|
20
|
+
export interface IKillPlayerOptions {
|
|
21
|
+
/** Cause of death, recorded on the event and on `HealthTrait.causeOfDeath`. */
|
|
22
|
+
cause: string;
|
|
23
|
+
/** Optional death-text message id (language layer renders it — never English here). */
|
|
24
|
+
messageId?: string;
|
|
25
|
+
/**
|
|
26
|
+
* Terminal-death intent (ADR-224 Q-2). Defaults to `true`. A story reincarnation
|
|
27
|
+
* policy reads this off the event but the engine's decision is the player's derived
|
|
28
|
+
* life-state after dispatch, so `terminal:false` alone does not keep the game running.
|
|
29
|
+
*/
|
|
30
|
+
terminal?: boolean;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Kill the player: apply a terminal lethal transition to the player's `HealthTrait`
|
|
34
|
+
* and produce the canonical death event.
|
|
35
|
+
*
|
|
36
|
+
* Lazily attaches a `HealthTrait` if the player has none — a death-capable game must
|
|
37
|
+
* always give `killPlayer`'s lethal transition a target (ADR-223 AC-1 caveat), so the
|
|
38
|
+
* `HealthTrait` opt-in rule does not apply to the player in such a game.
|
|
39
|
+
*
|
|
40
|
+
* Idempotent: if the player is already `dead`, this is a no-op that returns `null`, so
|
|
41
|
+
* a second call in the same turn does not re-emit the event or double-route game-over.
|
|
42
|
+
*
|
|
43
|
+
* @param world the world model (unused today; kept for signature stability and future scope resolution)
|
|
44
|
+
* @param player the player entity to kill
|
|
45
|
+
* @param opts cause, optional message id, terminal intent (default `true`)
|
|
46
|
+
* @returns the canonical `if.event.player.died` event, or `null` if the player was already dead
|
|
47
|
+
*/
|
|
48
|
+
export declare function killPlayer(world: WorldModel, player: IFEntity, opts: IKillPlayerOptions): ISemanticEvent | null;
|
|
49
|
+
//# sourceMappingURL=kill-player.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kill-player.d.ts","sourceRoot":"","sources":["../../../../../../../repos/sharpee_v2/packages/stdlib/src/death/kill-player.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpD,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAIjE;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,+EAA+E;IAC/E,KAAK,EAAE,MAAM,CAAC;IAEd,uFAAuF;IACvF,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,UAAU,CACxB,KAAK,EAAE,UAAU,EACjB,MAAM,EAAE,QAAQ,EAChB,IAAI,EAAE,kBAAkB,GACvB,cAAc,GAAG,IAAI,CA0BvB"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* `killPlayer` — the single Sharpee-Way player-death primitive (ADR-224 Decision 2).
|
|
4
|
+
*
|
|
5
|
+
* Every death mechanism (combat, a deadly-room verb-allowlist, a probabilistic
|
|
6
|
+
* grue, a gas interceptor, a scheduler daemon) calls this instead of hand-mutating
|
|
7
|
+
* a dead flag or hand-emitting an ad-hoc event. It applies the lethal transition to
|
|
8
|
+
* the player's `HealthTrait` (the single mortality substrate, ADR-226) and returns
|
|
9
|
+
* the canonical {@link PLAYER_DIED_EVENT}; the caller routes that event into its
|
|
10
|
+
* event stream (an action's report list, an interceptor's effects, a daemon's
|
|
11
|
+
* returned events). The engine observes the event and owns game-over routing.
|
|
12
|
+
*
|
|
13
|
+
* Public interface: `killPlayer`.
|
|
14
|
+
* Owner context: `@sharpee/stdlib` — the player-death primitive (ADR-224).
|
|
15
|
+
*/
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.killPlayer = killPlayer;
|
|
18
|
+
const core_1 = require("@sharpee/core");
|
|
19
|
+
const world_model_1 = require("@sharpee/world-model");
|
|
20
|
+
const player_death_events_1 = require("./player-death-events");
|
|
21
|
+
/**
|
|
22
|
+
* Kill the player: apply a terminal lethal transition to the player's `HealthTrait`
|
|
23
|
+
* and produce the canonical death event.
|
|
24
|
+
*
|
|
25
|
+
* Lazily attaches a `HealthTrait` if the player has none — a death-capable game must
|
|
26
|
+
* always give `killPlayer`'s lethal transition a target (ADR-223 AC-1 caveat), so the
|
|
27
|
+
* `HealthTrait` opt-in rule does not apply to the player in such a game.
|
|
28
|
+
*
|
|
29
|
+
* Idempotent: if the player is already `dead`, this is a no-op that returns `null`, so
|
|
30
|
+
* a second call in the same turn does not re-emit the event or double-route game-over.
|
|
31
|
+
*
|
|
32
|
+
* @param world the world model (unused today; kept for signature stability and future scope resolution)
|
|
33
|
+
* @param player the player entity to kill
|
|
34
|
+
* @param opts cause, optional message id, terminal intent (default `true`)
|
|
35
|
+
* @returns the canonical `if.event.player.died` event, or `null` if the player was already dead
|
|
36
|
+
*/
|
|
37
|
+
function killPlayer(world, player, opts) {
|
|
38
|
+
const { cause, messageId, terminal = true } = opts;
|
|
39
|
+
let health = player.get(world_model_1.TraitType.HEALTH);
|
|
40
|
+
// Already dead → no-op (idempotent; prevents double game-over routing).
|
|
41
|
+
if (health && !world_model_1.HealthBehavior.isAlive(health)) {
|
|
42
|
+
return null;
|
|
43
|
+
}
|
|
44
|
+
// Death-capable game: the player must carry a HealthTrait (ADR-223 AC-1 caveat).
|
|
45
|
+
if (!health) {
|
|
46
|
+
health = new world_model_1.HealthTrait();
|
|
47
|
+
player.add(health);
|
|
48
|
+
}
|
|
49
|
+
world_model_1.HealthBehavior.kill(health, cause);
|
|
50
|
+
const payload = { cause, terminal };
|
|
51
|
+
if (messageId !== undefined)
|
|
52
|
+
payload.messageId = messageId;
|
|
53
|
+
return (0, core_1.createEvent)(player_death_events_1.PLAYER_DIED_EVENT, payload, { actor: player.id });
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=kill-player.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kill-player.js","sourceRoot":"","sources":["../../../../../../../repos/sharpee_v2/packages/stdlib/src/death/kill-player.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;GAaG;;AA0CH,gCA8BC;AArED,wCAA4C;AAE5C,sDAA8E;AAC9E,+DAA8E;AAoB9E;;;;;;;;;;;;;;;GAeG;AACH,SAAgB,UAAU,CACxB,KAAiB,EACjB,MAAgB,EAChB,IAAwB;IAExB,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC;IAEnD,IAAI,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,uBAAS,CAAC,MAAM,CAA4B,CAAC;IAErE,wEAAwE;IACxE,IAAI,MAAM,IAAI,CAAC,4BAAc,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC9C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,iFAAiF;IACjF,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,GAAG,IAAI,yBAAW,EAAE,CAAC;QAC3B,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACrB,CAAC;IAED,4BAAc,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAEnC,MAAM,OAAO,GAAuB,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;IACxD,IAAI,SAAS,KAAK,SAAS;QAAE,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;IAE3D,OAAO,IAAA,kBAAW,EAChB,uCAAiB,EACjB,OAA6C,EAC7C,EAAE,KAAK,EAAE,MAAM,CAAC,EAAE,EAAE,CACrB,CAAC;AACJ,CAAC"}
|