@sharpee/world-model 3.0.0 → 3.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (631) hide show
  1. package/annotations/index.d.ts +1 -1
  2. package/annotations/index.d.ts.map +1 -1
  3. package/annotations/index.js +1 -1
  4. package/annotations/index.js.map +1 -1
  5. package/behaviors/attack.d.ts +21 -4
  6. package/behaviors/attack.d.ts.map +1 -1
  7. package/behaviors/attack.js +37 -33
  8. package/behaviors/attack.js.map +1 -1
  9. package/behaviors/behavior.d.ts +3 -3
  10. package/behaviors/behavior.d.ts.map +1 -1
  11. package/behaviors/index.d.ts +21 -20
  12. package/behaviors/index.d.ts.map +1 -1
  13. package/behaviors/index.js +35 -32
  14. package/behaviors/index.js.map +1 -1
  15. package/capabilities/action-interceptor.d.ts +96 -9
  16. package/capabilities/action-interceptor.d.ts.map +1 -1
  17. package/capabilities/action-interceptor.js +59 -2
  18. package/capabilities/action-interceptor.js.map +1 -1
  19. package/capabilities/capability-behavior.d.ts +3 -3
  20. package/capabilities/capability-behavior.d.ts.map +1 -1
  21. package/capabilities/capability-binding.d.ts +3 -3
  22. package/capabilities/capability-binding.d.ts.map +1 -1
  23. package/capabilities/capability-helpers.d.ts +2 -2
  24. package/capabilities/capability-helpers.d.ts.map +1 -1
  25. package/capabilities/entity-builder.d.ts +2 -2
  26. package/capabilities/entity-builder.d.ts.map +1 -1
  27. package/capabilities/index.d.ts +9 -9
  28. package/capabilities/index.d.ts.map +1 -1
  29. package/capabilities/index.js +27 -26
  30. package/capabilities/index.js.map +1 -1
  31. package/capabilities/interceptor-binding.d.ts +2 -2
  32. package/capabilities/interceptor-binding.d.ts.map +1 -1
  33. package/capabilities/interceptor-helpers.d.ts +2 -2
  34. package/capabilities/interceptor-helpers.d.ts.map +1 -1
  35. package/commands/command-types.d.ts +2 -2
  36. package/commands/command-types.d.ts.map +1 -1
  37. package/commands/index.d.ts +3 -3
  38. package/commands/index.d.ts.map +1 -1
  39. package/commands/index.js +3 -3
  40. package/commands/index.js.map +1 -1
  41. package/commands/parsed-command.d.ts +13 -0
  42. package/commands/parsed-command.d.ts.map +1 -1
  43. package/commands/validated-command.d.ts +16 -2
  44. package/commands/validated-command.d.ts.map +1 -1
  45. package/constants/index.d.ts +3 -3
  46. package/constants/index.d.ts.map +1 -1
  47. package/constants/index.js +3 -3
  48. package/constants/index.js.map +1 -1
  49. package/entities/entity-store.d.ts +1 -1
  50. package/entities/entity-store.d.ts.map +1 -1
  51. package/entities/entity-store.js +2 -2
  52. package/entities/entity-store.js.map +1 -1
  53. package/entities/if-entity.d.ts +3 -3
  54. package/entities/if-entity.d.ts.map +1 -1
  55. package/entities/if-entity.js +38 -34
  56. package/entities/if-entity.js.map +1 -1
  57. package/entities/index.d.ts +6 -6
  58. package/entities/index.d.ts.map +1 -1
  59. package/entities/index.js +10 -10
  60. package/entities/index.js.map +1 -1
  61. package/entities/trait-rehydrator.d.ts +43 -0
  62. package/entities/trait-rehydrator.d.ts.map +1 -0
  63. package/entities/trait-rehydrator.js +45 -0
  64. package/entities/trait-rehydrator.js.map +1 -0
  65. package/entities/wall-entity.d.ts +2 -2
  66. package/entities/wall-entity.d.ts.map +1 -1
  67. package/entities/wall-entity.js +2 -2
  68. package/entities/wall-entity.js.map +1 -1
  69. package/examples/event-handler-registration.d.ts +1 -1
  70. package/examples/event-handler-registration.d.ts.map +1 -1
  71. package/examples/event-handler-registration.js +24 -24
  72. package/examples/event-handler-registration.js.map +1 -1
  73. package/extensions/base-extension.d.ts +3 -3
  74. package/extensions/base-extension.d.ts.map +1 -1
  75. package/extensions/index.d.ts +4 -4
  76. package/extensions/index.d.ts.map +1 -1
  77. package/extensions/index.js +11 -11
  78. package/extensions/index.js.map +1 -1
  79. package/extensions/loader.d.ts +1 -1
  80. package/extensions/loader.d.ts.map +1 -1
  81. package/extensions/loader.js +2 -2
  82. package/extensions/loader.js.map +1 -1
  83. package/extensions/manager.d.ts +1 -1
  84. package/extensions/manager.d.ts.map +1 -1
  85. package/extensions/manager.js +2 -2
  86. package/extensions/manager.js.map +1 -1
  87. package/extensions/registry.d.ts +2 -2
  88. package/extensions/registry.d.ts.map +1 -1
  89. package/extensions/registry.js +4 -4
  90. package/extensions/registry.js.map +1 -1
  91. package/extensions/types.d.ts +2 -2
  92. package/extensions/types.d.ts.map +1 -1
  93. package/index.d.ts +58 -46
  94. package/index.d.ts.map +1 -1
  95. package/index.js +72 -50
  96. package/index.js.map +1 -1
  97. package/interfaces/command-executor.d.ts +1 -1
  98. package/interfaces/command-executor.d.ts.map +1 -1
  99. package/interfaces/command-processor.d.ts +1 -1
  100. package/interfaces/command-processor.d.ts.map +1 -1
  101. package/interfaces/command-validator.d.ts +1 -1
  102. package/interfaces/command-validator.d.ts.map +1 -1
  103. package/interfaces/index.d.ts +4 -4
  104. package/interfaces/index.d.ts.map +1 -1
  105. package/interfaces/index.js +4 -4
  106. package/interfaces/index.js.map +1 -1
  107. package/interfaces/parser.d.ts +1 -1
  108. package/interfaces/parser.d.ts.map +1 -1
  109. package/package.json +3 -3
  110. package/scope/index.d.ts +3 -3
  111. package/scope/index.d.ts.map +1 -1
  112. package/scope/index.js +3 -3
  113. package/scope/index.js.map +1 -1
  114. package/scope/scope-evaluator.d.ts +2 -2
  115. package/scope/scope-evaluator.d.ts.map +1 -1
  116. package/scope/scope-registry.d.ts +1 -1
  117. package/scope/scope-registry.d.ts.map +1 -1
  118. package/state-adjectives.d.ts +1 -1
  119. package/state-adjectives.d.ts.map +1 -1
  120. package/state-adjectives.js +5 -5
  121. package/state-adjectives.js.map +1 -1
  122. package/state-clauses.d.ts +1 -1
  123. package/state-clauses.d.ts.map +1 -1
  124. package/state-clauses.js +5 -5
  125. package/state-clauses.js.map +1 -1
  126. package/test-structure.d.ts +1 -1
  127. package/test-structure.d.ts.map +1 -1
  128. package/test-structure.js +7 -7
  129. package/test-structure.js.map +1 -1
  130. package/traits/acoustic/acousticDampenerTrait.d.ts +1 -1
  131. package/traits/acoustic/acousticDampenerTrait.d.ts.map +1 -1
  132. package/traits/acoustic/acousticDampenerTrait.js +3 -3
  133. package/traits/acoustic/acousticDampenerTrait.js.map +1 -1
  134. package/traits/acoustic/acousticTrait.d.ts +1 -1
  135. package/traits/acoustic/acousticTrait.d.ts.map +1 -1
  136. package/traits/acoustic/acousticTrait.js +3 -3
  137. package/traits/acoustic/acousticTrait.js.map +1 -1
  138. package/traits/acoustic/index.d.ts +2 -2
  139. package/traits/acoustic/index.d.ts.map +1 -1
  140. package/traits/acoustic/index.js +5 -5
  141. package/traits/acoustic/index.js.map +1 -1
  142. package/traits/actor/actorBehavior.d.ts +4 -4
  143. package/traits/actor/actorBehavior.d.ts.map +1 -1
  144. package/traits/actor/actorBehavior.js +38 -34
  145. package/traits/actor/actorBehavior.js.map +1 -1
  146. package/traits/actor/actorTrait.d.ts +1 -1
  147. package/traits/actor/actorTrait.d.ts.map +1 -1
  148. package/traits/actor/actorTrait.js +3 -3
  149. package/traits/actor/actorTrait.js.map +1 -1
  150. package/traits/actor/index.d.ts +2 -2
  151. package/traits/actor/index.d.ts.map +1 -1
  152. package/traits/actor/index.js +6 -6
  153. package/traits/actor/index.js.map +1 -1
  154. package/traits/all-traits.d.ts +30 -33
  155. package/traits/all-traits.d.ts.map +1 -1
  156. package/traits/all-traits.js +56 -62
  157. package/traits/all-traits.js.map +1 -1
  158. package/traits/attached/attachedTrait.d.ts +1 -1
  159. package/traits/attached/attachedTrait.d.ts.map +1 -1
  160. package/traits/attached/attachedTrait.js +3 -3
  161. package/traits/attached/attachedTrait.js.map +1 -1
  162. package/traits/attached/index.d.ts +1 -1
  163. package/traits/attached/index.d.ts.map +1 -1
  164. package/traits/attached/index.js +1 -1
  165. package/traits/attached/index.js.map +1 -1
  166. package/traits/breakable/breakableBehavior.d.ts +3 -3
  167. package/traits/breakable/breakableBehavior.d.ts.map +1 -1
  168. package/traits/breakable/breakableBehavior.js +10 -10
  169. package/traits/breakable/breakableBehavior.js.map +1 -1
  170. package/traits/breakable/breakableTrait.d.ts +1 -1
  171. package/traits/breakable/breakableTrait.d.ts.map +1 -1
  172. package/traits/breakable/index.d.ts +2 -2
  173. package/traits/breakable/index.d.ts.map +1 -1
  174. package/traits/breakable/index.js +4 -4
  175. package/traits/breakable/index.js.map +1 -1
  176. package/traits/button/buttonTrait.d.ts +1 -1
  177. package/traits/button/buttonTrait.d.ts.map +1 -1
  178. package/traits/button/buttonTrait.js +3 -3
  179. package/traits/button/buttonTrait.js.map +1 -1
  180. package/traits/button/index.d.ts +1 -1
  181. package/traits/button/index.d.ts.map +1 -1
  182. package/traits/button/index.js +1 -1
  183. package/traits/button/index.js.map +1 -1
  184. package/traits/character-model/characterModelTrait.d.ts +2 -2
  185. package/traits/character-model/characterModelTrait.d.ts.map +1 -1
  186. package/traits/character-model/characterModelTrait.js +16 -16
  187. package/traits/character-model/characterModelTrait.js.map +1 -1
  188. package/traits/character-model/index.d.ts +2 -2
  189. package/traits/character-model/index.d.ts.map +1 -1
  190. package/traits/character-model/index.js +3 -3
  191. package/traits/character-model/index.js.map +1 -1
  192. package/traits/climbable/climbableBehavior.d.ts +1 -1
  193. package/traits/climbable/climbableBehavior.d.ts.map +1 -1
  194. package/traits/climbable/climbableBehavior.js +9 -9
  195. package/traits/climbable/climbableBehavior.js.map +1 -1
  196. package/traits/climbable/climbableTrait.d.ts +1 -1
  197. package/traits/climbable/climbableTrait.d.ts.map +1 -1
  198. package/traits/climbable/climbableTrait.js +4 -4
  199. package/traits/climbable/climbableTrait.js.map +1 -1
  200. package/traits/climbable/index.d.ts +2 -2
  201. package/traits/climbable/index.d.ts.map +1 -1
  202. package/traits/climbable/index.js +2 -2
  203. package/traits/climbable/index.js.map +1 -1
  204. package/traits/clothing/clothingTrait.d.ts +2 -2
  205. package/traits/clothing/clothingTrait.d.ts.map +1 -1
  206. package/traits/clothing/clothingTrait.js +3 -3
  207. package/traits/clothing/clothingTrait.js.map +1 -1
  208. package/traits/clothing/index.d.ts +1 -1
  209. package/traits/clothing/index.d.ts.map +1 -1
  210. package/traits/clothing/index.js +1 -1
  211. package/traits/clothing/index.js.map +1 -1
  212. package/traits/combatant/combatantBehavior.d.ts +26 -21
  213. package/traits/combatant/combatantBehavior.d.ts.map +1 -1
  214. package/traits/combatant/combatantBehavior.js +58 -56
  215. package/traits/combatant/combatantBehavior.js.map +1 -1
  216. package/traits/combatant/combatantTrait.d.ts +15 -49
  217. package/traits/combatant/combatantTrait.d.ts.map +1 -1
  218. package/traits/combatant/combatantTrait.js +13 -80
  219. package/traits/combatant/combatantTrait.js.map +1 -1
  220. package/traits/combatant/index.d.ts +2 -2
  221. package/traits/combatant/index.d.ts.map +1 -1
  222. package/traits/combatant/index.js +4 -4
  223. package/traits/combatant/index.js.map +1 -1
  224. package/traits/concealment/concealedStateTrait.d.ts +3 -3
  225. package/traits/concealment/concealedStateTrait.d.ts.map +1 -1
  226. package/traits/concealment/concealedStateTrait.js +2 -2
  227. package/traits/concealment/concealedStateTrait.js.map +1 -1
  228. package/traits/concealment/concealedVisibilityBehavior.d.ts +2 -2
  229. package/traits/concealment/concealedVisibilityBehavior.d.ts.map +1 -1
  230. package/traits/concealment/concealedVisibilityBehavior.js +3 -3
  231. package/traits/concealment/concealedVisibilityBehavior.js.map +1 -1
  232. package/traits/concealment/concealmentTrait.d.ts +1 -1
  233. package/traits/concealment/concealmentTrait.d.ts.map +1 -1
  234. package/traits/concealment/index.d.ts +3 -3
  235. package/traits/concealment/index.d.ts.map +1 -1
  236. package/traits/concealment/index.js +3 -3
  237. package/traits/concealment/index.js.map +1 -1
  238. package/traits/container/container-utils.d.ts +2 -2
  239. package/traits/container/container-utils.d.ts.map +1 -1
  240. package/traits/container/container-utils.js +14 -14
  241. package/traits/container/container-utils.js.map +1 -1
  242. package/traits/container/containerBehavior.d.ts +7 -2
  243. package/traits/container/containerBehavior.d.ts.map +1 -1
  244. package/traits/container/containerBehavior.js +26 -26
  245. package/traits/container/containerBehavior.js.map +1 -1
  246. package/traits/container/containerTrait.d.ts +1 -1
  247. package/traits/container/containerTrait.d.ts.map +1 -1
  248. package/traits/container/containerTrait.js +3 -3
  249. package/traits/container/containerTrait.js.map +1 -1
  250. package/traits/container/index.d.ts +3 -3
  251. package/traits/container/index.d.ts.map +1 -1
  252. package/traits/container/index.js +9 -9
  253. package/traits/container/index.js.map +1 -1
  254. package/traits/cuttable/cuttableBehavior.d.ts +23 -0
  255. package/traits/cuttable/cuttableBehavior.d.ts.map +1 -0
  256. package/traits/cuttable/cuttableBehavior.js +39 -0
  257. package/traits/cuttable/cuttableBehavior.js.map +1 -0
  258. package/traits/cuttable/cuttableTrait.d.ts +37 -0
  259. package/traits/cuttable/cuttableTrait.d.ts.map +1 -0
  260. package/traits/cuttable/cuttableTrait.js +30 -0
  261. package/traits/cuttable/cuttableTrait.js.map +1 -0
  262. package/traits/cuttable/index.d.ts +3 -0
  263. package/traits/cuttable/index.d.ts.map +1 -0
  264. package/traits/cuttable/index.js +20 -0
  265. package/traits/cuttable/index.js.map +1 -0
  266. package/traits/deadly-room/deadlyRoomBehavior.d.ts +48 -0
  267. package/traits/deadly-room/deadlyRoomBehavior.d.ts.map +1 -0
  268. package/traits/deadly-room/deadlyRoomBehavior.js +59 -0
  269. package/traits/deadly-room/deadlyRoomBehavior.js.map +1 -0
  270. package/traits/deadly-room/deadlyRoomTrait.d.ts +51 -0
  271. package/traits/deadly-room/deadlyRoomTrait.d.ts.map +1 -0
  272. package/traits/deadly-room/deadlyRoomTrait.js +37 -0
  273. package/traits/deadly-room/deadlyRoomTrait.js.map +1 -0
  274. package/traits/deadly-room/index.d.ts +3 -0
  275. package/traits/deadly-room/index.d.ts.map +1 -0
  276. package/traits/deadly-room/index.js +8 -0
  277. package/traits/deadly-room/index.js.map +1 -0
  278. package/traits/destructible/destructibleBehavior.d.ts +3 -3
  279. package/traits/destructible/destructibleBehavior.d.ts.map +1 -1
  280. package/traits/destructible/destructibleBehavior.js +12 -12
  281. package/traits/destructible/destructibleBehavior.js.map +1 -1
  282. package/traits/destructible/destructibleTrait.d.ts +1 -1
  283. package/traits/destructible/destructibleTrait.d.ts.map +1 -1
  284. package/traits/destructible/index.d.ts +2 -2
  285. package/traits/destructible/index.d.ts.map +1 -1
  286. package/traits/destructible/index.js +4 -4
  287. package/traits/destructible/index.js.map +1 -1
  288. package/traits/diggable/diggableBehavior.d.ts +23 -0
  289. package/traits/diggable/diggableBehavior.d.ts.map +1 -0
  290. package/traits/diggable/diggableBehavior.js +39 -0
  291. package/traits/diggable/diggableBehavior.js.map +1 -0
  292. package/traits/diggable/diggableTrait.d.ts +37 -0
  293. package/traits/diggable/diggableTrait.d.ts.map +1 -0
  294. package/traits/diggable/diggableTrait.js +30 -0
  295. package/traits/diggable/diggableTrait.js.map +1 -0
  296. package/traits/diggable/index.d.ts +3 -0
  297. package/traits/diggable/index.d.ts.map +1 -0
  298. package/traits/diggable/index.js +20 -0
  299. package/traits/diggable/index.js.map +1 -0
  300. package/traits/door/doorBehavior.d.ts +2 -2
  301. package/traits/door/doorBehavior.d.ts.map +1 -1
  302. package/traits/door/doorBehavior.js +11 -11
  303. package/traits/door/doorBehavior.js.map +1 -1
  304. package/traits/door/doorTrait.d.ts +1 -1
  305. package/traits/door/doorTrait.d.ts.map +1 -1
  306. package/traits/door/doorTrait.js +3 -3
  307. package/traits/door/doorTrait.js.map +1 -1
  308. package/traits/door/index.d.ts +2 -2
  309. package/traits/door/index.d.ts.map +1 -1
  310. package/traits/door/index.js +4 -4
  311. package/traits/door/index.js.map +1 -1
  312. package/traits/edible/edibleBehavior.d.ts +3 -3
  313. package/traits/edible/edibleBehavior.d.ts.map +1 -1
  314. package/traits/edible/edibleBehavior.js +20 -20
  315. package/traits/edible/edibleBehavior.js.map +1 -1
  316. package/traits/edible/edibleTrait.d.ts +1 -1
  317. package/traits/edible/edibleTrait.d.ts.map +1 -1
  318. package/traits/edible/edibleTrait.js +3 -3
  319. package/traits/edible/edibleTrait.js.map +1 -1
  320. package/traits/edible/index.d.ts +2 -2
  321. package/traits/edible/index.d.ts.map +1 -1
  322. package/traits/edible/index.js +2 -2
  323. package/traits/edible/index.js.map +1 -1
  324. package/traits/enterable/enterableTrait.d.ts +1 -1
  325. package/traits/enterable/enterableTrait.d.ts.map +1 -1
  326. package/traits/enterable/enterableTrait.js +4 -4
  327. package/traits/enterable/enterableTrait.js.map +1 -1
  328. package/traits/enterable/index.d.ts +1 -1
  329. package/traits/enterable/index.d.ts.map +1 -1
  330. package/traits/enterable/index.js +1 -1
  331. package/traits/enterable/index.js.map +1 -1
  332. package/traits/equipped/equippedTrait.d.ts +1 -1
  333. package/traits/equipped/equippedTrait.d.ts.map +1 -1
  334. package/traits/equipped/index.d.ts +1 -1
  335. package/traits/equipped/index.d.ts.map +1 -1
  336. package/traits/equipped/index.js +2 -2
  337. package/traits/equipped/index.js.map +1 -1
  338. package/traits/exit/exitBehavior.d.ts +2 -2
  339. package/traits/exit/exitBehavior.d.ts.map +1 -1
  340. package/traits/exit/exitBehavior.js +27 -27
  341. package/traits/exit/exitBehavior.js.map +1 -1
  342. package/traits/exit/exitTrait.d.ts +1 -1
  343. package/traits/exit/exitTrait.d.ts.map +1 -1
  344. package/traits/exit/exitTrait.js +3 -3
  345. package/traits/exit/exitTrait.js.map +1 -1
  346. package/traits/exit/index.d.ts +2 -2
  347. package/traits/exit/index.d.ts.map +1 -1
  348. package/traits/exit/index.js +4 -4
  349. package/traits/exit/index.js.map +1 -1
  350. package/traits/health/healthBehavior.d.ts +66 -0
  351. package/traits/health/healthBehavior.d.ts.map +1 -0
  352. package/traits/health/healthBehavior.js +98 -0
  353. package/traits/health/healthBehavior.js.map +1 -0
  354. package/traits/health/healthTrait.d.ts +60 -0
  355. package/traits/health/healthTrait.d.ts.map +1 -0
  356. package/traits/health/healthTrait.js +49 -0
  357. package/traits/health/healthTrait.js.map +1 -0
  358. package/traits/health/index.d.ts +3 -0
  359. package/traits/health/index.d.ts.map +1 -0
  360. package/traits/health/index.js +8 -0
  361. package/traits/health/index.js.map +1 -0
  362. package/traits/identity/identityBehavior.d.ts +2 -2
  363. package/traits/identity/identityBehavior.d.ts.map +1 -1
  364. package/traits/identity/identityBehavior.js +16 -16
  365. package/traits/identity/identityBehavior.js.map +1 -1
  366. package/traits/identity/identityTrait.d.ts +8 -1
  367. package/traits/identity/identityTrait.d.ts.map +1 -1
  368. package/traits/identity/identityTrait.js +10 -3
  369. package/traits/identity/identityTrait.js.map +1 -1
  370. package/traits/identity/index.d.ts +3 -2
  371. package/traits/identity/index.d.ts.map +1 -1
  372. package/traits/identity/index.js +3 -2
  373. package/traits/identity/index.js.map +1 -1
  374. package/traits/identity/name-vocabulary.d.ts +31 -0
  375. package/traits/identity/name-vocabulary.d.ts.map +1 -0
  376. package/traits/identity/name-vocabulary.js +57 -0
  377. package/traits/identity/name-vocabulary.js.map +1 -0
  378. package/traits/implementations.d.ts +65 -38
  379. package/traits/implementations.d.ts.map +1 -1
  380. package/traits/implementations.js +165 -117
  381. package/traits/implementations.js.map +1 -1
  382. package/traits/index.d.ts +47 -44
  383. package/traits/index.d.ts.map +1 -1
  384. package/traits/index.js +48 -44
  385. package/traits/index.js.map +1 -1
  386. package/traits/light-source/index.d.ts +2 -2
  387. package/traits/light-source/index.d.ts.map +1 -1
  388. package/traits/light-source/index.js +4 -4
  389. package/traits/light-source/index.js.map +1 -1
  390. package/traits/light-source/lightSourceBehavior.d.ts +2 -2
  391. package/traits/light-source/lightSourceBehavior.d.ts.map +1 -1
  392. package/traits/light-source/lightSourceBehavior.js +16 -16
  393. package/traits/light-source/lightSourceBehavior.js.map +1 -1
  394. package/traits/light-source/lightSourceTrait.d.ts +1 -1
  395. package/traits/light-source/lightSourceTrait.d.ts.map +1 -1
  396. package/traits/light-source/lightSourceTrait.js +3 -3
  397. package/traits/light-source/lightSourceTrait.js.map +1 -1
  398. package/traits/listener/index.d.ts +1 -1
  399. package/traits/listener/index.d.ts.map +1 -1
  400. package/traits/listener/index.js +2 -2
  401. package/traits/listener/index.js.map +1 -1
  402. package/traits/listener/listenerTrait.d.ts +1 -1
  403. package/traits/listener/listenerTrait.d.ts.map +1 -1
  404. package/traits/listener/listenerTrait.js +3 -3
  405. package/traits/listener/listenerTrait.js.map +1 -1
  406. package/traits/lockable/index.d.ts +2 -2
  407. package/traits/lockable/index.d.ts.map +1 -1
  408. package/traits/lockable/index.js +2 -2
  409. package/traits/lockable/index.js.map +1 -1
  410. package/traits/lockable/lockableBehavior.d.ts +2 -2
  411. package/traits/lockable/lockableBehavior.d.ts.map +1 -1
  412. package/traits/lockable/lockableBehavior.js +19 -19
  413. package/traits/lockable/lockableBehavior.js.map +1 -1
  414. package/traits/lockable/lockableTrait.d.ts +1 -1
  415. package/traits/lockable/lockableTrait.d.ts.map +1 -1
  416. package/traits/lockable/lockableTrait.js +3 -3
  417. package/traits/lockable/lockableTrait.js.map +1 -1
  418. package/traits/moveable-scenery/index.d.ts +1 -1
  419. package/traits/moveable-scenery/index.d.ts.map +1 -1
  420. package/traits/moveable-scenery/index.js +1 -1
  421. package/traits/moveable-scenery/index.js.map +1 -1
  422. package/traits/moveable-scenery/moveableSceneryTrait.d.ts +1 -1
  423. package/traits/moveable-scenery/moveableSceneryTrait.d.ts.map +1 -1
  424. package/traits/moveable-scenery/moveableSceneryTrait.js +3 -3
  425. package/traits/moveable-scenery/moveableSceneryTrait.js.map +1 -1
  426. package/traits/npc/index.d.ts +1 -1
  427. package/traits/npc/index.d.ts.map +1 -1
  428. package/traits/npc/index.js +2 -2
  429. package/traits/npc/index.js.map +1 -1
  430. package/traits/npc/npcTrait.d.ts +6 -28
  431. package/traits/npc/npcTrait.d.ts.map +1 -1
  432. package/traits/npc/npcTrait.js +0 -38
  433. package/traits/npc/npcTrait.js.map +1 -1
  434. package/traits/obstructor-protocol.d.ts +3 -3
  435. package/traits/obstructor-protocol.d.ts.map +1 -1
  436. package/traits/open-inventory/index.d.ts +1 -1
  437. package/traits/open-inventory/index.d.ts.map +1 -1
  438. package/traits/open-inventory/index.js +2 -2
  439. package/traits/open-inventory/index.js.map +1 -1
  440. package/traits/open-inventory/openInventoryTrait.d.ts +1 -1
  441. package/traits/open-inventory/openInventoryTrait.d.ts.map +1 -1
  442. package/traits/open-inventory/openInventoryTrait.js +3 -3
  443. package/traits/open-inventory/openInventoryTrait.js.map +1 -1
  444. package/traits/openable/index.d.ts +2 -2
  445. package/traits/openable/index.d.ts.map +1 -1
  446. package/traits/openable/index.js +2 -2
  447. package/traits/openable/index.js.map +1 -1
  448. package/traits/openable/openableBehavior.d.ts +12 -2
  449. package/traits/openable/openableBehavior.d.ts.map +1 -1
  450. package/traits/openable/openableBehavior.js +32 -11
  451. package/traits/openable/openableBehavior.js.map +1 -1
  452. package/traits/openable/openableTrait.d.ts +8 -1
  453. package/traits/openable/openableTrait.d.ts.map +1 -1
  454. package/traits/openable/openableTrait.js +7 -3
  455. package/traits/openable/openableTrait.js.map +1 -1
  456. package/traits/pullable/index.d.ts +1 -1
  457. package/traits/pullable/index.d.ts.map +1 -1
  458. package/traits/pullable/index.js +1 -1
  459. package/traits/pullable/index.js.map +1 -1
  460. package/traits/pullable/pullableTrait.d.ts +1 -1
  461. package/traits/pullable/pullableTrait.d.ts.map +1 -1
  462. package/traits/pullable/pullableTrait.js +3 -3
  463. package/traits/pullable/pullableTrait.js.map +1 -1
  464. package/traits/pushable/index.d.ts +1 -1
  465. package/traits/pushable/index.d.ts.map +1 -1
  466. package/traits/pushable/index.js +1 -1
  467. package/traits/pushable/index.js.map +1 -1
  468. package/traits/pushable/pushableTrait.d.ts +1 -1
  469. package/traits/pushable/pushableTrait.d.ts.map +1 -1
  470. package/traits/pushable/pushableTrait.js +3 -3
  471. package/traits/pushable/pushableTrait.js.map +1 -1
  472. package/traits/readable/index.d.ts +2 -2
  473. package/traits/readable/index.d.ts.map +1 -1
  474. package/traits/readable/index.js +4 -4
  475. package/traits/readable/index.js.map +1 -1
  476. package/traits/readable/readableBehavior.d.ts +1 -1
  477. package/traits/readable/readableBehavior.d.ts.map +1 -1
  478. package/traits/readable/readableBehavior.js +10 -10
  479. package/traits/readable/readableBehavior.js.map +1 -1
  480. package/traits/readable/readableTrait.d.ts +1 -1
  481. package/traits/readable/readableTrait.d.ts.map +1 -1
  482. package/traits/readable/readableTrait.js +3 -3
  483. package/traits/readable/readableTrait.js.map +1 -1
  484. package/traits/region/index.d.ts +1 -1
  485. package/traits/region/index.d.ts.map +1 -1
  486. package/traits/region/index.js +2 -2
  487. package/traits/region/index.js.map +1 -1
  488. package/traits/region/regionTrait.d.ts +1 -1
  489. package/traits/region/regionTrait.d.ts.map +1 -1
  490. package/traits/region/regionTrait.js +3 -3
  491. package/traits/region/regionTrait.js.map +1 -1
  492. package/traits/room/index.d.ts +2 -2
  493. package/traits/room/index.d.ts.map +1 -1
  494. package/traits/room/index.js +4 -4
  495. package/traits/room/index.js.map +1 -1
  496. package/traits/room/roomBehavior.d.ts +4 -4
  497. package/traits/room/roomBehavior.d.ts.map +1 -1
  498. package/traits/room/roomBehavior.js +25 -25
  499. package/traits/room/roomBehavior.js.map +1 -1
  500. package/traits/room/roomTrait.d.ts +10 -5
  501. package/traits/room/roomTrait.d.ts.map +1 -1
  502. package/traits/room/roomTrait.js +5 -5
  503. package/traits/room/roomTrait.js.map +1 -1
  504. package/traits/scene/index.d.ts +1 -1
  505. package/traits/scene/index.d.ts.map +1 -1
  506. package/traits/scene/index.js +2 -2
  507. package/traits/scene/index.js.map +1 -1
  508. package/traits/scene/sceneTrait.d.ts +1 -1
  509. package/traits/scene/sceneTrait.d.ts.map +1 -1
  510. package/traits/scene/sceneTrait.js +3 -3
  511. package/traits/scene/sceneTrait.js.map +1 -1
  512. package/traits/scenery/index.d.ts +2 -2
  513. package/traits/scenery/index.d.ts.map +1 -1
  514. package/traits/scenery/index.js +4 -4
  515. package/traits/scenery/index.js.map +1 -1
  516. package/traits/scenery/sceneryBehavior.d.ts +1 -1
  517. package/traits/scenery/sceneryBehavior.d.ts.map +1 -1
  518. package/traits/scenery/sceneryBehavior.js +5 -5
  519. package/traits/scenery/sceneryBehavior.js.map +1 -1
  520. package/traits/scenery/sceneryTrait.d.ts +1 -1
  521. package/traits/scenery/sceneryTrait.d.ts.map +1 -1
  522. package/traits/scenery/sceneryTrait.js +3 -3
  523. package/traits/scenery/sceneryTrait.js.map +1 -1
  524. package/traits/story-info/index.d.ts +1 -1
  525. package/traits/story-info/index.d.ts.map +1 -1
  526. package/traits/story-info/index.js +2 -2
  527. package/traits/story-info/index.js.map +1 -1
  528. package/traits/story-info/storyInfoTrait.d.ts +1 -1
  529. package/traits/story-info/storyInfoTrait.d.ts.map +1 -1
  530. package/traits/supporter/index.d.ts +2 -2
  531. package/traits/supporter/index.d.ts.map +1 -1
  532. package/traits/supporter/index.js +4 -4
  533. package/traits/supporter/index.js.map +1 -1
  534. package/traits/supporter/supporterBehavior.d.ts +3 -3
  535. package/traits/supporter/supporterBehavior.d.ts.map +1 -1
  536. package/traits/supporter/supporterBehavior.js +15 -15
  537. package/traits/supporter/supporterBehavior.js.map +1 -1
  538. package/traits/supporter/supporterTrait.d.ts +1 -1
  539. package/traits/supporter/supporterTrait.d.ts.map +1 -1
  540. package/traits/supporter/supporterTrait.js +3 -3
  541. package/traits/supporter/supporterTrait.js.map +1 -1
  542. package/traits/switchable/index.d.ts +2 -2
  543. package/traits/switchable/index.d.ts.map +1 -1
  544. package/traits/switchable/index.js +2 -2
  545. package/traits/switchable/index.js.map +1 -1
  546. package/traits/switchable/switchableBehavior.d.ts +2 -2
  547. package/traits/switchable/switchableBehavior.d.ts.map +1 -1
  548. package/traits/switchable/switchableBehavior.js +18 -18
  549. package/traits/switchable/switchableBehavior.js.map +1 -1
  550. package/traits/switchable/switchableTrait.d.ts +1 -1
  551. package/traits/switchable/switchableTrait.d.ts.map +1 -1
  552. package/traits/switchable/switchableTrait.js +3 -3
  553. package/traits/switchable/switchableTrait.js.map +1 -1
  554. package/traits/trait-types.d.ts +4 -1
  555. package/traits/trait-types.d.ts.map +1 -1
  556. package/traits/trait-types.js +12 -2
  557. package/traits/trait-types.js.map +1 -1
  558. package/traits/trait.d.ts +1 -1
  559. package/traits/trait.d.ts.map +1 -1
  560. package/traits/vehicle/index.d.ts +2 -2
  561. package/traits/vehicle/index.d.ts.map +1 -1
  562. package/traits/vehicle/index.js +2 -2
  563. package/traits/vehicle/index.js.map +1 -1
  564. package/traits/vehicle/vehicleBehavior.d.ts +2 -2
  565. package/traits/vehicle/vehicleBehavior.d.ts.map +1 -1
  566. package/traits/vehicle/vehicleBehavior.js +7 -7
  567. package/traits/vehicle/vehicleBehavior.js.map +1 -1
  568. package/traits/vehicle/vehicleTrait.d.ts +1 -1
  569. package/traits/vehicle/vehicleTrait.d.ts.map +1 -1
  570. package/traits/vehicle/vehicleTrait.js +4 -4
  571. package/traits/vehicle/vehicleTrait.js.map +1 -1
  572. package/traits/weapon/index.d.ts +2 -2
  573. package/traits/weapon/index.d.ts.map +1 -1
  574. package/traits/weapon/index.js +4 -4
  575. package/traits/weapon/index.js.map +1 -1
  576. package/traits/weapon/weaponBehavior.d.ts +11 -4
  577. package/traits/weapon/weaponBehavior.d.ts.map +1 -1
  578. package/traits/weapon/weaponBehavior.js +24 -19
  579. package/traits/weapon/weaponBehavior.js.map +1 -1
  580. package/traits/weapon/weaponTrait.d.ts +1 -1
  581. package/traits/weapon/weaponTrait.d.ts.map +1 -1
  582. package/traits/wearable/index.d.ts +2 -2
  583. package/traits/wearable/index.d.ts.map +1 -1
  584. package/traits/wearable/index.js +2 -2
  585. package/traits/wearable/index.js.map +1 -1
  586. package/traits/wearable/wearableBehavior.d.ts +1 -1
  587. package/traits/wearable/wearableBehavior.d.ts.map +1 -1
  588. package/traits/wearable/wearableBehavior.js +11 -11
  589. package/traits/wearable/wearableBehavior.js.map +1 -1
  590. package/traits/wearable/wearableTrait.d.ts +1 -1
  591. package/traits/wearable/wearableTrait.d.ts.map +1 -1
  592. package/traits/wearable/wearableTrait.js +3 -3
  593. package/traits/wearable/wearableTrait.js.map +1 -1
  594. package/world/AuthorModel.d.ts +23 -17
  595. package/world/AuthorModel.d.ts.map +1 -1
  596. package/world/AuthorModel.js +15 -4
  597. package/world/AuthorModel.js.map +1 -1
  598. package/world/SharedDataStore.d.ts +2 -2
  599. package/world/SharedDataStore.d.ts.map +1 -1
  600. package/world/SharedDataStore.js +2 -2
  601. package/world/SharedDataStore.js.map +1 -1
  602. package/world/VisibilityBehavior.d.ts +60 -4
  603. package/world/VisibilityBehavior.d.ts.map +1 -1
  604. package/world/VisibilityBehavior.js +193 -101
  605. package/world/VisibilityBehavior.js.map +1 -1
  606. package/world/WorldEventSystem.d.ts +1 -1
  607. package/world/WorldEventSystem.d.ts.map +1 -1
  608. package/world/WorldModel.d.ts +65 -18
  609. package/world/WorldModel.d.ts.map +1 -1
  610. package/world/WorldModel.js +164 -114
  611. package/world/WorldModel.js.map +1 -1
  612. package/world/WorldSerializer.d.ts +4 -4
  613. package/world/WorldSerializer.d.ts.map +1 -1
  614. package/world/WorldSerializer.js +2 -2
  615. package/world/WorldSerializer.js.map +1 -1
  616. package/world/default-trait-registry.d.ts +1 -1
  617. package/world/default-trait-registry.d.ts.map +1 -1
  618. package/world/default-trait-registry.js +3 -3
  619. package/world/default-trait-registry.js.map +1 -1
  620. package/world/index.d.ts +9 -9
  621. package/world/index.d.ts.map +1 -1
  622. package/world/index.js +17 -16
  623. package/world/index.js.map +1 -1
  624. package/world/wall-creation.d.ts +2 -2
  625. package/world/wall-creation.d.ts.map +1 -1
  626. package/world/wall-creation.js +6 -6
  627. package/world/wall-creation.js.map +1 -1
  628. package/world/wall-validation.d.ts +2 -2
  629. package/world/wall-validation.d.ts.map +1 -1
  630. package/world/wall-validation.js +3 -3
  631. package/world/wall-validation.js.map +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/cuttable/index.ts"],"names":[],"mappings":"AAEA,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC"}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ // packages/world-model/src/traits/cuttable/index.ts
