@sharpee/world-model 3.0.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.
Files changed (106) hide show
  1. package/behaviors/index.d.ts +1 -0
  2. package/behaviors/index.d.ts.map +1 -1
  3. package/behaviors/index.js +4 -1
  4. package/behaviors/index.js.map +1 -1
  5. package/capabilities/action-interceptor.d.ts +93 -6
  6. package/capabilities/action-interceptor.d.ts.map +1 -1
  7. package/capabilities/action-interceptor.js +59 -2
  8. package/capabilities/action-interceptor.js.map +1 -1
  9. package/capabilities/index.d.ts +1 -1
  10. package/capabilities/index.d.ts.map +1 -1
  11. package/capabilities/index.js +2 -1
  12. package/capabilities/index.js.map +1 -1
  13. package/index.d.ts +13 -0
  14. package/index.d.ts.map +1 -1
  15. package/index.js +23 -0
  16. package/index.js.map +1 -1
  17. package/package.json +3 -3
  18. package/traits/combatant/combatantBehavior.d.ts +23 -18
  19. package/traits/combatant/combatantBehavior.d.ts.map +1 -1
  20. package/traits/combatant/combatantBehavior.js +47 -45
  21. package/traits/combatant/combatantBehavior.js.map +1 -1
  22. package/traits/combatant/combatantTrait.d.ts +14 -48
  23. package/traits/combatant/combatantTrait.d.ts.map +1 -1
  24. package/traits/combatant/combatantTrait.js +13 -80
  25. package/traits/combatant/combatantTrait.js.map +1 -1
  26. package/traits/cuttable/cuttableBehavior.d.ts +23 -0
  27. package/traits/cuttable/cuttableBehavior.d.ts.map +1 -0
  28. package/traits/cuttable/cuttableBehavior.js +39 -0
  29. package/traits/cuttable/cuttableBehavior.js.map +1 -0
  30. package/traits/cuttable/cuttableTrait.d.ts +37 -0
  31. package/traits/cuttable/cuttableTrait.d.ts.map +1 -0
  32. package/traits/cuttable/cuttableTrait.js +30 -0
  33. package/traits/cuttable/cuttableTrait.js.map +1 -0
  34. package/traits/cuttable/index.d.ts +3 -0
  35. package/traits/cuttable/index.d.ts.map +1 -0
  36. package/traits/cuttable/index.js +20 -0
  37. package/traits/cuttable/index.js.map +1 -0
  38. package/traits/deadly-room/deadlyRoomBehavior.d.ts +48 -0
  39. package/traits/deadly-room/deadlyRoomBehavior.d.ts.map +1 -0
  40. package/traits/deadly-room/deadlyRoomBehavior.js +59 -0
  41. package/traits/deadly-room/deadlyRoomBehavior.js.map +1 -0
  42. package/traits/deadly-room/deadlyRoomTrait.d.ts +51 -0
  43. package/traits/deadly-room/deadlyRoomTrait.d.ts.map +1 -0
  44. package/traits/deadly-room/deadlyRoomTrait.js +37 -0
  45. package/traits/deadly-room/deadlyRoomTrait.js.map +1 -0
  46. package/traits/deadly-room/index.d.ts +3 -0
  47. package/traits/deadly-room/index.d.ts.map +1 -0
  48. package/traits/deadly-room/index.js +8 -0
  49. package/traits/deadly-room/index.js.map +1 -0
  50. package/traits/diggable/diggableBehavior.d.ts +23 -0
  51. package/traits/diggable/diggableBehavior.d.ts.map +1 -0
  52. package/traits/diggable/diggableBehavior.js +39 -0
  53. package/traits/diggable/diggableBehavior.js.map +1 -0
  54. package/traits/diggable/diggableTrait.d.ts +37 -0
  55. package/traits/diggable/diggableTrait.d.ts.map +1 -0
  56. package/traits/diggable/diggableTrait.js +30 -0
  57. package/traits/diggable/diggableTrait.js.map +1 -0
  58. package/traits/diggable/index.d.ts +3 -0
  59. package/traits/diggable/index.d.ts.map +1 -0
  60. package/traits/diggable/index.js +20 -0
  61. package/traits/diggable/index.js.map +1 -0
  62. package/traits/health/healthBehavior.d.ts +66 -0
  63. package/traits/health/healthBehavior.d.ts.map +1 -0
  64. package/traits/health/healthBehavior.js +98 -0
  65. package/traits/health/healthBehavior.js.map +1 -0
  66. package/traits/health/healthTrait.d.ts +60 -0
  67. package/traits/health/healthTrait.d.ts.map +1 -0
  68. package/traits/health/healthTrait.js +49 -0
  69. package/traits/health/healthTrait.js.map +1 -0
  70. package/traits/health/index.d.ts +3 -0
  71. package/traits/health/index.d.ts.map +1 -0
  72. package/traits/health/index.js +8 -0
  73. package/traits/health/index.js.map +1 -0
  74. package/traits/implementations.d.ts +5 -1
  75. package/traits/implementations.d.ts.map +1 -1
  76. package/traits/implementations.js +15 -1
  77. package/traits/implementations.js.map +1 -1
  78. package/traits/index.d.ts +4 -0
  79. package/traits/index.d.ts.map +1 -1
  80. package/traits/index.js +5 -0
  81. package/traits/index.js.map +1 -1
  82. package/traits/npc/npcTrait.d.ts +5 -27
  83. package/traits/npc/npcTrait.d.ts.map +1 -1
  84. package/traits/npc/npcTrait.js +0 -38
  85. package/traits/npc/npcTrait.js.map +1 -1
  86. package/traits/openable/openableBehavior.d.ts +10 -0
  87. package/traits/openable/openableBehavior.d.ts.map +1 -1
  88. package/traits/openable/openableBehavior.js +21 -0
  89. package/traits/openable/openableBehavior.js.map +1 -1
  90. package/traits/openable/openableTrait.d.ts +7 -0
  91. package/traits/openable/openableTrait.d.ts.map +1 -1
  92. package/traits/openable/openableTrait.js +4 -0
  93. package/traits/openable/openableTrait.js.map +1 -1
  94. package/traits/room/roomTrait.d.ts +8 -3
  95. package/traits/room/roomTrait.d.ts.map +1 -1
  96. package/traits/room/roomTrait.js +2 -2
  97. package/traits/room/roomTrait.js.map +1 -1
  98. package/traits/trait-types.d.ts +4 -0
  99. package/traits/trait-types.d.ts.map +1 -1
  100. package/traits/trait-types.js +12 -0
  101. package/traits/trait-types.js.map +1 -1
  102. package/world/VisibilityBehavior.d.ts +1 -1
  103. package/world/VisibilityBehavior.js +4 -4
  104. package/world/VisibilityBehavior.js.map +1 -1
  105. package/world/WorldModel.js +1 -1
  106. package/world/WorldModel.js.map +1 -1
