@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
@@ -1,38 +1,43 @@
1
1
  "use strict";
2
- /**
3
- * Behavior for combatant entities
4
- */
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.CombatBehavior = void 0;
7
- const behavior_1 = require("../../behaviors/behavior");
8
- const trait_types_1 = require("../trait-types");
9
2
  /**
10
3
  * Behavior for combatant entities.
11
4
  *
12
- * Handles combat with health, armor, and death.
13
- * This is a world-aware behavior because it handles inventory dropping on death.
5
+ * Combat orchestration armor reduction, inventory-drop on death, combat messages —
6
+ * over the entity's combat *stats* (`CombatantTrait`). Health itself lives on the
7
+ * required {@link HealthTrait}; all health reads/writes route through
8
+ * {@link HealthBehavior} (ADR-226 / ADR-223 child A). A combatant is guaranteed a
9
+ * `HealthTrait` by the load-time AC-7 check.
10
+ *
11
+ * Public interface: `canAttack` / `attack` / `heal` / `resurrect` / `isAlive` /
12
+ * `getHealth` / `getHealthPercentage` / `isHostile` / `setHostile`.
13
+ * Owner context: `@sharpee/world-model` — combat (requires the HEALTH layer).
14
14
  */
15
- class CombatBehavior extends behavior_1.Behavior {
16
- static requiredTraits = [trait_types_1.TraitType.COMBATANT];
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.CombatBehavior = void 0;
17
+ const behavior_js_1 = require("../../behaviors/behavior.js");
18
+ const trait_types_js_1 = require("../trait-types.js");
19
+ const healthBehavior_js_1 = require("../health/healthBehavior.js");
20
+ class CombatBehavior extends behavior_js_1.Behavior {
21
+ static requiredTraits = [trait_types_js_1.TraitType.COMBATANT, trait_types_js_1.TraitType.HEALTH];
17
22
  /**
18
- * Check if a combatant can be attacked
23
+ * Check if a combatant can be attacked (present, and alive per its health).
19
24
  */
20
25
  static canAttack(entity) {
21
- if (!entity.has(trait_types_1.TraitType.COMBATANT)) {
26
+ if (!entity.has(trait_types_js_1.TraitType.COMBATANT)) {
22
27
  return false;
23
28
  }
24
- const combatant = entity.get(trait_types_1.TraitType.COMBATANT);
25
- return combatant.isAlive && combatant.health > 0;
29
+ const health = CombatBehavior.optional(entity, trait_types_js_1.TraitType.HEALTH);
30
+ return health ? healthBehavior_js_1.HealthBehavior.isAlive(health) : true;
26
31
  }
27
32
  /**
28
- * Attack a combatant
33
+ * Attack a combatant.
29
34
  * @param entity The combatant to attack
30
- * @param damage Base damage amount
35
+ * @param damage Base damage amount (pre-armor)
31
36
  * @param world The world model (needed for dropping inventory)
32
37
  * @returns Result describing what happened
33
38
  */
34
39
  static attack(entity, damage, world) {
35
- if (!entity.has(trait_types_1.TraitType.COMBATANT)) {
40
+ if (!entity.has(trait_types_js_1.TraitType.COMBATANT)) {
36
41
  return {
37
42
  success: false,
38
43
  damage: 0,
@@ -41,8 +46,9 @@ class CombatBehavior extends behavior_1.Behavior {
41
46
  message: 'Entity is not a combatant'
42
47
  };
43
48
  }
44
- const combatant = entity.get(trait_types_1.TraitType.COMBATANT);
45
- if (!combatant.isAlive || combatant.health <= 0) {
49
+ const combatant = entity.get(trait_types_js_1.TraitType.COMBATANT);
50
+ const health = CombatBehavior.require(entity, trait_types_js_1.TraitType.HEALTH);
51
+ if (!healthBehavior_js_1.HealthBehavior.isAlive(health)) {
46
52
  return {
47
53
  success: false,
48
54
  damage: 0,
@@ -50,21 +56,19 @@ class CombatBehavior extends behavior_1.Behavior {
50
56
  remainingHealth: 0
51
57
  };
52
58
  }
53
- // Apply armor reduction
59
+ // Apply armor reduction (always at least 1 damage), then route through health.
54
60
  const actualDamage = Math.max(1, damage - combatant.armor);
55
- // Apply damage
56
- combatant.health = Math.max(0, combatant.health - actualDamage);
61
+ const killed = healthBehavior_js_1.HealthBehavior.takeDamage(health, actualDamage, 'combat');
57
62
  const result = {
58
63
  success: true,
59
64
  damage: actualDamage,
60
- killed: combatant.health <= 0,
61
- remainingHealth: combatant.health,
65
+ killed,
66
+ remainingHealth: health.health,
62
67
  message: combatant.hitMessage,
63
- retaliated: combatant.canRetaliate && combatant.health > 0
68
+ retaliated: combatant.canRetaliate && !killed
64
69
  };
65
70
  // Handle death
66
- if (combatant.health <= 0) {
67
- combatant.isAlive = false;
71
+ if (killed) {
68
72
  result.deathMessage = combatant.deathMessage;
69
73
  // Drop inventory if specified
70
74
  if (combatant.dropsInventory) {
@@ -85,69 +89,67 @@ class CombatBehavior extends behavior_1.Behavior {
85
89
  return result;
86
90
  }
87
91
  /**
88
- * Heal a combatant
92
+ * Heal a combatant. Returns the amount actually healed.
89
93
  */
90
94
  static heal(entity, amount) {
91
- if (!entity.has(trait_types_1.TraitType.COMBATANT)) {
95
+ if (!entity.has(trait_types_js_1.TraitType.COMBATANT)) {
92
96
  return 0;
93
97
  }
94
- const combatant = entity.get(trait_types_1.TraitType.COMBATANT);
95
- if (!combatant.isAlive)
96
- return 0;
97
- const oldHealth = combatant.health;
98
- combatant.health = Math.min(combatant.maxHealth, combatant.health + amount);
99
- return combatant.health - oldHealth;
98
+ const health = CombatBehavior.require(entity, trait_types_js_1.TraitType.HEALTH);
99
+ return healthBehavior_js_1.HealthBehavior.heal(health, amount);
100
100
  }
101
101
  /**
102
- * Resurrect a dead combatant
102
+ * Resurrect a dead combatant — clears the terminal state and restores full health.
103
+ * @returns true if a dead combatant was resurrected, false if it was already alive
103
104
  */
104
105
  static resurrect(entity) {
105
- if (!entity.has(trait_types_1.TraitType.COMBATANT)) {
106
+ if (!entity.has(trait_types_js_1.TraitType.COMBATANT)) {
106
107
  return false;
107
108
  }
108
- const combatant = entity.get(trait_types_1.TraitType.COMBATANT);
109
- if (combatant.isAlive)
109
+ const health = CombatBehavior.require(entity, trait_types_js_1.TraitType.HEALTH);
110
+ if (healthBehavior_js_1.HealthBehavior.isAlive(health))
110
111
  return false;
111
- combatant.isAlive = true;
112
- combatant.health = combatant.maxHealth;
112
+ health.dead = false;
113
+ health.causeOfDeath = undefined;
114
+ health.health = health.maxHealth;
113
115
  return true;
114
116
  }
115
117
  /**
116
- * Check if combatant is alive
118
+ * Check if combatant is alive (via its health). Non-combatants are alive by default.
117
119
  */
118
120
  static isAlive(entity) {
119
- if (!entity.has(trait_types_1.TraitType.COMBATANT)) {
121
+ if (!entity.has(trait_types_js_1.TraitType.COMBATANT)) {
120
122
  return true; // Non-combatants are considered 'alive' by default
121
123
  }
122
- const combatant = entity.get(trait_types_1.TraitType.COMBATANT);
123
- return combatant.isAlive && combatant.health > 0;
124
+ const health = CombatBehavior.optional(entity, trait_types_js_1.TraitType.HEALTH);
125
+ return health ? healthBehavior_js_1.HealthBehavior.isAlive(health) : true;
124
126
  }
125
127
  /**
126
- * Get current health
128
+ * Get current health.
127
129
  */
128
130
  static getHealth(entity) {
129
- const combatant = CombatBehavior.require(entity, trait_types_1.TraitType.COMBATANT);
130
- return combatant.health;
131
+ const health = CombatBehavior.require(entity, trait_types_js_1.TraitType.HEALTH);
132
+ return health.health;
131
133
  }
132
134
  /**
133
- * Get health percentage
135
+ * Get health percentage.
134
136
  */
135
137
  static getHealthPercentage(entity) {
136
- const combatant = CombatBehavior.require(entity, trait_types_1.TraitType.COMBATANT);
137
- return (combatant.health / combatant.maxHealth) * 100;
138
+ const health = CombatBehavior.require(entity, trait_types_js_1.TraitType.HEALTH);
139
+ return (health.health / health.maxHealth) * 100;
138
140
  }
139
141
  /**
140
- * Check if combatant is hostile
142
+ * Check if combatant is hostile.
141
143
  */
142
144
  static isHostile(entity) {
143
- const combatant = CombatBehavior.require(entity, trait_types_1.TraitType.COMBATANT);
145
+ const combatant = CombatBehavior.require(entity, trait_types_js_1.TraitType.COMBATANT);
144
146
  return combatant.hostile;
145
147
  }
146
148
  /**
147
- * Set hostility
149
+ * Set hostility.
148
150
  */
149
151
  static setHostile(entity, hostile) {
150
- const combatant = CombatBehavior.require(entity, trait_types_1.TraitType.COMBATANT);
152
+ const combatant = CombatBehavior.require(entity, trait_types_js_1.TraitType.COMBATANT);
151
153
  combatant.hostile = hostile;
152
154
  }
153
155
  }
@@ -1 +1 @@
1
- {"version":3,"file":"combatantBehavior.js","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/combatant/combatantBehavior.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"combatantBehavior.js","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/combatant/combatantBehavior.ts"],"names":[],"mappings":"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"}
@@ -1,35 +1,35 @@
1
1
  /**
2
- * Combatant trait for entities that can engage in combat
2
+ * Combatant trait for entities that can engage in combat.
3
+ *
4
+ * Combat STATS only (ADR-226 / ADR-223 child A): a combatant's health, alive/
5
+ * conscious state, and recovery live on the entity's {@link HealthTrait} — the single
6
+ * life-state source — not here. `CombatantTrait` *requires* a `HealthTrait`
7
+ * (enforced at load; ADR-226 §2 / AC-7). Hostility stays here for now (moves to
8
+ * disposition in ADR-223 child C).
9
+ *
10
+ * Data only — all combat logic is in `CombatBehavior`, which reads/writes health
11
+ * through `HealthBehavior`.
12
+ * Owner context: `@sharpee/world-model` — combat stats (requires the HEALTH layer).
3
13
  */
4
- import { ITrait } from '../trait';
14
+ import { ITrait } from '../trait.js';
5
15
  export interface ICombatantData {
6
- /** Current health points */
7
- health?: number;
8
- /** Maximum health points */
9
- maxHealth?: number;
10
16
  /** Combat skill (0-100, affects hit/dodge chance) - ADR-072 */
11
17
  skill?: number;
12
18
  /** Natural damage (if no weapon) - ADR-072 */
13
19
  baseDamage?: number;
14
- /** Whether this combatant is conscious (false = knocked out) - ADR-072 */
15
- isConscious?: boolean;
16
- /** Turns until consciousness recovery - ADR-072 */
17
- recoveryTurns?: number;
18
20
  /** Armor value that reduces damage */
19
21
  armor?: number;
20
22
  /** Attack power modifier (legacy, use baseDamage) */
21
23
  attackPower?: number;
22
24
  /** Defense modifier */
23
25
  defense?: number;
24
- /** Whether this combatant is alive */
25
- isAlive?: boolean;
26
26
  /** Custom message when hit */
27
27
  hitMessage?: string;
28
28
  /** Custom message when killed */
29
29
  deathMessage?: string;
30
30
  /** Custom message when attacking */
31
31
  attackMessage?: string;
32
- /** Whether this combatant is hostile by default */
32
+ /** Whether this combatant is hostile by default (moves to disposition, ADR-223 child C) */
33
33
  hostile?: boolean;
34
34
  /** Whether this combatant can retaliate */
35
35
  canRetaliate?: boolean;
@@ -43,22 +43,17 @@ export interface ICombatantData {
43
43
  /**
44
44
  * Combatant trait indicates an entity can engage in combat.
45
45
  *
46
- * This trait contains only data - all combat logic
47
- * is in CombatBehavior.
46
+ * This trait contains only combat *stats* — health and life-state are on the
47
+ * required {@link HealthTrait}. All combat logic is in `CombatBehavior`.
48
48
  */
49
49
  export declare class CombatantTrait implements ITrait, ICombatantData {
50
50
  static readonly type: "combatant";
51
51
  readonly type: "combatant";
52
- health: number;
53
- maxHealth: number;
54
52
  skill: number;
55
53
  baseDamage: number;
56
- isConscious: boolean;
57
- recoveryTurns?: number;
58
54
  armor: number;
59
55
  attackPower: number;
60
56
  defense: number;
61
- isAlive: boolean;
62
57
  hitMessage?: string;
63
58
  deathMessage?: string;
64
59
  attackMessage?: string;
@@ -68,34 +63,5 @@ export declare class CombatantTrait implements ITrait, ICombatantData {
68
63
  experienceValue: number;
69
64
  isUndead: boolean;
70
65
  constructor(data?: ICombatantData);
71
- /**
72
- * Computed property to check if combatant is alive based on health
73
- */
74
- get alive(): boolean;
75
- /**
76
- * Check if combatant can act (alive and conscious)
77
- */
78
- get canAct(): boolean;
79
- /**
80
- * Knock out this combatant (unconscious but alive)
81
- */
82
- knockOut(recoveryTurns?: number): void;
83
- /**
84
- * Wake up this combatant
85
- */
86
- wakeUp(): void;
87
- /**
88
- * Kill this combatant
89
- */
90
- kill(): void;
91
- /**
92
- * Take damage
93
- * @returns true if combatant was killed
94
- */
95
- takeDamage(amount: number): boolean;
96
- /**
97
- * Heal this combatant
98
- */
99
- heal(amount: number): void;
100
66
  }
101
67
  //# sourceMappingURL=combatantTrait.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"combatantTrait.d.ts","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/combatant/combatantTrait.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,MAAM,WAAW,cAAc;IAC7B,4BAA4B;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,4BAA4B;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,+DAA+D;IAC/D,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,8CAA8C;IAC9C,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,0EAA0E;IAC1E,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB,mDAAmD;IACnD,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,sCAAsC;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,qDAAqD;IACrD,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,uBAAuB;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,sCAAsC;IACtC,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,8BAA8B;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,iCAAiC;IACjC,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,oCAAoC;IACpC,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,mDAAmD;IACnD,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,2CAA2C;IAC3C,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB,0CAA0C;IAC1C,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB,8CAA8C;IAC9C,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;;;GAKG;AACH,qBAAa,cAAe,YAAW,MAAM,EAAE,cAAc;IAC3D,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAG,WAAW,CAAU;IAC5C,QAAQ,CAAC,IAAI,EAAG,WAAW,CAAU;IAGrC,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,OAAO,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,OAAO,CAAC;IACtB,cAAc,EAAE,OAAO,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,OAAO,CAAC;gBAEN,IAAI,GAAE,cAAmB;IAsBrC;;OAEG;IACH,IAAI,KAAK,IAAI,OAAO,CAEnB;IAED;;OAEG;IACH,IAAI,MAAM,IAAI,OAAO,CAEpB;IAED;;OAEG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI;IAOtC;;OAEG;IACH,MAAM,IAAI,IAAI;IAOd;;OAEG;IACH,IAAI,IAAI,IAAI;IAMZ;;;OAGG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAiBnC;;OAEG;IACH,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;CAQ3B"}
1
+ {"version":3,"file":"combatantTrait.d.ts","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/combatant/combatantTrait.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,MAAM,WAAW,cAAc;IAC7B,+DAA+D;IAC/D,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,8CAA8C;IAC9C,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,sCAAsC;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,qDAAqD;IACrD,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,uBAAuB;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,8BAA8B;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,iCAAiC;IACjC,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,oCAAoC;IACpC,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,2FAA2F;IAC3F,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,2CAA2C;IAC3C,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB,0CAA0C;IAC1C,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB,8CAA8C;IAC9C,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;;;GAKG;AACH,qBAAa,cAAe,YAAW,MAAM,EAAE,cAAc;IAC3D,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAG,WAAW,CAAU;IAC5C,QAAQ,CAAC,IAAI,EAAG,WAAW,CAAU;IAErC,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,OAAO,CAAC;IACtB,cAAc,EAAE,OAAO,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,OAAO,CAAC;gBAEN,IAAI,GAAE,cAAmB;CAgBtC"}
@@ -1,29 +1,33 @@
1
1
  "use strict";
2
2
  /**
3
- * Combatant trait for entities that can engage in combat
3
+ * Combatant trait for entities that can engage in combat.
4
+ *
5
+ * Combat STATS only (ADR-226 / ADR-223 child A): a combatant's health, alive/
6
+ * conscious state, and recovery live on the entity's {@link HealthTrait} — the single
7
+ * life-state source — not here. `CombatantTrait` *requires* a `HealthTrait`
8
+ * (enforced at load; ADR-226 §2 / AC-7). Hostility stays here for now (moves to
9
+ * disposition in ADR-223 child C).
10
+ *
11
+ * Data only — all combat logic is in `CombatBehavior`, which reads/writes health
12
+ * through `HealthBehavior`.
13
+ * Owner context: `@sharpee/world-model` — combat stats (requires the HEALTH layer).
4
14
  */
5
15
  Object.defineProperty(exports, "__esModule", { value: true });
6
16
  exports.CombatantTrait = void 0;
7
17
  /**
8
18
  * Combatant trait indicates an entity can engage in combat.
9
19
  *
10
- * This trait contains only data - all combat logic
11
- * is in CombatBehavior.
20
+ * This trait contains only combat *stats* — health and life-state are on the
21
+ * required {@link HealthTrait}. All combat logic is in `CombatBehavior`.
12
22
  */
13
23
  class CombatantTrait {
14
24
  static type = 'combatant';
15
25
  type = 'combatant';
16
- // CombatantData properties
17
- health;
18
- maxHealth;
19
26
  skill;
20
27
  baseDamage;
21
- isConscious;
22
- recoveryTurns;
23
28
  armor;
24
29
  attackPower;
25
30
  defense;
26
- isAlive;
27
31
  hitMessage;
28
32
  deathMessage;
29
33
  attackMessage;
@@ -34,16 +38,11 @@ class CombatantTrait {
34
38
  isUndead;
35
39
  constructor(data = {}) {
36
40
  // Set defaults and merge with provided data
37
- this.health = data.health ?? data.maxHealth ?? 10;
38
- this.maxHealth = data.maxHealth ?? 10;
39
41
  this.skill = data.skill ?? 30; // Default skill level (ADR-072)
40
42
  this.baseDamage = data.baseDamage ?? data.attackPower ?? 1; // ADR-072
41
- this.isConscious = data.isConscious ?? true; // ADR-072
42
- this.recoveryTurns = data.recoveryTurns; // ADR-072
43
43
  this.armor = data.armor ?? 0;
44
44
  this.attackPower = data.attackPower ?? 1;
45
45
  this.defense = data.defense ?? 0;
46
- this.isAlive = data.isAlive ?? true;
47
46
  this.hitMessage = data.hitMessage;
48
47
  this.deathMessage = data.deathMessage;
49
48
  this.attackMessage = data.attackMessage;
@@ -53,72 +52,6 @@ class CombatantTrait {
53
52
  this.experienceValue = data.experienceValue ?? 0;
54
53
  this.isUndead = data.isUndead ?? false;
55
54
  }
56
- /**
57
- * Computed property to check if combatant is alive based on health
58
- */
59
- get alive() {
60
- return this.health > 0;
61
- }
62
- /**
63
- * Check if combatant can act (alive and conscious)
64
- */
65
- get canAct() {
66
- return this.isAlive && this.isConscious;
67
- }
68
- /**
69
- * Knock out this combatant (unconscious but alive)
70
- */
71
- knockOut(recoveryTurns) {
72
- this.isConscious = false;
73
- if (recoveryTurns !== undefined) {
74
- this.recoveryTurns = recoveryTurns;
75
- }
76
- }
77
- /**
78
- * Wake up this combatant
79
- */
80
- wakeUp() {
81
- if (this.isAlive) {
82
- this.isConscious = true;
83
- this.recoveryTurns = undefined;
84
- }
85
- }
86
- /**
87
- * Kill this combatant
88
- */
89
- kill() {
90
- this.health = 0;
91
- this.isAlive = false;
92
- this.isConscious = false;
93
- }
94
- /**
95
- * Take damage
96
- * @returns true if combatant was killed
97
- */
98
- takeDamage(amount) {
99
- const effectiveDamage = Math.max(0, amount - this.armor);
100
- this.health = Math.max(0, this.health - effectiveDamage);
101
- if (this.health <= 0) {
102
- this.kill();
103
- return true;
104
- }
105
- // Check for knockout (20% health threshold per ADR-072)
106
- if (this.health <= this.maxHealth * 0.2) {
107
- this.knockOut();
108
- }
109
- return false;
110
- }
111
- /**
112
- * Heal this combatant
113
- */
114
- heal(amount) {
115
- if (this.isAlive) {
116
- this.health = Math.min(this.maxHealth, this.health + amount);
117
- if (this.health > this.maxHealth * 0.2) {
118
- this.wakeUp();
119
- }
120
- }
121
- }
122
55
  }
123
56
  exports.CombatantTrait = CombatantTrait;
124
57
  //# sourceMappingURL=combatantTrait.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"combatantTrait.js","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/combatant/combatantTrait.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"combatantTrait.js","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/combatant/combatantTrait.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;GAYG;;;AA6CH;;;;;GAKG;AACH,MAAa,cAAc;IACzB,MAAM,CAAU,IAAI,GAAG,WAAoB,CAAC;IACnC,IAAI,GAAG,WAAoB,CAAC;IAErC,KAAK,CAAS;IACd,UAAU,CAAS;IACnB,KAAK,CAAS;IACd,WAAW,CAAS;IACpB,OAAO,CAAS;IAChB,UAAU,CAAU;IACpB,YAAY,CAAU;IACtB,aAAa,CAAU;IACvB,OAAO,CAAU;IACjB,YAAY,CAAU;IACtB,cAAc,CAAU;IACxB,eAAe,CAAS;IACxB,QAAQ,CAAU;IAElB,YAAY,OAAuB,EAAE;QACnC,4CAA4C;QAC5C,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,gCAAgC;QAC/D,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC,UAAU;QACtE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC;QAC7B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC;QACjC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QAClC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QACtC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;QACxC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,KAAK,CAAC;QACrC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC;QAC9C,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC;QAClD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,IAAI,CAAC,CAAC;QACjD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,KAAK,CAAC;IACzC,CAAC;;AAjCH,wCAkCC"}
@@ -1,3 +1,3 @@
1
- export { CombatantTrait, ICombatantData } from './combatantTrait';
2
- export { CombatBehavior, ICombatResult } from './combatantBehavior';
1
+ export { CombatantTrait, ICombatantData } from './combatantTrait.js';
2
+ export { CombatBehavior, ICombatResult } from './combatantBehavior.js';
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/combatant/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/combatant/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC"}
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.CombatBehavior = exports.CombatantTrait = void 0;
4
- var combatantTrait_1 = require("./combatantTrait");
5
- Object.defineProperty(exports, "CombatantTrait", { enumerable: true, get: function () { return combatantTrait_1.CombatantTrait; } });
6
- var combatantBehavior_1 = require("./combatantBehavior");
7
- Object.defineProperty(exports, "CombatBehavior", { enumerable: true, get: function () { return combatantBehavior_1.CombatBehavior; } });
4
+ var combatantTrait_js_1 = require("./combatantTrait.js");
5
+ Object.defineProperty(exports, "CombatantTrait", { enumerable: true, get: function () { return combatantTrait_js_1.CombatantTrait; } });
6
+ var combatantBehavior_js_1 = require("./combatantBehavior.js");
7
+ Object.defineProperty(exports, "CombatBehavior", { enumerable: true, get: function () { return combatantBehavior_js_1.CombatBehavior; } });
8
8
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/combatant/index.ts"],"names":[],"mappings":";;;AAAA,mDAAkE;AAAzD,gHAAA,cAAc,OAAA;AACvB,yDAAoE;AAA3D,mHAAA,cAAc,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/combatant/index.ts"],"names":[],"mappings":";;;AAAA,yDAAqE;AAA5D,mHAAA,cAAc,OAAA;AACvB,+DAAuE;AAA9D,sHAAA,cAAc,OAAA"}
@@ -11,9 +11,9 @@
11
11
  * Public interface: ConcealedStateTrait, IConcealedStateTrait, isConcealed, getConcealmentState.
12
12
  * Owner context: @sharpee/world-model / traits
13
13
  */
14
- import { ITrait } from '../trait';
15
- import { IFEntity } from '../../entities';
16
- import { ConcealmentPosition, ConcealmentQuality } from './concealmentTrait';
14
+ import { ITrait } from '../trait.js';
15
+ import { IFEntity } from '../../entities/index.js';
16
+ import { ConcealmentPosition, ConcealmentQuality } from './concealmentTrait.js';
17
17
  /**
18
18
  * Data interface for the concealed state.
19
19
  */
@@ -1 +1 @@
1
- {"version":3,"file":"concealedStateTrait.d.ts","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/concealment/concealedStateTrait.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAE7E;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,4DAA4D;IAC5D,QAAQ,EAAE,MAAM,CAAC;IAEjB,8BAA8B;IAC9B,QAAQ,EAAE,mBAAmB,CAAC;IAE9B,mEAAmE;IACnE,OAAO,EAAE,kBAAkB,CAAC;CAC7B;AAED;;;;;;GAMG;AACH,qBAAa,mBAAoB,YAAW,MAAM,EAAE,oBAAoB;IACtE,MAAM,CAAC,QAAQ,CAAC,IAAI,8BAA8B;IAClD,QAAQ,CAAC,IAAI,8BAA8B;IAE3C,4EAA4E;IAC5E,MAAM,CAAC,QAAQ,CAAC,YAAY,gCAAoC;IAEhE,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,OAAO,EAAE,kBAAkB,CAAC;gBAEhB,IAAI,EAAE,oBAAoB;CAKvC;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,QAAQ,GAAG,OAAO,CAErD;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,QAAQ,GAAG,oBAAoB,GAAG,SAAS,CAItF"}
1
+ {"version":3,"file":"concealedStateTrait.d.ts","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/concealment/concealedStateTrait.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAEnD,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAEhF;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,4DAA4D;IAC5D,QAAQ,EAAE,MAAM,CAAC;IAEjB,8BAA8B;IAC9B,QAAQ,EAAE,mBAAmB,CAAC;IAE9B,mEAAmE;IACnE,OAAO,EAAE,kBAAkB,CAAC;CAC7B;AAED;;;;;;GAMG;AACH,qBAAa,mBAAoB,YAAW,MAAM,EAAE,oBAAoB;IACtE,MAAM,CAAC,QAAQ,CAAC,IAAI,8BAA8B;IAClD,QAAQ,CAAC,IAAI,8BAA8B;IAE3C,4EAA4E;IAC5E,MAAM,CAAC,QAAQ,CAAC,YAAY,gCAAoC;IAEhE,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,OAAO,EAAE,kBAAkB,CAAC;gBAEhB,IAAI,EAAE,oBAAoB;CAKvC;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,QAAQ,GAAG,OAAO,CAErD;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,QAAQ,GAAG,oBAAoB,GAAG,SAAS,CAItF"}
@@ -16,7 +16,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
16
16
  exports.ConcealedStateTrait = void 0;
17
17
  exports.isConcealed = isConcealed;
18
18
  exports.getConcealmentState = getConcealmentState;
19
- const VisibilityBehavior_1 = require("../../world/VisibilityBehavior");
19
+ const VisibilityBehavior_js_1 = require("../../world/VisibilityBehavior.js");
20
20
  /**
21
21
  * Dynamic trait applied to an actor to mark them as concealed.
22
22
  *
@@ -28,7 +28,7 @@ class ConcealedStateTrait {
28
28
  static type = 'if.trait.concealed_state';
29
29
  type = 'if.trait.concealed_state';
30
30
  /** Registers the visibility capability — concealed actors block canSee() */
31
- static capabilities = [VisibilityBehavior_1.VISIBILITY_CAPABILITY];
31
+ static capabilities = [VisibilityBehavior_js_1.VISIBILITY_CAPABILITY];
32
32
  targetId;
33
33
  position;
34
34
  quality;
@@ -1 +1 @@
1
- {"version":3,"file":"concealedStateTrait.js","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/concealment/concealedStateTrait.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;GAYG;;;AAoDH,kCAEC;AAQD,kDAIC;AA9DD,uEAAuE;AAiBvE;;;;;;GAMG;AACH,MAAa,mBAAmB;IAC9B,MAAM,CAAU,IAAI,GAAG,0BAA0B,CAAC;IACzC,IAAI,GAAG,0BAA0B,CAAC;IAE3C,4EAA4E;IAC5E,MAAM,CAAU,YAAY,GAAG,CAAC,0CAAqB,CAAU,CAAC;IAEhE,QAAQ,CAAS;IACjB,QAAQ,CAAsB;IAC9B,OAAO,CAAqB;IAE5B,YAAY,IAA0B;QACpC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC9B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC9B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IAC9B,CAAC;;AAfH,kDAgBC;AAED;;;;;GAKG;AACH,SAAgB,WAAW,CAAC,MAAgB;IAC1C,OAAO,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;AAC9C,CAAC;AAED;;;;;GAKG;AACH,SAAgB,mBAAmB,CAAC,MAAgB;IAClD,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;IACnD,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7B,OAAO,KAAwC,CAAC;AAClD,CAAC"}
1
+ {"version":3,"file":"concealedStateTrait.js","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/concealment/concealedStateTrait.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;GAYG;;;AAoDH,kCAEC;AAQD,kDAIC;AA9DD,6EAA0E;AAiB1E;;;;;;GAMG;AACH,MAAa,mBAAmB;IAC9B,MAAM,CAAU,IAAI,GAAG,0BAA0B,CAAC;IACzC,IAAI,GAAG,0BAA0B,CAAC;IAE3C,4EAA4E;IAC5E,MAAM,CAAU,YAAY,GAAG,CAAC,6CAAqB,CAAU,CAAC;IAEhE,QAAQ,CAAS;IACjB,QAAQ,CAAsB;IAC9B,OAAO,CAAqB;IAE5B,YAAY,IAA0B;QACpC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC9B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC9B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IAC9B,CAAC;;AAfH,kDAgBC;AAED;;;;;GAKG;AACH,SAAgB,WAAW,CAAC,MAAgB;IAC1C,OAAO,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;AAC9C,CAAC;AAED;;;;;GAKG;AACH,SAAgB,mBAAmB,CAAC,MAAgB;IAClD,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;IACnD,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7B,OAAO,KAAwC,CAAC;AAClD,CAAC"}
@@ -8,8 +8,8 @@
8
8
  * Public interface: ConcealedVisibilityBehavior, registerConcealedVisibilityBehavior.
9
9
  * Owner context: @sharpee/world-model / traits / concealment
10
10
  */
11
- import { CapabilityBehavior } from '../../capabilities/capability-behavior';
12
- import { WorldModel } from '../../world/WorldModel';
11
+ import { CapabilityBehavior } from '../../capabilities/capability-behavior.js';
12
+ import { WorldModel } from '../../world/WorldModel.js';
13
13
  /**
14
14
  * Default visibility behavior for concealed actors.
15
15
  *
@@ -1 +1 @@
1
- {"version":3,"file":"concealedVisibilityBehavior.d.ts","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/concealment/concealedVisibilityBehavior.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAIpD;;;;;GAKG;AACH,eAAO,MAAM,2BAA2B,EAAE,kBAUzC,CAAC;AAEF;;;;;;;;;;GAUG;AACH,wBAAgB,mCAAmC,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI,CAM3E"}
1
+ {"version":3,"file":"concealedVisibilityBehavior.d.ts","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/concealment/concealedVisibilityBehavior.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,2CAA2C,CAAC;AAC/E,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAIvD;;;;;GAKG;AACH,eAAO,MAAM,2BAA2B,EAAE,kBAUzC,CAAC;AAEF;;;;;;;;;;GAUG;AACH,wBAAgB,mCAAmC,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI,CAM3E"}
@@ -12,8 +12,8 @@
12
12
  Object.defineProperty(exports, "__esModule", { value: true });
13
13
  exports.ConcealedVisibilityBehavior = void 0;
14
14
  exports.registerConcealedVisibilityBehavior = registerConcealedVisibilityBehavior;
15
- const VisibilityBehavior_1 = require("../../world/VisibilityBehavior");
16
- const concealedStateTrait_1 = require("./concealedStateTrait");
15
+ const VisibilityBehavior_js_1 = require("../../world/VisibilityBehavior.js");
16
+ const concealedStateTrait_js_1 = require("./concealedStateTrait.js");
17
17
  /**
18
18
  * Default visibility behavior for concealed actors.
19
19
  *
@@ -42,6 +42,6 @@ exports.ConcealedVisibilityBehavior = {
42
42
  * @param world - The world instance to register the binding on.
43
43
  */
44
44
  function registerConcealedVisibilityBehavior(world) {
45
- world.registerCapabilityBehavior(concealedStateTrait_1.ConcealedStateTrait.type, VisibilityBehavior_1.VISIBILITY_CAPABILITY, exports.ConcealedVisibilityBehavior);
45
+ world.registerCapabilityBehavior(concealedStateTrait_js_1.ConcealedStateTrait.type, VisibilityBehavior_js_1.VISIBILITY_CAPABILITY, exports.ConcealedVisibilityBehavior);
46
46
  }
47
47
  //# sourceMappingURL=concealedVisibilityBehavior.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"concealedVisibilityBehavior.js","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/concealment/concealedVisibilityBehavior.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;AAoCH,kFAMC;AAtCD,uEAAuE;AACvE,+DAA4D;AAE5D;;;;;GAKG;AACU,QAAA,2BAA2B,GAAuB;IAC7D,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW;QAChD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;IAC9C,CAAC;IAED,yDAAyD;IACzD,iFAAiF;IACjF,OAAO,KAAI,CAAC;IACZ,MAAM,KAAK,OAAO,EAAE,CAAC,CAAC,CAAC;IACvB,OAAO,KAAK,OAAO,EAAE,CAAC,CAAC,CAAC;CACzB,CAAC;AAEF;;;;;;;;;;GAUG;AACH,SAAgB,mCAAmC,CAAC,KAAiB;IACnE,KAAK,CAAC,0BAA0B,CAC9B,yCAAmB,CAAC,IAAI,EACxB,0CAAqB,EACrB,mCAA2B,CAC5B,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"concealedVisibilityBehavior.js","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/concealment/concealedVisibilityBehavior.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;AAoCH,kFAMC;AAtCD,6EAA0E;AAC1E,qEAA+D;AAE/D;;;;;GAKG;AACU,QAAA,2BAA2B,GAAuB;IAC7D,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW;QAChD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;IAC9C,CAAC;IAED,yDAAyD;IACzD,iFAAiF;IACjF,OAAO,KAAI,CAAC;IACZ,MAAM,KAAK,OAAO,EAAE,CAAC,CAAC,CAAC;IACvB,OAAO,KAAK,OAAO,EAAE,CAAC,CAAC,CAAC;CACzB,CAAC;AAEF;;;;;;;;;;GAUG;AACH,SAAgB,mCAAmC,CAAC,KAAiB;IACnE,KAAK,CAAC,0BAA0B,CAC9B,4CAAmB,CAAC,IAAI,EACxB,6CAAqB,EACrB,mCAA2B,CAC5B,CAAC;AACJ,CAAC"}
@@ -8,7 +8,7 @@
8
8
  * Public interface: ConcealmentTrait, ConcealmentPosition, isConcealmentTrait.
9
9
  * Owner context: @sharpee/world-model / traits
10
10
  */
11
- import { ITrait } from '../trait';
11
+ import { ITrait } from '../trait.js';
12
12
  /** How an actor can hide relative to the entity */
13
13
  export type ConcealmentPosition = 'behind' | 'under' | 'on' | 'inside';
14
14
  /** How well the hiding spot conceals — affects NPC detection at the story level */
@@ -1 +1 @@
1
- {"version":3,"file":"concealmentTrait.d.ts","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/concealment/concealmentTrait.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,mDAAmD;AACnD,MAAM,MAAM,mBAAmB,GAAG,QAAQ,GAAG,OAAO,GAAG,IAAI,GAAG,QAAQ,CAAC;AAEvE,mFAAmF;AACnF,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,WAAW,CAAC;AAExE;;;;;;;;;;;GAWG;AACH,qBAAa,gBAAiB,YAAW,MAAM;IAC7C,MAAM,CAAC,QAAQ,CAAC,IAAI,0BAA0B;IAC9C,QAAQ,CAAC,IAAI,0BAA0B;IAEvC,sDAAsD;IACtD,SAAS,EAAE,mBAAmB,EAAE,CAAC;IAEjC,gEAAgE;IAChE,QAAQ,EAAE,MAAM,CAAC;IAEjB,uEAAuE;IACvE,OAAO,EAAE,kBAAkB,CAAC;gBAEhB,OAAO,EAAE;QACnB,SAAS,EAAE,mBAAmB,EAAE,CAAC;QACjC,OAAO,EAAE,kBAAkB,CAAC;QAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB;IAMD;;;;;OAKG;IACH,gBAAgB,CAAC,QAAQ,EAAE,mBAAmB,GAAG,OAAO;CAGzD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,gBAAgB,CAE3E"}
1
+ {"version":3,"file":"concealmentTrait.d.ts","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/concealment/concealmentTrait.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,mDAAmD;AACnD,MAAM,MAAM,mBAAmB,GAAG,QAAQ,GAAG,OAAO,GAAG,IAAI,GAAG,QAAQ,CAAC;AAEvE,mFAAmF;AACnF,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,WAAW,CAAC;AAExE;;;;;;;;;;;GAWG;AACH,qBAAa,gBAAiB,YAAW,MAAM;IAC7C,MAAM,CAAC,QAAQ,CAAC,IAAI,0BAA0B;IAC9C,QAAQ,CAAC,IAAI,0BAA0B;IAEvC,sDAAsD;IACtD,SAAS,EAAE,mBAAmB,EAAE,CAAC;IAEjC,gEAAgE;IAChE,QAAQ,EAAE,MAAM,CAAC;IAEjB,uEAAuE;IACvE,OAAO,EAAE,kBAAkB,CAAC;gBAEhB,OAAO,EAAE;QACnB,SAAS,EAAE,mBAAmB,EAAE,CAAC;QACjC,OAAO,EAAE,kBAAkB,CAAC;QAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB;IAMD;;;;;OAKG;IACH,gBAAgB,CAAC,QAAQ,EAAE,mBAAmB,GAAG,OAAO;CAGzD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,gBAAgB,CAE3E"}