3
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k;
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = { enumerable: true, get: function() { return m[k]; } };
8
+ }
9
+ Object.defineProperty(o, k2, desc);
10
+ }) : (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ o[k2] = m[k];
13
+ }));
14
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
16
+ };
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ __exportStar(require("./cuttableTrait.js"), exports);
19
+ __exportStar(require("./cuttableBehavior.js"), exports);
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/cuttable/index.ts"],"names":[],"mappings":";AAAA,oDAAoD;;;;;;;;;;;;;;;;AAEpD,qDAAmC;AACnC,wDAAsC"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * Behavior for the deadly-room trigger shape (ADR-224).
3
+ *
4
+ * Computes the lethal/safe verdict for a parsed verb against a {@link DeadlyRoomTrait}.
5
+ * Consumers (the deadly-room command transformer) call `checkVerb` rather than
6
+ * reading the trait directly, so the model survives `loadJSON()`.
7
+ *
8
+ * Public interface: `checkVerb`, `isSafeVerb`.
9
+ * Owner context: `@sharpee/world-model` — the deadly-room trigger shape (ADR-224).
10
+ */
11
+ import { SeededRandom } from '@sharpee/core';
12
+ import { Behavior } from '../../behaviors/behavior.js';
13
+ import { DeadlyRoomTrait } from './deadlyRoomTrait.js';
14
+ /** Verdict returned by {@link DeadlyRoomBehavior.checkVerb}. */
15
+ export interface DeadlyRoomVerdict {
16
+ /** Whether this verb kills the player in this room. */
17
+ lethal: boolean;
18
+ /** Cause to record on the death (from the trait). */
19
+ cause: string;
20
+ /** Optional death-text message id (from the trait). */
21
+ messageId?: string;
22
+ }
23
+ export declare class DeadlyRoomBehavior extends Behavior {
24
+ static requiredTraits: "deadlyRoom"[];
25
+ /**
26
+ * Whether `verb` is in the room's safe allowlist. Matches the resolved action id
27
+ * exactly (case-insensitive) or by its final dotted segment, so both an action id
28
+ * (`'if.action.looking'`) and the bare participle (`'looking'`) count as safe.
29
+ * @param t the deadly-room trait
30
+ * @param verb the command's resolved action id
31
+ */
32
+ static isSafeVerb(t: DeadlyRoomTrait, verb: string): boolean;
33
+ /**
34
+ * The lethal/safe verdict for a verb in this room.
35
+ *
36
+ * A safe verb is never lethal. Otherwise the verb is lethal outright when the
37
+ * trait has no `chance`, or lethal with probability `chance` (rolled against the
38
+ * seeded `rng`) when it does. If `chance` is set but no `rng` is supplied, the
39
+ * verb is treated as lethal (fail-deadly) — production always supplies the
40
+ * engine's seeded RNG; a missing RNG is a wiring error, not a survival chance.
41
+ *
42
+ * @param t the deadly-room trait
43
+ * @param verb the command's resolved action id
44
+ * @param rng the engine's seeded RNG (required only for the `chance` variant)
45
+ */
46
+ static checkVerb(t: DeadlyRoomTrait, verb: string, rng?: SeededRandom): DeadlyRoomVerdict;
47
+ }
48
+ //# sourceMappingURL=deadlyRoomBehavior.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deadlyRoomBehavior.d.ts","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/deadly-room/deadlyRoomBehavior.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAEvD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,gEAAgE;AAChE,MAAM,WAAW,iBAAiB;IAChC,uDAAuD;IACvD,MAAM,EAAE,OAAO,CAAC;IAChB,qDAAqD;IACrD,KAAK,EAAE,MAAM,CAAC;IACd,uDAAuD;IACvD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,kBAAmB,SAAQ,QAAQ;IAC9C,MAAM,CAAC,cAAc,iBAA2B;IAEhD;;;;;;OAMG;IACH,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO;IAS5D;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,YAAY,GAAG,iBAAiB;CAY1F"}
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ /**
3
+ * Behavior for the deadly-room trigger shape (ADR-224).
4
+ *
5
+ * Computes the lethal/safe verdict for a parsed verb against a {@link DeadlyRoomTrait}.
6
+ * Consumers (the deadly-room command transformer) call `checkVerb` rather than
7
+ * reading the trait directly, so the model survives `loadJSON()`.
8
+ *
9
+ * Public interface: `checkVerb`, `isSafeVerb`.
10
+ * Owner context: `@sharpee/world-model` — the deadly-room trigger shape (ADR-224).
11
+ */
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.DeadlyRoomBehavior = void 0;
14
+ const behavior_js_1 = require("../../behaviors/behavior.js");
15
+ const trait_types_js_1 = require("../trait-types.js");
16
+ class DeadlyRoomBehavior extends behavior_js_1.Behavior {
17
+ static requiredTraits = [trait_types_js_1.TraitType.DEADLY_ROOM];
18
+ /**
19
+ * Whether `verb` is in the room's safe allowlist. Matches the resolved action id
20
+ * exactly (case-insensitive) or by its final dotted segment, so both an action id
21
+ * (`'if.action.looking'`) and the bare participle (`'looking'`) count as safe.
22
+ * @param t the deadly-room trait
23
+ * @param verb the command's resolved action id
24
+ */
25
+ static isSafeVerb(t, verb) {
26
+ const v = (verb ?? '').toLowerCase();
27
+ const seg = v.split('.').pop() ?? v;
28
+ return t.safeVerbs.some((s) => {
29
+ const safe = s.toLowerCase();
30
+ return v === safe || seg === safe;
31
+ });
32
+ }
33
+ /**
34
+ * The lethal/safe verdict for a verb in this room.
35
+ *
36
+ * A safe verb is never lethal. Otherwise the verb is lethal outright when the
37
+ * trait has no `chance`, or lethal with probability `chance` (rolled against the
38
+ * seeded `rng`) when it does. If `chance` is set but no `rng` is supplied, the
39
+ * verb is treated as lethal (fail-deadly) — production always supplies the
40
+ * engine's seeded RNG; a missing RNG is a wiring error, not a survival chance.
41
+ *
42
+ * @param t the deadly-room trait
43
+ * @param verb the command's resolved action id
44
+ * @param rng the engine's seeded RNG (required only for the `chance` variant)
45
+ */
46
+ static checkVerb(t, verb, rng) {
47
+ const base = { cause: t.cause, messageId: t.messageId };
48
+ if (DeadlyRoomBehavior.isSafeVerb(t, verb)) {
49
+ return { lethal: false, ...base };
50
+ }
51
+ if (t.chance === undefined) {
52
+ return { lethal: true, ...base };
53
+ }
54
+ const lethal = rng ? rng.chance(t.chance) : true;
55
+ return { lethal, ...base };
56
+ }
57
+ }
58
+ exports.DeadlyRoomBehavior = DeadlyRoomBehavior;
59
+ //# sourceMappingURL=deadlyRoomBehavior.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deadlyRoomBehavior.js","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/deadly-room/deadlyRoomBehavior.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;AAGH,6DAAuD;AACvD,sDAA8C;AAa9C,MAAa,kBAAmB,SAAQ,sBAAQ;IAC9C,MAAM,CAAC,cAAc,GAAG,CAAC,0BAAS,CAAC,WAAW,CAAC,CAAC;IAEhD;;;;;;OAMG;IACH,MAAM,CAAC,UAAU,CAAC,CAAkB,EAAE,IAAY;QAChD,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;QACrC,MAAM,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACpC,OAAO,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;YAC5B,MAAM,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7B,OAAO,CAAC,KAAK,IAAI,IAAI,GAAG,KAAK,IAAI,CAAC;QACpC,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,SAAS,CAAC,CAAkB,EAAE,IAAY,EAAE,GAAkB;QACnE,MAAM,IAAI,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC;QAExD,IAAI,kBAAkB,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC;YAC3C,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,CAAC;QACpC,CAAC;QACD,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC3B,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,CAAC;QACnC,CAAC;QACD,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACjD,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,CAAC;IAC7B,CAAC;;AA3CH,gDA4CC"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Deadly Room Trait (ADR-224 — the reusable deadly-room trigger shape).
3
+ *
4
+ * Marks a room where verbs outside a safe allowlist kill the player: MDL's
5
+ * Aragain Falls ("every verb but LOOK is fatal here"). An optional `chance` turns
6
+ * the same shape into a probabilistic hazard (the grue: a non-safe verb dies only
7
+ * `chance` of the time), rolled against the engine's seeded RNG.
8
+ *
9
+ * Data only — no methods. The lethal/safe verdict lives in {@link DeadlyRoomBehavior}
10
+ * (a getter would not survive `loadJSON()`). The trait carries no logic and no RNG;
11
+ * the deadly-room command transformer supplies the seeded RNG at check time.
12
+ *
13
+ * Public interface: read the verdict via `DeadlyRoomBehavior.checkVerb`.
14
+ * Owner context: `@sharpee/world-model` — the deadly-room trigger shape (ADR-224).
15
+ */
16
+ import { ITrait } from '../trait.js';
17
+ /**
18
+ * Constructor/serialization data for {@link DeadlyRoomTrait}.
19
+ */
20
+ export interface IDeadlyRoomData {
21
+ /** Cause recorded on the death (e.g. 'fall', 'grue'). Defaults to `'hazard'`. */
22
+ cause?: string;
23
+ /** Optional death-text message id (rendered by the language layer). */
24
+ messageId?: string;
25
+ /**
26
+ * Verbs that are safe in this room — matched against a command's resolved
27
+ * action id, tolerant of the bare participle (`'looking'` matches
28
+ * `'if.action.looking'`). Defaults to `['looking', 'examining']` (LOOK/EXAMINE),
29
+ * the MDL falls allowlist.
30
+ */
31
+ safeVerbs?: string[];
32
+ /**
33
+ * Probability (0–1) that a non-safe verb is lethal. When omitted, every non-safe
34
+ * verb is lethal (the falls). When set, the hazard is probabilistic (the grue)
35
+ * and rolled against the engine's seeded RNG — never `Math.random()`.
36
+ */
37
+ chance?: number;
38
+ }
39
+ /**
40
+ * The deadly-room trigger trait. Data-only; see file header.
41
+ */
42
+ export declare class DeadlyRoomTrait implements ITrait, IDeadlyRoomData {
43
+ static readonly type: "deadlyRoom";
44
+ readonly type: "deadlyRoom";
45
+ cause: string;
46
+ messageId?: string;
47
+ safeVerbs: string[];
48
+ chance?: number;
49
+ constructor(data?: IDeadlyRoomData);
50
+ }
51
+ //# sourceMappingURL=deadlyRoomTrait.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deadlyRoomTrait.d.ts","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/deadly-room/deadlyRoomTrait.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,iFAAiF;IACjF,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,uEAAuE;IACvE,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IAErB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,qBAAa,eAAgB,YAAW,MAAM,EAAE,eAAe;IAC7D,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAG,YAAY,CAAU;IAC7C,QAAQ,CAAC,IAAI,EAAG,YAAY,CAAU;IAEtC,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;gBAEJ,IAAI,GAAE,eAAoB;CAMvC"}
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ /**
3
+ * Deadly Room Trait (ADR-224 — the reusable deadly-room trigger shape).
4
+ *
5
+ * Marks a room where verbs outside a safe allowlist kill the player: MDL's
6
+ * Aragain Falls ("every verb but LOOK is fatal here"). An optional `chance` turns
7
+ * the same shape into a probabilistic hazard (the grue: a non-safe verb dies only
8
+ * `chance` of the time), rolled against the engine's seeded RNG.
9
+ *
10
+ * Data only — no methods. The lethal/safe verdict lives in {@link DeadlyRoomBehavior}
11
+ * (a getter would not survive `loadJSON()`). The trait carries no logic and no RNG;
12
+ * the deadly-room command transformer supplies the seeded RNG at check time.
13
+ *
14
+ * Public interface: read the verdict via `DeadlyRoomBehavior.checkVerb`.
15
+ * Owner context: `@sharpee/world-model` — the deadly-room trigger shape (ADR-224).
16
+ */
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.DeadlyRoomTrait = void 0;
19
+ /**
20
+ * The deadly-room trigger trait. Data-only; see file header.
21
+ */
22
+ class DeadlyRoomTrait {
23
+ static type = 'deadlyRoom';
24
+ type = 'deadlyRoom';
25
+ cause;
26
+ messageId;
27
+ safeVerbs;
28
+ chance;
29
+ constructor(data = {}) {
30
+ this.cause = data.cause ?? 'hazard';
31
+ this.messageId = data.messageId;
32
+ this.safeVerbs = data.safeVerbs ?? ['looking', 'examining'];
33
+ this.chance = data.chance;
34
+ }
35
+ }
36
+ exports.DeadlyRoomTrait = DeadlyRoomTrait;
37
+ //# sourceMappingURL=deadlyRoomTrait.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deadlyRoomTrait.js","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/deadly-room/deadlyRoomTrait.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AA8BH;;GAEG;AACH,MAAa,eAAe;IAC1B,MAAM,CAAU,IAAI,GAAG,YAAqB,CAAC;IACpC,IAAI,GAAG,YAAqB,CAAC;IAEtC,KAAK,CAAS;IACd,SAAS,CAAU;IACnB,SAAS,CAAW;IACpB,MAAM,CAAU;IAEhB,YAAY,OAAwB,EAAE;QACpC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,QAAQ,CAAC;QACpC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAChC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QAC5D,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IAC5B,CAAC;;AAdH,0CAeC"}
@@ -0,0 +1,3 @@
1
+ export { DeadlyRoomTrait, IDeadlyRoomData } from './deadlyRoomTrait.js';
2
+ export { DeadlyRoomBehavior, DeadlyRoomVerdict } from './deadlyRoomBehavior.js';
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/deadly-room/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC"}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DeadlyRoomBehavior = exports.DeadlyRoomTrait = void 0;
4
+ var deadlyRoomTrait_js_1 = require("./deadlyRoomTrait.js");
5
+ Object.defineProperty(exports, "DeadlyRoomTrait", { enumerable: true, get: function () { return deadlyRoomTrait_js_1.DeadlyRoomTrait; } });
6
+ var deadlyRoomBehavior_js_1 = require("./deadlyRoomBehavior.js");
7
+ Object.defineProperty(exports, "DeadlyRoomBehavior", { enumerable: true, get: function () { return deadlyRoomBehavior_js_1.DeadlyRoomBehavior; } });
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/deadly-room/index.ts"],"names":[],"mappings":";;;AAAA,2DAAwE;AAA/D,qHAAA,eAAe,OAAA;AACxB,iEAAgF;AAAvE,2HAAA,kBAAkB,OAAA"}
@@ -1,9 +1,9 @@
1
1
  /**
2
2
  * Behavior for destructible entities
3
3
  */