@@ -0,0 +1,60 @@
1
+ /**
2
+ * Health Trait (ADR-226 — the HEALTH layer of ADR-223's four-layer NPC model).
3
+ *
4
+ * The single creature life-state model: current/max health, a derived
5
+ * consciousness threshold, an `asleep` flag, and a first-class terminal
6
+ * dead-by-cause state. This is the one source of mortality/consciousness truth —
7
+ * `CombatantTrait` and `NpcTrait` no longer carry their own `isAlive`/`isConscious`.
8
+ *
9
+ * Data only — no methods. All derivation (alive/conscious/can-act) and mutation
10
+ * (takeDamage/heal/kill) live in {@link HealthBehavior}, because a getter on the
11
+ * trait does not survive `loadJSON()` deserialization (the `npc-service` `canAct`
12
+ * footgun this layer removes).
13
+ *
14
+ * Public interface: read life-state via `HealthBehavior.{isAlive,isConscious,canAct}`
15
+ * and mutate via `HealthBehavior.{takeDamage,heal,kill}`.
16
+ * Owner context: `@sharpee/world-model` — HEALTH layer (ADR-223 child A).
17
+ */
18
+ import { ITrait } from '../trait';
19
+ /**
20
+ * Constructor/serialization data for {@link HealthTrait}. Every field is optional;
21
+ * see the class constructor for defaults.
22
+ */
23
+ export interface IHealthData {
24
+ /** Current health. Defaults to `maxHealth`. */
25
+ health?: number;
26
+ /** Maximum health; `heal` clamps to this. Defaults to `health`, else 10. */
27
+ maxHealth?: number;
28
+ /** Terminal dead-by-cause flag (ADR-224). Defaults to `false`. */
29
+ dead?: boolean;
30
+ /** Cause recorded alongside `dead` (e.g. 'combat', 'grue', 'fall'). */
31
+ causeOfDeath?: string;
32
+ /** Full health but voluntarily not acting (a daemon/story concern). Defaults to `false`. */
33
+ asleep?: boolean;
34
+ /**
35
+ * Fraction of `maxHealth` at/below which the entity is unconscious.
36
+ * Defaults to `0.2` (ADR-072 20%-health parity).
37
+ */
38
+ unconsciousThreshold?: number;
39
+ }
40
+ /**
41
+ * The creature life-state trait. Data-only; see file header.
42
+ *
43
+ * Invariants (enforced by {@link HealthBehavior}, not by getters here):
44
+ * - `alive` ⇔ `!dead && health > 0`
45
+ * - `conscious` ⇔ `alive && !asleep && health > maxHealth * unconsciousThreshold`
46
+ * There is no stored knocked-out flag and no recovery timer — consciousness is
47
+ * purely derived from `health` (ADR-226 §1 F1).
48
+ */
49
+ export declare class HealthTrait implements ITrait, IHealthData {
50
+ static readonly type: "health";
51
+ readonly type: "health";
52
+ health: number;
53
+ maxHealth: number;
54
+ dead: boolean;
55
+ causeOfDeath?: string;
56
+ asleep: boolean;
57
+ unconsciousThreshold: number;
58
+ constructor(data?: IHealthData);
59
+ }
60
+ //# sourceMappingURL=healthTrait.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"healthTrait.d.ts","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/health/healthTrait.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,+CAA+C;IAC/C,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,4EAA4E;IAC5E,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,kEAAkE;IAClE,IAAI,CAAC,EAAE,OAAO,CAAC;IAEf,uEAAuE;IACvE,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,4FAA4F;IAC5F,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB;;;OAGG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED;;;;;;;;GAQG;AACH,qBAAa,WAAY,YAAW,MAAM,EAAE,WAAW;IACrD,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAG,QAAQ,CAAU;IACzC,QAAQ,CAAC,IAAI,EAAG,QAAQ,CAAU;IAElC,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,OAAO,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,OAAO,CAAC;IAChB,oBAAoB,EAAE,MAAM,CAAC;gBAEjB,IAAI,GAAE,WAAgB;CAQnC"}
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ /**
3
+ * Health Trait (ADR-226 — the HEALTH layer of ADR-223's four-layer NPC model).
4
+ *
5
+ * The single creature life-state model: current/max health, a derived
6
+ * consciousness threshold, an `asleep` flag, and a first-class terminal
7
+ * dead-by-cause state. This is the one source of mortality/consciousness truth —
8
+ * `CombatantTrait` and `NpcTrait` no longer carry their own `isAlive`/`isConscious`.
9
+ *
10
+ * Data only — no methods. All derivation (alive/conscious/can-act) and mutation
11
+ * (takeDamage/heal/kill) live in {@link HealthBehavior}, because a getter on the
12
+ * trait does not survive `loadJSON()` deserialization (the `npc-service` `canAct`
13
+ * footgun this layer removes).
14
+ *
15
+ * Public interface: read life-state via `HealthBehavior.{isAlive,isConscious,canAct}`
16
+ * and mutate via `HealthBehavior.{takeDamage,heal,kill}`.
17
+ * Owner context: `@sharpee/world-model` — HEALTH layer (ADR-223 child A).
18
+ */
19
+ Object.defineProperty(exports, "__esModule", { value: true });
20
+ exports.HealthTrait = void 0;
21
+ /**
22
+ * The creature life-state trait. Data-only; see file header.
23
+ *
24
+ * Invariants (enforced by {@link HealthBehavior}, not by getters here):
25
+ * - `alive` ⇔ `!dead && health > 0`
26
+ * - `conscious` ⇔ `alive && !asleep && health > maxHealth * unconsciousThreshold`
27
+ * There is no stored knocked-out flag and no recovery timer — consciousness is
28
+ * purely derived from `health` (ADR-226 §1 F1).
29
+ */
30
+ class HealthTrait {
31
+ static type = 'health';
32
+ type = 'health';
33
+ health;
34
+ maxHealth;
35
+ dead;
36
+ causeOfDeath;
37
+ asleep;
38
+ unconsciousThreshold;
39
+ constructor(data = {}) {
40
+ this.maxHealth = data.maxHealth ?? data.health ?? 10;
41
+ this.health = data.health ?? this.maxHealth;
42
+ this.dead = data.dead ?? false;
43
+ this.causeOfDeath = data.causeOfDeath;
44
+ this.asleep = data.asleep ?? false;
45
+ this.unconsciousThreshold = data.unconsciousThreshold ?? 0.2;
46
+ }
47
+ }
48
+ exports.HealthTrait = HealthTrait;
49
+ //# sourceMappingURL=healthTrait.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"healthTrait.js","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/health/healthTrait.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;GAgBG;;;AA+BH;;;;;;;;GAQG;AACH,MAAa,WAAW;IACtB,MAAM,CAAU,IAAI,GAAG,QAAiB,CAAC;IAChC,IAAI,GAAG,QAAiB,CAAC;IAElC,MAAM,CAAS;IACf,SAAS,CAAS;IAClB,IAAI,CAAU;IACd,YAAY,CAAU;IACtB,MAAM,CAAU;IAChB,oBAAoB,CAAS;IAE7B,YAAY,OAAoB,EAAE;QAChC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC;QACrD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC;QAC5C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC;QAC/B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QACtC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC;QACnC,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,IAAI,GAAG,CAAC;IAC/D,CAAC;;AAlBH,kCAmBC"}
@@ -0,0 +1,3 @@
1
+ export { HealthTrait, IHealthData } from './healthTrait';
2
+ export { HealthBehavior } from './healthBehavior';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/health/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HealthBehavior = exports.HealthTrait = void 0;
4
+ var healthTrait_1 = require("./healthTrait");
5
+ Object.defineProperty(exports, "HealthTrait", { enumerable: true, get: function () { return healthTrait_1.HealthTrait; } });
6
+ var healthBehavior_1 = require("./healthBehavior");
7
+ Object.defineProperty(exports, "HealthBehavior", { enumerable: true, get: function () { return healthBehavior_1.HealthBehavior; } });
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/health/index.ts"],"names":[],"mappings":";;;AAAA,6CAAyD;AAAhD,0GAAA,WAAW,OAAA;AACpB,mDAAkD;AAAzC,gHAAA,cAAc,OAAA"}
@@ -15,6 +15,8 @@ import { EdibleTrait } from './edible/edibleTrait';
15
15
  import { SceneryTrait } from './scenery/sceneryTrait';