4
- import { Behavior } from '../../behaviors/behavior';
5
- import { IFEntity } from '../../entities/if-entity';
6
- import { WorldModel } from '../../world/WorldModel';
4
+ import { Behavior } from '../../behaviors/behavior.js';
5
+ import { IFEntity } from '../../entities/if-entity.js';
6
+ import { WorldModel } from '../../world/WorldModel.js';
7
7
  import { EntityId } from '@sharpee/core';
8
8
  /**
9
9
  * Result of damaging a destructible entity
@@ -1 +1 @@
1
- {"version":3,"file":"destructibleBehavior.d.ts","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/destructible/destructibleBehavior.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAGpD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;IACnB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,aAAa,CAAC,EAAE,QAAQ,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;GAKG;AACH,qBAAa,oBAAqB,SAAQ,QAAQ;IAChD,MAAM,CAAC,cAAc,mBAA4B;IAEjD;;OAEG;IACH,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO;IAgBhE;;;;;;;OAOG;IACH,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,EAAE,UAAU,GAAG,aAAa;IAoFjH;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,QAAQ,GAAG,OAAO;IAQ7C;;OAEG;IACH,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,GAAG,MAAM;IAK7C;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,GAAG,OAAO;CAQzC"}
1
+ {"version":3,"file":"destructibleBehavior.d.ts","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/destructible/destructibleBehavior.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAGvD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;IACnB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,aAAa,CAAC,EAAE,QAAQ,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;GAKG;AACH,qBAAa,oBAAqB,SAAQ,QAAQ;IAChD,MAAM,CAAC,cAAc,mBAA4B;IAEjD;;OAEG;IACH,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO;IAgBhE;;;;;;;OAOG;IACH,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,EAAE,UAAU,GAAG,aAAa;IAoFjH;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,QAAQ,GAAG,OAAO;IAQ7C;;OAEG;IACH,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,GAAG,MAAM;IAK7C;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,GAAG,OAAO;CAQzC"}
@@ -4,24 +4,24 @@
4
4
  */
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.DestructibleBehavior = void 0;
7
- const behavior_1 = require("../../behaviors/behavior");
8
- const trait_types_1 = require("../trait-types");
7
+ const behavior_js_1 = require("../../behaviors/behavior.js");
8
+ const trait_types_js_1 = require("../trait-types.js");
9
9
  /**
10
10
  * Behavior for destructible entities.
11
11
  *
12
12
  * Handles multi-hit destruction with hit points and armor.
13
13
  * This is a world-aware behavior because it may transform entities or reveal exits.
14
14
  */
15
- class DestructibleBehavior extends behavior_1.Behavior {
16
- static requiredTraits = [trait_types_1.TraitType.DESTRUCTIBLE];
15
+ class DestructibleBehavior extends behavior_js_1.Behavior {
16
+ static requiredTraits = [trait_types_js_1.TraitType.DESTRUCTIBLE];
17
17
  /**
18
18
  * Check if an entity can be damaged
19
19
  */
20
20
  static canDamage(entity, weaponType) {
21
- if (!entity.has(trait_types_1.TraitType.DESTRUCTIBLE)) {
21
+ if (!entity.has(trait_types_js_1.TraitType.DESTRUCTIBLE)) {
22
22
  return false;
23
23
  }
24
- const destructible = entity.get(trait_types_1.TraitType.DESTRUCTIBLE);
24
+ const destructible = entity.get(trait_types_js_1.TraitType.DESTRUCTIBLE);
25
25
  if (destructible.invulnerable)
26
26
  return false;
27
27
  if (destructible.hitPoints <= 0)
@@ -42,7 +42,7 @@ class DestructibleBehavior extends behavior_1.Behavior {
42
42
  * @returns Result describing what happened
43
43
  */
44
44
  static damage(entity, damage, weaponType, world) {
45
- if (!entity.has(trait_types_1.TraitType.DESTRUCTIBLE)) {
45
+ if (!entity.has(trait_types_js_1.TraitType.DESTRUCTIBLE)) {
46
46
  return {
47
47
  success: false,
48
48
  damage: 0,
@@ -51,7 +51,7 @@ class DestructibleBehavior extends behavior_1.Behavior {
51
51
  message: 'Entity is not destructible'
52
52
  };
53
53
  }
54
- const destructible = entity.get(trait_types_1.TraitType.DESTRUCTIBLE);
54
+ const destructible = entity.get(trait_types_js_1.TraitType.DESTRUCTIBLE);
55
55
  // Check if can be damaged
56
56
  if (destructible.invulnerable) {
57
57
  return {
@@ -117,24 +117,24 @@ class DestructibleBehavior extends behavior_1.Behavior {
117
117
  * Check if entity is destroyed
118
118
  */
119
119
  static isDestroyed(entity) {
120
- if (!entity.has(trait_types_1.TraitType.DESTRUCTIBLE)) {
120
+ if (!entity.has(trait_types_js_1.TraitType.DESTRUCTIBLE)) {
121
121
  return false;
122
122
  }
123
- const destructible = entity.get(trait_types_1.TraitType.DESTRUCTIBLE);
123
+ const destructible = entity.get(trait_types_js_1.TraitType.DESTRUCTIBLE);
124
124
  return destructible.hitPoints <= 0;
125
125
  }
126
126
  /**
127
127
  * Get remaining hit points
128
128
  */
129
129
  static getHitPoints(entity) {
130
- const destructible = DestructibleBehavior.require(entity, trait_types_1.TraitType.DESTRUCTIBLE);
130
+ const destructible = DestructibleBehavior.require(entity, trait_types_js_1.TraitType.DESTRUCTIBLE);
131
131
  return destructible.hitPoints;
132
132
  }
133
133
  /**
134
134
  * Repair entity (restore hit points)
135
135
  */
136
136
  static repair(entity) {
137
- const destructible = DestructibleBehavior.require(entity, trait_types_1.TraitType.DESTRUCTIBLE);
137
+ const destructible = DestructibleBehavior.require(entity, trait_types_js_1.TraitType.DESTRUCTIBLE);
138
138
  if (destructible.hitPoints >= destructible.maxHitPoints)
139
139
  return false;
140
140
  destructible.hitPoints = destructible.maxHitPoints;
@@ -1 +1 @@
1
- {"version":3,"file":"destructibleBehavior.js","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/destructible/destructibleBehavior.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"destructibleBehavior.js","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/destructible/destructibleBehavior.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Destructible trait for entities that require multiple hits or specific tools to destroy
3
3
  */
4
- import { ITrait } from '../trait';
4
+ import { ITrait } from '../trait.js';
5
5
  export interface IDestructibleData {
6
6
  /** Current hit points */
7
7
  hitPoints?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"destructibleTrait.d.ts","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/destructible/destructibleTrait.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAGlC,MAAM,WAAW,iBAAiB;IAChC,yBAAyB;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,yBAAyB;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,+CAA+C;IAC/C,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB,6DAA6D;IAC7D,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,mDAAmD;IACnD,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,6DAA6D;IAC7D,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,2EAA2E;IAC3E,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,2DAA2D;IAC3D,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,qDAAqD;IACrD,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB,sCAAsC;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;GAMG;AACH,qBAAa,iBAAkB,YAAW,MAAM,EAAE,iBAAiB;IACjE,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAG,cAAc,CAAU;IAC/C,QAAQ,CAAC,IAAI,EAAG,cAAc,CAAU;IAGxC,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,OAAO,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,OAAO,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;gBAEF,IAAI,GAAE,iBAAsB;CAazC"}
1
+ {"version":3,"file":"destructibleTrait.d.ts","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/destructible/destructibleTrait.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAGrC,MAAM,WAAW,iBAAiB;IAChC,yBAAyB;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,yBAAyB;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,+CAA+C;IAC/C,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB,6DAA6D;IAC7D,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,mDAAmD;IACnD,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,6DAA6D;IAC7D,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,2EAA2E;IAC3E,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,2DAA2D;IAC3D,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,qDAAqD;IACrD,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB,sCAAsC;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;GAMG;AACH,qBAAa,iBAAkB,YAAW,MAAM,EAAE,iBAAiB;IACjE,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAG,cAAc,CAAU;IAC/C,QAAQ,CAAC,IAAI,EAAG,cAAc,CAAU;IAGxC,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,OAAO,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,OAAO,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;gBAEF,IAAI,GAAE,iBAAsB;CAazC"}
@@ -1,3 +1,3 @@
1
- export { DestructibleTrait, IDestructibleData } from './destructibleTrait';
2
- export { DestructibleBehavior, IDamageResult } from './destructibleBehavior';
1
+ export { DestructibleTrait, IDestructibleData } from './destructibleTrait.js';
2
+ export { DestructibleBehavior, IDamageResult } from './destructibleBehavior.js';
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/destructible/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC3E,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/destructible/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC9E,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC"}
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.DestructibleBehavior = exports.DestructibleTrait = void 0;
4
- var destructibleTrait_1 = require("./destructibleTrait");
5
- Object.defineProperty(exports, "DestructibleTrait", { enumerable: true, get: function () { return destructibleTrait_1.DestructibleTrait; } });
6
- var destructibleBehavior_1 = require("./destructibleBehavior");
7
- Object.defineProperty(exports, "DestructibleBehavior", { enumerable: true, get: function () { return destructibleBehavior_1.DestructibleBehavior; } });
4
+ var destructibleTrait_js_1 = require("./destructibleTrait.js");
5
+ Object.defineProperty(exports, "DestructibleTrait", { enumerable: true, get: function () { return destructibleTrait_js_1.DestructibleTrait; } });
6
+ var destructibleBehavior_js_1 = require("./destructibleBehavior.js");
7
+ Object.defineProperty(exports, "DestructibleBehavior", { enumerable: true, get: function () { return destructibleBehavior_js_1.DestructibleBehavior; } });
8
8
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/destructible/index.ts"],"names":[],"mappings":";;;AAAA,yDAA2E;AAAlE,sHAAA,iBAAiB,OAAA;AAC1B,+DAA6E;AAApE,4HAAA,oBAAoB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/destructible/index.ts"],"names":[],"mappings":";;;AAAA,+DAA8E;AAArE,yHAAA,iBAAiB,OAAA;AAC1B,qEAAgF;AAAvE,+HAAA,oBAAoB,OAAA"}
@@ -0,0 +1,23 @@
1
+ import { EntityId } from '@sharpee/core';
2
+ import { Behavior } from '../../behaviors/behavior.js';
3
+ import { IFEntity } from '../../entities/if-entity.js';
4
+ /**
5
+ * Behavior for diggable entities (ADR-230 Phase 6 (sketch ruling 6)).
6
+ *
7
+ * Pure predicates only — the digging action's validate() consults these;
8
+ * the cut mutation itself belongs to the entity's registered
9
+ * implementation, never here.
10
+ */
11
+ export declare class DiggableBehavior extends Behavior {
12
+ static requiredTraits: "diggable"[];
13
+ /**
14
+ * Check if this entity requires a tool to cut (mirrors
15
+ * LockableBehavior.requiresKey / OpenableBehavior.requiresTool)
16
+ */
17
+ static requiresTool(entity: IFEntity): boolean;
18
+ /**
19
+ * Check if a tool can cut this entity (mirrors LockableBehavior.canUnlockWith)
20
+ */
21
+ static canDigWith(entity: IFEntity, toolId: EntityId): boolean;
22
+ }
23
+ //# sourceMappingURL=diggableBehavior.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diggableBehavior.d.ts","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/diggable/diggableBehavior.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAIvD;;;;;;GAMG;AACH,qBAAa,gBAAiB,SAAQ,QAAQ;IAC5C,MAAM,CAAC,cAAc,eAAwB;IAE7C;;;OAGG;IACH,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,GAAG,OAAO;IAK9C;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,GAAG,OAAO;CAa/D"}
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ // packages/world-model/src/traits/diggable/diggableBehavior.ts
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.DiggableBehavior = void 0;
5
+ const behavior_js_1 = require("../../behaviors/behavior.js");
6
+ const trait_types_js_1 = require("../trait-types.js");
7
+ /**
8
+ * Behavior for diggable entities (ADR-230 Phase 6 (sketch ruling 6)).
9
+ *
10
+ * Pure predicates only — the digging action's validate() consults these;
11
+ * the cut mutation itself belongs to the entity's registered
12
+ * implementation, never here.
13
+ */
14
+ class DiggableBehavior extends behavior_js_1.Behavior {
15
+ static requiredTraits = [trait_types_js_1.TraitType.DIGGABLE];
16
+ /**
17
+ * Check if this entity requires a tool to cut (mirrors
18
+ * LockableBehavior.requiresKey / OpenableBehavior.requiresTool)
19
+ */
20
+ static requiresTool(entity) {
21
+ const diggable = DiggableBehavior.require(entity, trait_types_js_1.TraitType.DIGGABLE);
22
+ return !!(diggable.toolId || diggable.toolIds?.length);
23
+ }
24
+ /**
25
+ * Check if a tool can cut this entity (mirrors LockableBehavior.canUnlockWith)
26
+ */
27
+ static canDigWith(entity, toolId) {
28
+ const diggable = DiggableBehavior.require(entity, trait_types_js_1.TraitType.DIGGABLE);
29
+ if (diggable.toolId === toolId) {
30
+ return true;
31
+ }
32
+ if (diggable.toolIds && diggable.toolIds.includes(toolId)) {
33
+ return true;
34
+ }
35
+ return false;
36
+ }
37
+ }
38
+ exports.DiggableBehavior = DiggableBehavior;
39
+ //# sourceMappingURL=diggableBehavior.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diggableBehavior.js","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/diggable/diggableBehavior.ts"],"names":[],"mappings":";AAAA,+DAA+D;;;AAG/D,6DAAuD;AAEvD,sDAA8C;AAG9C;;;;;;GAMG;AACH,MAAa,gBAAiB,SAAQ,sBAAQ;IAC5C,MAAM,CAAC,cAAc,GAAG,CAAC,0BAAS,CAAC,QAAQ,CAAC,CAAC;IAE7C;;;OAGG;IACH,MAAM,CAAC,YAAY,CAAC,MAAgB;QAClC,MAAM,QAAQ,GAAG,gBAAgB,CAAC,OAAO,CAAgB,MAAM,EAAE,0BAAS,CAAC,QAAQ,CAAC,CAAC;QACrF,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACzD,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,MAAgB,EAAE,MAAgB;QAClD,MAAM,QAAQ,GAAG,gBAAgB,CAAC,OAAO,CAAgB,MAAM,EAAE,0BAAS,CAAC,QAAQ,CAAC,CAAC;QAErF,IAAI,QAAQ,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAC/B,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1D,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;;AA3BH,4CA4BC"}
@@ -0,0 +1,37 @@
1
+ import { EntityId } from '@sharpee/core';
2
+ import { ITrait } from '../trait.js';
3
+ /**
4
+ * Data for the diggable trait (ADR-230 Phase 6 (sketch ruling 6)).
5
+ *
6
+ * Tool fields mirror ILockableData's key config (PIN 2 shared shape with
7
+ * OpenableTrait's tool fields): a declared requirement makes the digging
8
+ * action refuse wrong/missing tools; no requirement means any explicit
9
+ * tool (or none) passes validation.
10
+ */
11
+ export interface IDiggableData {
12
+ /** Single tool entity required to dig this (mirrors ILockableData.keyId) */
13
+ toolId?: EntityId;
14
+ /** Multiple tool entities that can dig this (mirrors ILockableData.keyIds) */
15
+ toolIds?: EntityId[];
16
+ }
17
+ /**
18
+ * Diggable trait — marks an entity the digging action may target.
19
+ *
20
+ * The trait gates eligibility only. The dig OUTCOME is the entity's own
21
+ * registered implementation (ADR-090 capability behavior from TS, or a
22
+ * Chord `on digging it` interceptor) — the standard digging action never
23
+ * mutates state itself. An entity with this trait and no registered
24
+ * implementation is an authoring error (load-time in Chord; runtime
25
+ * safety-net refusal otherwise).
26
+ *
27
+ * This trait contains only data - eligibility/tool logic is in
28
+ * DiggableBehavior.
29
+ */
30
+ export declare class DiggableTrait implements ITrait, IDiggableData {
31
+ static readonly type: "diggable";
32
+ readonly type: "diggable";
33
+ toolId?: EntityId;
34
+ toolIds?: EntityId[];
35
+ constructor(data?: IDiggableData);
36
+ }
37
+ //# sourceMappingURL=diggableTrait.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diggableTrait.d.ts","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/diggable/diggableTrait.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAGrC;;;;;;;GAOG;AACH,MAAM,WAAW,aAAa;IAC5B,4EAA4E;IAC5E,MAAM,CAAC,EAAE,QAAQ,CAAC;IAElB,8EAA8E;IAC9E,OAAO,CAAC,EAAE,QAAQ,EAAE,CAAC;CACtB;AAED;;;;;;;;;;;;GAYG;AACH,qBAAa,aAAc,YAAW,MAAM,EAAE,aAAa;IACzD,MAAM,CAAC,QAAQ,CAAC,IAAI,aAAsB;IAC1C,QAAQ,CAAC,IAAI,aAAsB;IAEnC,MAAM,CAAC,EAAE,QAAQ,CAAC;IAClB,OAAO,CAAC,EAAE,QAAQ,EAAE,CAAC;gBAET,IAAI,GAAE,aAAkB;CAIrC"}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ // packages/world-model/src/traits/diggable/diggableTrait.ts
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.DiggableTrait = void 0;
5
+ const trait_types_js_1 = require("../trait-types.js");
6
+ /**
7
+ * Diggable trait — marks an entity the digging action may target.
8
+ *
9
+ * The trait gates eligibility only. The dig OUTCOME is the entity's own
10
+ * registered implementation (ADR-090 capability behavior from TS, or a
11
+ * Chord `on digging it` interceptor) — the standard digging action never
12
+ * mutates state itself. An entity with this trait and no registered
13
+ * implementation is an authoring error (load-time in Chord; runtime
14
+ * safety-net refusal otherwise).
15
+ *
16
+ * This trait contains only data - eligibility/tool logic is in
17
+ * DiggableBehavior.
18
+ */
19
+ class DiggableTrait {
20
+ static type = trait_types_js_1.TraitType.DIGGABLE;
21
+ type = trait_types_js_1.TraitType.DIGGABLE;
22
+ toolId;
23
+ toolIds;
24
+ constructor(data = {}) {
25
+ this.toolId = data.toolId;
26
+ this.toolIds = data.toolIds;
27
+ }
28
+ }
29
+ exports.DiggableTrait = DiggableTrait;
30
+ //# sourceMappingURL=diggableTrait.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diggableTrait.js","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/diggable/diggableTrait.ts"],"names":[],"mappings":";AAAA,4DAA4D;;;AAI5D,sDAA8C;AAkB9C;;;;;;;;;;;;GAYG;AACH,MAAa,aAAa;IACxB,MAAM,CAAU,IAAI,GAAG,0BAAS,CAAC,QAAQ,CAAC;IACjC,IAAI,GAAG,0BAAS,CAAC,QAAQ,CAAC;IAEnC,MAAM,CAAY;IAClB,OAAO,CAAc;IAErB,YAAY,OAAsB,EAAE;QAClC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IAC9B,CAAC;;AAVH,sCAWC"}
@@ -0,0 +1,3 @@
1
+ export * from './diggableTrait.js';
2
+ export * from './diggableBehavior.js';
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/diggable/index.ts"],"names":[],"mappings":"AAEA,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC"}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ // packages/world-model/src/traits/diggable/index.ts
3
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k;
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = { enumerable: true, get: function() { return m[k]; } };
8
+ }
9
+ Object.defineProperty(o, k2, desc);
10
+ }) : (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ o[k2] = m[k];
13
+ }));
14
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
16
+ };
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ __exportStar(require("./diggableTrait.js"), exports);
19
+ __exportStar(require("./diggableBehavior.js"), exports);
20
+ //# sourceMappingURL=index.js.map