16
16
  import { OpenableTrait } from './openable/openableTrait';
17
17
  import { LockableTrait } from './lockable/lockableTrait';
18
+ import { CuttableTrait } from './cuttable/cuttableTrait';
19
+ import { DiggableTrait } from './diggable/diggableTrait';
18
20
  import { SwitchableTrait } from './switchable/switchableTrait';
19
21
  import { ReadableTrait } from './readable/readableTrait';
20
22
  import { LightSourceTrait } from './light-source/lightSourceTrait';
@@ -34,6 +36,8 @@ import { BreakableTrait } from './breakable/breakableTrait';
34
36
  import { DestructibleTrait } from './destructible/destructibleTrait';
35
37
  import { CombatantTrait } from './combatant/combatantTrait';
36
38
  import { EquippedTrait } from './equipped/equippedTrait';
39
+ import { HealthTrait } from './health/healthTrait';
40
+ import { DeadlyRoomTrait } from './deadly-room/deadlyRoomTrait';
37
41
  import { NpcTrait } from './npc/npcTrait';
38
42
  import { OpenInventoryTrait } from './open-inventory/openInventoryTrait';
39
43
  import { CharacterModelTrait } from './character-model/characterModelTrait';
@@ -52,5 +56,5 @@ export declare function getTraitImplementation(type: TraitType): ITraitConstruct
52
56
  * Create trait instance by type
53
57
  */
54
58
  export declare function createTrait(type: TraitType, data?: any): InstanceType<ITraitConstructor>;
55
- export { IdentityTrait, ContainerTrait, SupporterTrait, RoomTrait, WearableTrait, ClothingTrait, EdibleTrait, SceneryTrait, OpenableTrait, LockableTrait, SwitchableTrait, ReadableTrait, LightSourceTrait, DoorTrait, RegionTrait, SceneTrait, ActorTrait, ExitTrait, ClimbableTrait, PullableTrait, AttachedTrait, PushableTrait, ButtonTrait, MoveableSceneryTrait, WeaponTrait, BreakableTrait, DestructibleTrait, CombatantTrait, EquippedTrait, NpcTrait, OpenInventoryTrait, CharacterModelTrait, VehicleTrait, EnterableTrait, StoryInfoTrait };
59
+ export { IdentityTrait, ContainerTrait, SupporterTrait, RoomTrait, WearableTrait, ClothingTrait, EdibleTrait, SceneryTrait, OpenableTrait, LockableTrait, CuttableTrait, DiggableTrait, SwitchableTrait, ReadableTrait, LightSourceTrait, DoorTrait, RegionTrait, SceneTrait, ActorTrait, ExitTrait, ClimbableTrait, PullableTrait, AttachedTrait, PushableTrait, ButtonTrait, MoveableSceneryTrait, WeaponTrait, BreakableTrait, DestructibleTrait, CombatantTrait, EquippedTrait, HealthTrait, DeadlyRoomTrait, NpcTrait, OpenInventoryTrait, CharacterModelTrait, VehicleTrait, EnterableTrait, StoryInfoTrait };
56
60
  //# sourceMappingURL=implementations.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"implementations.d.ts","sourceRoot":"","sources":["../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/implementations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"implementations.d.ts","sourceRoot":"","sources":["../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/implementations.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,7 @@
5
5
  * Maps trait types to their implementation classes
6
6
  */
7
7
  Object.defineProperty(exports, "__esModule", { value: true });
8
- exports.StoryInfoTrait = exports.EnterableTrait = exports.VehicleTrait = exports.CharacterModelTrait = exports.OpenInventoryTrait = exports.NpcTrait = exports.EquippedTrait = exports.CombatantTrait = exports.DestructibleTrait = exports.BreakableTrait = exports.WeaponTrait = exports.MoveableSceneryTrait = exports.ButtonTrait = exports.PushableTrait = exports.AttachedTrait = exports.PullableTrait = exports.ClimbableTrait = exports.ExitTrait = exports.ActorTrait = exports.SceneTrait = exports.RegionTrait = exports.DoorTrait = exports.LightSourceTrait = exports.ReadableTrait = exports.SwitchableTrait = exports.LockableTrait = exports.OpenableTrait = exports.SceneryTrait = exports.EdibleTrait = exports.ClothingTrait = exports.WearableTrait = exports.RoomTrait = exports.SupporterTrait = exports.ContainerTrait = exports.IdentityTrait = exports.TRAIT_IMPLEMENTATIONS = void 0;
8
+ exports.StoryInfoTrait = exports.EnterableTrait = exports.VehicleTrait = exports.CharacterModelTrait = exports.OpenInventoryTrait = exports.NpcTrait = exports.DeadlyRoomTrait = exports.HealthTrait = exports.EquippedTrait = exports.CombatantTrait = exports.DestructibleTrait = exports.BreakableTrait = exports.WeaponTrait = exports.MoveableSceneryTrait = exports.ButtonTrait = exports.PushableTrait = exports.AttachedTrait = exports.PullableTrait = exports.ClimbableTrait = exports.ExitTrait = exports.ActorTrait = exports.SceneTrait = exports.RegionTrait = exports.DoorTrait = exports.LightSourceTrait = exports.ReadableTrait = exports.SwitchableTrait = exports.DiggableTrait = exports.CuttableTrait = exports.LockableTrait = exports.OpenableTrait = exports.SceneryTrait = exports.EdibleTrait = exports.ClothingTrait = exports.WearableTrait = exports.RoomTrait = exports.SupporterTrait = exports.ContainerTrait = exports.IdentityTrait = exports.TRAIT_IMPLEMENTATIONS = void 0;
9
9
  exports.getTraitImplementation = getTraitImplementation;
10
10
  exports.createTrait = createTrait;
11
11
  const trait_types_1 = require("./trait-types");
@@ -30,6 +30,10 @@ const openableTrait_1 = require("./openable/openableTrait");
30
30
  Object.defineProperty(exports, "OpenableTrait", { enumerable: true, get: function () { return openableTrait_1.OpenableTrait; } });
31
31
  const lockableTrait_1 = require("./lockable/lockableTrait");
32
32
  Object.defineProperty(exports, "LockableTrait", { enumerable: true, get: function () { return lockableTrait_1.LockableTrait; } });
33
+ const cuttableTrait_1 = require("./cuttable/cuttableTrait");
34
+ Object.defineProperty(exports, "CuttableTrait", { enumerable: true, get: function () { return cuttableTrait_1.CuttableTrait; } });
35
+ const diggableTrait_1 = require("./diggable/diggableTrait");
36
+ Object.defineProperty(exports, "DiggableTrait", { enumerable: true, get: function () { return diggableTrait_1.DiggableTrait; } });
33
37
  const switchableTrait_1 = require("./switchable/switchableTrait");
34
38
  Object.defineProperty(exports, "SwitchableTrait", { enumerable: true, get: function () { return switchableTrait_1.SwitchableTrait; } });
35
39
  const readableTrait_1 = require("./readable/readableTrait");
@@ -73,6 +77,11 @@ const combatantTrait_1 = require("./combatant/combatantTrait");
73
77
  Object.defineProperty(exports, "CombatantTrait", { enumerable: true, get: function () { return combatantTrait_1.CombatantTrait; } });
74
78
  const equippedTrait_1 = require("./equipped/equippedTrait");
75
79
  Object.defineProperty(exports, "EquippedTrait", { enumerable: true, get: function () { return equippedTrait_1.EquippedTrait; } });
80
+ // Health / life-state (ADR-226, ADR-223 child A)
81
+ const healthTrait_1 = require("./health/healthTrait");
82
+ Object.defineProperty(exports, "HealthTrait", { enumerable: true, get: function () { return healthTrait_1.HealthTrait; } });
83
+ const deadlyRoomTrait_1 = require("./deadly-room/deadlyRoomTrait");
84
+ Object.defineProperty(exports, "DeadlyRoomTrait", { enumerable: true, get: function () { return deadlyRoomTrait_1.DeadlyRoomTrait; } });
76
85
  // NPC traits (ADR-070)
77
86
  const npcTrait_1 = require("./npc/npcTrait");
78
87
  Object.defineProperty(exports, "NpcTrait", { enumerable: true, get: function () { return npcTrait_1.NpcTrait; } });
@@ -112,6 +121,8 @@ exports.TRAIT_IMPLEMENTATIONS = {
112
121
  // Interactive traits
113
122
  [trait_types_1.TraitType.OPENABLE]: openableTrait_1.OpenableTrait,
114
123
  [trait_types_1.TraitType.LOCKABLE]: lockableTrait_1.LockableTrait,
124
+ [trait_types_1.TraitType.CUTTABLE]: cuttableTrait_1.CuttableTrait,
125
+ [trait_types_1.TraitType.DIGGABLE]: diggableTrait_1.DiggableTrait,
115
126
  [trait_types_1.TraitType.SWITCHABLE]: switchableTrait_1.SwitchableTrait,
116
127
  [trait_types_1.TraitType.READABLE]: readableTrait_1.ReadableTrait,
117
128
  [trait_types_1.TraitType.LIGHT_SOURCE]: lightSourceTrait_1.LightSourceTrait,
@@ -136,6 +147,9 @@ exports.TRAIT_IMPLEMENTATIONS = {
136
147
  [trait_types_1.TraitType.DESTRUCTIBLE]: destructibleTrait_1.DestructibleTrait,
137
148
  [trait_types_1.TraitType.COMBATANT]: combatantTrait_1.CombatantTrait,
138
149
  [trait_types_1.TraitType.EQUIPPED]: equippedTrait_1.EquippedTrait,
150
+ // Health / life-state (ADR-226, ADR-223 child A)
151
+ [trait_types_1.TraitType.HEALTH]: healthTrait_1.HealthTrait,
152
+ [trait_types_1.TraitType.DEADLY_ROOM]: deadlyRoomTrait_1.DeadlyRoomTrait,
139
153
  // NPC traits (ADR-070)
140
154
  [trait_types_1.TraitType.NPC]: npcTrait_1.NpcTrait,
141
155
  [trait_types_1.TraitType.OPEN_INVENTORY]: openInventoryTrait_1.OpenInventoryTrait,
@@ -1 +1 @@
1
- {"version":3,"file":"implementations.js","sourceRoot":"","sources":["../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/implementations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"implementations.js","sourceRoot":"","sources":["../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/implementations.ts"],"names":[],"mappings":"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"}
package/traits/index.d.ts CHANGED
@@ -6,6 +6,8 @@ export * from './container';
6
6
  export * from './room';
7
7
  export * from './openable';
8
8
  export * from './lockable';
9
+ export * from './cuttable';
10
+ export * from './diggable';
9
11
  export * from './readable';
10
12
  export * from './light-source';
11
13
  export * from './exit';
@@ -30,6 +32,8 @@ export * from './breakable';
30
32
  export * from './destructible';
31
33
  export * from './combatant';
32
34
  export * from './equipped';
35
+ export * from './health';
36
+ export * from './deadly-room';
33
37
  export * from './vehicle';
34
38
  export * from './enterable';
35
39
  export * from './npc';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/index.ts"],"names":[],"mappings":"AAIA,cAAc,SAAS,CAAC;AACxB,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAGlC,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,QAAQ,CAAC;AACvB,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AAGxB,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,oBAAoB,CAAC;AAGnC,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAG3B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAG5B,cAAc,OAAO,CAAC;AACtB,cAAc,kBAAkB,CAAC;AAGjC,cAAc,mBAAmB,CAAC;AAGlC,cAAc,eAAe,CAAC;AAG9B,cAAc,cAAc,CAAC;AAG7B,cAAc,uBAAuB,CAAC;AAGtC,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAG3B,cAAc,gBAAgB,CAAC;AAG/B,cAAc,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/index.ts"],"names":[],"mappings":"AAIA,cAAc,SAAS,CAAC;AACxB,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAGlC,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,QAAQ,CAAC;AACvB,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AAGxB,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,oBAAoB,CAAC;AAGnC,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAG3B,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAG9B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAG5B,cAAc,OAAO,CAAC;AACtB,cAAc,kBAAkB,CAAC;AAGjC,cAAc,mBAAmB,CAAC;AAGlC,cAAc,eAAe,CAAC;AAG9B,cAAc,cAAc,CAAC;AAG7B,cAAc,uBAAuB,CAAC;AAGtC,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAG3B,cAAc,gBAAgB,CAAC;AAG/B,cAAc,cAAc,CAAC"}
package/traits/index.js CHANGED
@@ -26,6 +26,8 @@ __exportStar(require("./container"), exports);
26
26
  __exportStar(require("./room"), exports);
27
27
  __exportStar(require("./openable"), exports);
28
28
  __exportStar(require("./lockable"), exports);
29
+ __exportStar(require("./cuttable"), exports);
30
+ __exportStar(require("./diggable"), exports);
29
31
  __exportStar(require("./readable"), exports);
30
32
  __exportStar(require("./light-source"), exports);
31
33
  __exportStar(require("./exit"), exports);
@@ -52,6 +54,9 @@ __exportStar(require("./breakable"), exports);
52
54
  __exportStar(require("./destructible"), exports);
53
55
  __exportStar(require("./combatant"), exports);
54
56
  __exportStar(require("./equipped"), exports);
57
+ // Health / life-state (ADR-226, ADR-223 child A)
58
+ __exportStar(require("./health"), exports);
59
+ __exportStar(require("./deadly-room"), exports);
55
60
  // Transport traits
56
61
  __exportStar(require("./vehicle"), exports);
57
62
  __exportStar(require("./enterable"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/index.ts"],"names":[],"mappings":";AAAA,2CAA2C;AAC3C,sCAAsC;;;;;;;;;;;;;;;;AAEtC,mBAAmB;AACnB,0CAAwB;AACxB,gDAA8B;AAC9B,oDAAkC;AAElC,kEAAkE;AAClE,6CAA2B;AAC3B,8CAA4B;AAC5B,yCAAuB;AACvB,6CAA2B;AAC3B,6CAA2B;AAC3B,6CAA2B;AAC3B,iDAA+B;AAC/B,yCAAuB;AACvB,8CAA4B;AAC5B,4CAA0B;AAC1B,8CAA4B;AAC5B,+CAA6B;AAC7B,6CAA2B;AAC3B,6CAA2B;AAC3B,2CAAyB;AACzB,yCAAuB;AACvB,2CAAyB;AACzB,0CAAwB;AACxB,0CAAwB;AAExB,sBAAsB;AACtB,6CAA2B;AAC3B,6CAA2B;AAC3B,6CAA2B;AAC3B,2CAAyB;AACzB,qDAAmC;AAEnC,gBAAgB;AAChB,2CAAyB;AACzB,8CAA4B;AAC5B,iDAA+B;AAC/B,8CAA4B;AAC5B,6CAA2B;AAE3B,mBAAmB;AACnB,4CAA0B;AAC1B,8CAA4B;AAE5B,aAAa;AACb,wCAAsB;AACtB,mDAAiC;AAEjC,4BAA4B;AAC5B,oDAAkC;AAElC,+BAA+B;AAC/B,gDAA8B;AAE9B,gBAAgB;AAChB,+CAA6B;AAE7B,6CAA6C;AAC7C,wDAAsC;AAEtC,yCAAyC;AACzC,6CAA2B;AAC3B,6CAA2B;AAE3B,oBAAoB;AACpB,iDAA+B;AAE/B,2BAA2B;AAC3B,+CAA6B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/index.ts"],"names":[],"mappings":";AAAA,2CAA2C;AAC3C,sCAAsC;;;;;;;;;;;;;;;;AAEtC,mBAAmB;AACnB,0CAAwB;AACxB,gDAA8B;AAC9B,oDAAkC;AAElC,kEAAkE;AAClE,6CAA2B;AAC3B,8CAA4B;AAC5B,yCAAuB;AACvB,6CAA2B;AAC3B,6CAA2B;AAC3B,6CAA2B;AAC3B,6CAA2B;AAC3B,6CAA2B;AAC3B,iDAA+B;AAC/B,yCAAuB;AACvB,8CAA4B;AAC5B,4CAA0B;AAC1B,8CAA4B;AAC5B,+CAA6B;AAC7B,6CAA2B;AAC3B,6CAA2B;AAC3B,2CAAyB;AACzB,yCAAuB;AACvB,2CAAyB;AACzB,0CAAwB;AACxB,0CAAwB;AAExB,sBAAsB;AACtB,6CAA2B;AAC3B,6CAA2B;AAC3B,6CAA2B;AAC3B,2CAAyB;AACzB,qDAAmC;AAEnC,gBAAgB;AAChB,2CAAyB;AACzB,8CAA4B;AAC5B,iDAA+B;AAC/B,8CAA4B;AAC5B,6CAA2B;AAE3B,iDAAiD;AACjD,2CAAyB;AACzB,gDAA8B;AAE9B,mBAAmB;AACnB,4CAA0B;AAC1B,8CAA4B;AAE5B,aAAa;AACb,wCAAsB;AACtB,mDAAiC;AAEjC,4BAA4B;AAC5B,oDAAkC;AAElC,+BAA+B;AAC/B,gDAA8B;AAE9B,gBAAgB;AAChB,+CAA6B;AAE7B,6CAA6C;AAC7C,wDAAsC;AAEtC,yCAAyC;AACzC,6CAA2B;AAC3B,6CAA2B;AAE3B,oBAAoB;AACpB,iDAA+B;AAE/B,2BAA2B;AAC3B,+CAA6B"}
@@ -10,11 +10,11 @@ import { EntityId } from '@sharpee/core';
10
10
  * Interface for NPC trait data
11
11
  */
12
12
  export interface INpcData {
13
- /** Whether this NPC is currently alive */
14
- isAlive?: boolean;
15
- /** Whether this NPC is conscious (can act) */
16
- isConscious?: boolean;
17
- /** Whether this NPC is hostile to the player */
13
+ /**
14
+ * Whether this NPC is hostile to the player.
15
+ * (Life-state alive/conscious lives on HealthTrait, ADR-226; hostility moves
16
+ * to disposition in ADR-223 child C.)
17
+ */
18
18
  isHostile?: boolean;
19
19
  /** Whether this NPC can move between rooms */
20
20
  canMove?: boolean;
@@ -61,8 +61,6 @@ export interface INpcData {
61
61
  export declare class NpcTrait implements ITrait, INpcData {
62
62
  static readonly type: "npc";
63
63
  readonly type: "npc";
64
- isAlive: boolean;
65
- isConscious: boolean;
66
64
  isHostile: boolean;
67
65
  canMove: boolean;
68
66
  allowedRooms?: EntityId[];
@@ -80,10 +78,6 @@ export declare class NpcTrait implements ITrait, INpcData {
80
78
  goals?: string[];
81
79
  customProperties?: Record<string, unknown>;
82
80
  constructor(data?: INpcData);
83
- /**
84
- * Check if NPC can act (alive and conscious)
85
- */
86
- get canAct(): boolean;
87
81
  /**
88
82
  * Check if NPC can enter a specific room
89
83
  */
@@ -96,22 +90,6 @@ export declare class NpcTrait implements ITrait, INpcData {
96
90
  * Make this NPC non-hostile
97
91
  */
98
92
  makePassive(): void;
99
- /**
100
- * Knock out this NPC (unconscious but alive)
101
- */
102
- knockOut(): void;
103
- /**
104
- * Wake up this NPC
105
- */
106
- wakeUp(): void;
107
- /**
108
- * Kill this NPC
109
- */
110
- kill(): void;
111
- /**
112
- * Revive this NPC
113
- */
114
- revive(): void;
115
93
  /**
116
94
  * Set a knowledge item
117
95
  */
@@ -1 +1 @@
1
- {"version":3,"file":"npcTrait.d.ts","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/npc/npcTrait.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"npcTrait.d.ts","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/npc/npcTrait.ts"],"names":[],"mappings":"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"}
@@ -23,8 +23,6 @@ class NpcTrait {
23
23
  static type = 'npc';
24
24
  type = 'npc';
25
25
  // State properties
26
- isAlive;
27
- isConscious;
28
26
  isHostile;
29
27
  // Movement properties
30
28
  canMove;
@@ -43,8 +41,6 @@ class NpcTrait {
43
41
  customProperties;
44
42
  constructor(data = {}) {
45
43
  // Set defaults and merge with provided data
46
- this.isAlive = data.isAlive ?? true;
47
- this.isConscious = data.isConscious ?? true;
48
44
  this.isHostile = data.isHostile ?? false;
49
45
  this.canMove = data.canMove ?? false;
50
46
  this.allowedRooms = data.allowedRooms;
@@ -57,12 +53,6 @@ class NpcTrait {
57
53
  this.goals = data.goals;
58
54
  this.customProperties = data.customProperties;
59
55
  }
60
- /**
61
- * Check if NPC can act (alive and conscious)
62
- */
63
- get canAct() {
64
- return this.isAlive && this.isConscious;
65
- }
66
56
  /**
67
57
  * Check if NPC can enter a specific room
68
58
  */
@@ -91,34 +81,6 @@ class NpcTrait {
91
81
  makePassive() {
92
82
  this.isHostile = false;
93
83
  }
94
- /**
95
- * Knock out this NPC (unconscious but alive)
96
- */
97
- knockOut() {
98
- this.isConscious = false;
99
- }
100
- /**
101
- * Wake up this NPC
102
- */
103
- wakeUp() {
104
- if (this.isAlive) {
105
- this.isConscious = true;
106
- }
107
- }
108
- /**
109
- * Kill this NPC
110
- */
111
- kill() {
112
- this.isAlive = false;
113
- this.isConscious = false;
114
- }
115
- /**
116
- * Revive this NPC
117
- */
118
- revive() {
119
- this.isAlive = true;
120
- this.isConscious = true;
121
- }
122
84
  /**
123
85
  * Set a knowledge item
124
86
  */
@@ -1 +1 @@
1
- {"version":3,"file":"npcTrait.js","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/npc/npcTrait.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"npcTrait.js","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/npc/npcTrait.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { EntityId } from '@sharpee/core';
1
2
  import { Behavior } from '../../behaviors/behavior';
2
3
  import { IFEntity } from '../../entities/if-entity';
3
4
  /**
@@ -37,6 +38,15 @@ export declare class OpenableBehavior extends Behavior {
37
38
  * Check if an entity can be closed
38
39
  */
39
40
  static canClose(entity: IFEntity): boolean;
41
+ /**
42
+ * Check if this entity requires a tool to open (ADR-230 D3b;
43
+ * mirrors LockableBehavior.requiresKey)
44
+ */
45
+ static requiresTool(entity: IFEntity): boolean;
46
+ /**
47
+ * Check if a tool can open this entity (mirrors LockableBehavior.canUnlockWith)
48
+ */
49
+ static canOpenWith(entity: IFEntity, toolId: EntityId): boolean;
40
50
  /**
41
51
  * Open the entity
42
52
  * @returns Result describing what happened
@@ -1 +1 @@
1
- {"version":3,"file":"openableBehavior.d.ts","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/openable/openableBehavior.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAIpD;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;GAIG;AACH,qBAAa,gBAAiB,SAAQ,QAAQ;IAC5C,MAAM,CAAC,cAAc,eAAwB;IAE7C;;OAEG;IACH,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,GAAG,OAAO;IAKzC;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,GAAG,OAAO;IAK1C;;;OAGG;IACH,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,GAAG,WAAW;IAuB1C;;;OAGG;IACH,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,GAAG,YAAY;IA8B5C;;;OAGG;IACH,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,GAAG,WAAW,GAAG,YAAY;IAU3D;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,GAAG,OAAO;IAKxC;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,MAAM,EAAE,QAAQ,GAAG,OAAO;CAIlD"}
1
+ {"version":3,"file":"openableBehavior.d.ts","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/openable/openableBehavior.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAIpD;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;GAIG;AACH,qBAAa,gBAAiB,SAAQ,QAAQ;IAC5C,MAAM,CAAC,cAAc,eAAwB;IAE7C;;OAEG;IACH,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,GAAG,OAAO;IAKzC;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,GAAG,OAAO;IAK1C;;;OAGG;IACH,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,GAAG,OAAO;IAK9C;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,GAAG,OAAO;IAc/D;;;OAGG;IACH,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,GAAG,WAAW;IAuB1C;;;OAGG;IACH,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,GAAG,YAAY;IA8B5C;;;OAGG;IACH,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,GAAG,WAAW,GAAG,YAAY;IAU3D;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,GAAG,OAAO;IAKxC;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,MAAM,EAAE,QAAQ,GAAG,OAAO;CAIlD"}
@@ -25,6 +25,27 @@ class OpenableBehavior extends behavior_1.Behavior {
25
25
  const openable = OpenableBehavior.require(entity, trait_types_1.TraitType.OPENABLE);
26
26
  return openable.isOpen && openable.canClose;
27
27
  }
28
+ /**
29
+ * Check if this entity requires a tool to open (ADR-230 D3b;
30
+ * mirrors LockableBehavior.requiresKey)
31
+ */
32
+ static requiresTool(entity) {
33
+ const openable = OpenableBehavior.require(entity, trait_types_1.TraitType.OPENABLE);
34
+ return !!(openable.toolId || openable.toolIds?.length);
35
+ }
36
+ /**
37
+ * Check if a tool can open this entity (mirrors LockableBehavior.canUnlockWith)
38
+ */
39
+ static canOpenWith(entity, toolId) {
40
+ const openable = OpenableBehavior.require(entity, trait_types_1.TraitType.OPENABLE);
41
+ if (openable.toolId === toolId) {
42
+ return true;
43
+ }
44
+ if (openable.toolIds && openable.toolIds.includes(toolId)) {
45
+ return true;
46
+ }
47
+ return false;
48
+ }
28
49
  /**
29
50
  * Open the entity
30
51
  * @returns Result describing what happened
@@ -1 +1 @@
1
- {"version":3,"file":"openableBehavior.js","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/openable/openableBehavior.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"openableBehavior.js","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/openable/openableBehavior.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { EntityId } from '@sharpee/core';
1
2
  import { ITrait } from '../trait';
2
3
  export interface IOpenableData {
3
4
  /** Whether the entity is currently open */
@@ -24,6 +25,10 @@ export interface IOpenableData {
24
25
  openDescription?: string;
25
26
  /** Description when closed (used by computed description getter on IFEntity) */
26
27
  closedDescription?: string;
28
+ /** Single tool entity required to open this (ADR-230 D3b; mirrors ILockableData.keyId) */
29
+ toolId?: EntityId;
30
+ /** Multiple tool entities that can open this (mirrors ILockableData.keyIds) */
31
+ toolIds?: EntityId[];
27
32
  }
28
33
  /**
29
34
  * Openable trait for entities that can be opened and closed.
@@ -47,6 +52,8 @@ export declare class OpenableTrait implements ITrait, IOpenableData {
47
52
  closeSound?: string;
48
53
  openDescription?: string;
49
54
  closedDescription?: string;
55
+ toolId?: EntityId;
56
+ toolIds?: EntityId[];
50
57
  constructor(data?: IOpenableData);
51
58
  }
52
59
  //# sourceMappingURL=openableTrait.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"openableTrait.d.ts","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/openable/openableTrait.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAGlC,MAAM,WAAW,aAAa;IAC5B,2CAA2C;IAC3C,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB,qCAAqC;IACrC,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,kCAAkC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,kCAAkC;IAClC,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,uCAAuC;IACvC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B,yCAAyC;IACzC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAE9B,wDAAwD;IACxD,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,8BAA8B;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,8BAA8B;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,8EAA8E;IAC9E,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,gFAAgF;IAChF,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;;GAMG;AACH,qBAAa,aAAc,YAAW,MAAM,EAAE,aAAa;IACzD,MAAM,CAAC,QAAQ,CAAC,IAAI,aAAsB;IAC1C,QAAQ,CAAC,IAAI,aAAsB;IAGnC,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,eAAe,EAAE,OAAO,CAAC;IACzB,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iBAAiB,CAAC,EAAE,MAAM,CAAC;gBAEf,IAAI,GAAE,aAAkB;CAerC"}
1
+ {"version":3,"file":"openableTrait.d.ts","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/openable/openableTrait.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAGlC,MAAM,WAAW,aAAa;IAC5B,2CAA2C;IAC3C,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB,qCAAqC;IACrC,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,kCAAkC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,kCAAkC;IAClC,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,uCAAuC;IACvC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B,yCAAyC;IACzC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAE9B,wDAAwD;IACxD,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,8BAA8B;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,8BAA8B;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,8EAA8E;IAC9E,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,gFAAgF;IAChF,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B,0FAA0F;IAC1F,MAAM,CAAC,EAAE,QAAQ,CAAC;IAElB,+EAA+E;IAC/E,OAAO,CAAC,EAAE,QAAQ,EAAE,CAAC;CACtB;AAED;;;;;;GAMG;AACH,qBAAa,aAAc,YAAW,MAAM,EAAE,aAAa;IACzD,MAAM,CAAC,QAAQ,CAAC,IAAI,aAAsB;IAC1C,QAAQ,CAAC,IAAI,aAAsB;IAGnC,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,eAAe,EAAE,OAAO,CAAC;IACzB,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,MAAM,CAAC,EAAE,QAAQ,CAAC;IAClB,OAAO,CAAC,EAAE,QAAQ,EAAE,CAAC;gBAET,IAAI,GAAE,aAAkB;CAiBrC"}
@@ -26,6 +26,8 @@ class OpenableTrait {
26
26
  closeSound;
27
27
  openDescription;
28
28
  closedDescription;
29
+ toolId;
30
+ toolIds;
29
31
  constructor(data = {}) {
30
32
  // Set defaults and merge with provided data
31
33
  this.startsOpen = data.startsOpen ?? false;
@@ -40,6 +42,8 @@ class OpenableTrait {
40
42
  this.closeSound = data.closeSound;
41
43
  this.openDescription = data.openDescription;
42
44
  this.closedDescription = data.closedDescription;
45
+ this.toolId = data.toolId;
46
+ this.toolIds = data.toolIds;
43
47
  }
44
48
  }
45
49
  exports.OpenableTrait = OpenableTrait;
@@ -1 +1 @@
1
- {"version":3,"file":"openableTrait.js","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/openable/openableTrait.ts"],"names":[],"mappings":";AAAA,4DAA4D;;;AAG5D,gDAA2C;AAwC3C;;;;;;GAMG;AACH,MAAa,aAAa;IACxB,MAAM,CAAU,IAAI,GAAG,uBAAS,CAAC,QAAQ,CAAC;IACjC,IAAI,GAAG,uBAAS,CAAC,QAAQ,CAAC;IAEnC,0BAA0B;IAC1B,MAAM,CAAU;IAChB,UAAU,CAAU;IACpB,WAAW,CAAU;IACrB,YAAY,CAAU;IACtB,kBAAkB,CAAU;IAC5B,oBAAoB,CAAU;IAC9B,eAAe,CAAU;IACzB,QAAQ,CAAU;IAClB,SAAS,CAAU;IACnB,UAAU,CAAU;IACpB,eAAe,CAAU;IACzB,iBAAiB,CAAU;IAE3B,YAAY,OAAsB,EAAE;QAClC,4CAA4C;QAC5C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,KAAK,CAAC;QAC3C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,UAAU,CAAC;QAC7C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACpC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QACtC,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC;QAClD,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,CAAC;QACtD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC;QACpD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC;QACtC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAChC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QAClC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;QAC5C,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC;IAClD,CAAC;;AAhCH,sCAiCC"}
1
+ {"version":3,"file":"openableTrait.js","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/openable/openableTrait.ts"],"names":[],"mappings":";AAAA,4DAA4D;;;AAI5D,gDAA2C;AA8C3C;;;;;;GAMG;AACH,MAAa,aAAa;IACxB,MAAM,CAAU,IAAI,GAAG,uBAAS,CAAC,QAAQ,CAAC;IACjC,IAAI,GAAG,uBAAS,CAAC,QAAQ,CAAC;IAEnC,0BAA0B;IAC1B,MAAM,CAAU;IAChB,UAAU,CAAU;IACpB,WAAW,CAAU;IACrB,YAAY,CAAU;IACtB,kBAAkB,CAAU;IAC5B,oBAAoB,CAAU;IAC9B,eAAe,CAAU;IACzB,QAAQ,CAAU;IAClB,SAAS,CAAU;IACnB,UAAU,CAAU;IACpB,eAAe,CAAU;IACzB,iBAAiB,CAAU;IAC3B,MAAM,CAAY;IAClB,OAAO,CAAc;IAErB,YAAY,OAAsB,EAAE;QAClC,4CAA4C;QAC5C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,KAAK,CAAC;QAC3C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,UAAU,CAAC;QAC7C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACpC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QACtC,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC;QAClD,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,CAAC;QACtD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC;QACpD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC;QACtC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAChC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QAClC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;QAC5C,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC;QAChD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IAC9B,CAAC;;AApCH,sCAqCC"}