@zylem/behaviors 0.8.9 → 0.8.11

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 (168) hide show
  1. package/dist/acrobatics-2d.d.ts +25 -0
  2. package/dist/acrobatics-2d.js +37 -0
  3. package/dist/action-rpg.d.ts +21 -0
  4. package/dist/action-rpg.js +39 -0
  5. package/dist/adventure-tools.d.ts +22 -0
  6. package/dist/adventure-tools.js +39 -0
  7. package/dist/behavior-descriptor-NS_qnzzp.d.ts +4527 -0
  8. package/dist/behavior-metadata-Drm1zxI2.d.ts +13 -0
  9. package/dist/catalog.d.ts +2143 -0
  10. package/dist/catalog.js +9 -0
  11. package/dist/chunk-2BE5BW7D.js +130 -0
  12. package/dist/{chunk-CTSYM56P.js → chunk-2QCCLHJC.js} +10 -6
  13. package/dist/chunk-2UGT4MIF.js +94 -0
  14. package/dist/chunk-3J3ISPFQ.js +99 -0
  15. package/dist/chunk-3LBGEWT6.js +124 -0
  16. package/dist/{chunk-UUMH3DC3.js → chunk-3QBNWT7B.js} +5 -1
  17. package/dist/chunk-3T44EDXU.js +114 -0
  18. package/dist/chunk-5AJJ44QK.js +129 -0
  19. package/dist/{chunk-YDLO5M7S.js → chunk-5SMXQ6AU.js} +1 -0
  20. package/dist/chunk-5VJIP535.js +71 -0
  21. package/dist/chunk-6DTIJB7B.js +166 -0
  22. package/dist/chunk-73MHJY6R.js +78 -0
  23. package/dist/chunk-73YASAYS.js +137 -0
  24. package/dist/{chunk-LLDLVVG4.js → chunk-7HGDADLB.js} +25 -9
  25. package/dist/chunk-7IOQEXYR.js +92 -0
  26. package/dist/{chunk-OU2SW4U5.js → chunk-APAM55J3.js} +10 -6
  27. package/dist/chunk-BLTBZJPG.js +126 -0
  28. package/dist/chunk-BN6QZDR5.js +90 -0
  29. package/dist/chunk-BR33KT4Z.js +3186 -0
  30. package/dist/chunk-C5AYL42A.js +138 -0
  31. package/dist/{chunk-OBF6BIA2.js → chunk-CBQSC6W3.js} +2 -2
  32. package/dist/chunk-DDLZLJ7W.js +8 -0
  33. package/dist/chunk-DRIXFB4C.js +132 -0
  34. package/dist/{chunk-7CE6OHLW.js → chunk-DTLUKSX2.js} +6 -2
  35. package/dist/{chunk-TK3AXXXI.js → chunk-EMEA45JQ.js} +10 -6
  36. package/dist/chunk-EQFLPRF7.js +130 -0
  37. package/dist/{chunk-M25QJBDN.js → chunk-GNRMH7D3.js} +18 -6
  38. package/dist/chunk-GYEKT5AY.js +102 -0
  39. package/dist/{chunk-SHZZ2QRV.js → chunk-HCWLIPXP.js} +5 -1
  40. package/dist/{chunk-WHKPWIQO.js → chunk-HMVEQB2T.js} +1 -0
  41. package/dist/chunk-HQ2UFI3S.js +116 -0
  42. package/dist/chunk-I52PC5IU.js +128 -0
  43. package/dist/{chunk-CB3C7CRD.js → chunk-IAIJG2PB.js} +10 -6
  44. package/dist/{chunk-NDJO56BB.js → chunk-IJILTFEL.js} +5 -1
  45. package/dist/{chunk-7GGR26YA.js → chunk-IRNU4JGV.js} +10 -6
  46. package/dist/chunk-IRPBFVAK.js +141 -0
  47. package/dist/chunk-JFBR4FNX.js +140 -0
  48. package/dist/{chunk-ERS6SNA5.js → chunk-K34N2CBL.js} +5 -1
  49. package/dist/chunk-LMMF7KXF.js +178 -0
  50. package/dist/chunk-LWGJ3QQZ.js +107 -0
  51. package/dist/chunk-MPNGQLHZ.js +132 -0
  52. package/dist/chunk-OH5LJAEJ.js +135 -0
  53. package/dist/{chunk-57GLKGEX.js → chunk-P6TMZSWF.js} +32 -7
  54. package/dist/chunk-PDHHOVVQ.js +126 -0
  55. package/dist/{chunk-7TIIRJKF.js → chunk-RUBKGAPS.js} +5 -1
  56. package/dist/chunk-S44ZHYE6.js +1912 -0
  57. package/dist/chunk-SFMJNAW3.js +128 -0
  58. package/dist/{chunk-E2MOFIDH.js → chunk-SKKVOH6D.js} +13 -7
  59. package/dist/{chunk-RR3XNDKG.js → chunk-T2LAQQDS.js} +1 -1
  60. package/dist/chunk-TSYXRRS4.js +125 -0
  61. package/dist/chunk-TZHO6P22.js +150 -0
  62. package/dist/chunk-V26L6MY6.js +127 -0
  63. package/dist/chunk-V4M46BF6.js +105 -0
  64. package/dist/chunk-VSFWETXS.js +127 -0
  65. package/dist/chunk-VU4LTE2X.js +147 -0
  66. package/dist/chunk-WF6HC5U3.js +8 -0
  67. package/dist/chunk-WG5NCDS4.js +99 -0
  68. package/dist/{chunk-7LHXAEOZ.js → chunk-WUYHS6JZ.js} +6 -2
  69. package/dist/chunk-XNRY6NOC.js +120 -0
  70. package/dist/{chunk-55CFXXZH.js → chunk-XT47QZQ6.js} +32 -7
  71. package/dist/chunk-Y5CCNMJI.js +58 -0
  72. package/dist/chunk-YVVB6YMG.js +133 -0
  73. package/dist/chunk-ZZXTGVGN.js +131 -0
  74. package/dist/combat-ai.d.ts +21 -0
  75. package/dist/combat-ai.js +41 -0
  76. package/dist/{components--RTwuT4S.d.ts → components-ClmBORMP.d.ts} +1 -1
  77. package/dist/cooldown.d.ts +2 -8
  78. package/dist/cooldown.js +3 -2
  79. package/dist/coordinators/boundary-ricochet-3d.d.ts +3 -2
  80. package/dist/coordinators/boundary-ricochet-3d.js +2 -2
  81. package/dist/coordinators/boundary-ricochet.d.ts +3 -2
  82. package/dist/coordinators/boundary-ricochet.js +2 -2
  83. package/dist/coordinators/multidirectional-space-shooter.d.ts +3 -2
  84. package/dist/coordinators/multidirectional-space-shooter.js +2 -2
  85. package/dist/coordinators/top-down-shooter.d.ts +3 -2
  86. package/dist/coordinators/top-down-shooter.js +2 -2
  87. package/dist/core.d.ts +387 -26
  88. package/dist/core.js +1583 -6
  89. package/dist/destructible-3d.d.ts +3 -2
  90. package/dist/destructible-3d.js +3 -2
  91. package/dist/destructible-prebake.d.ts +1 -1
  92. package/dist/environmental-locomotion.d.ts +23 -0
  93. package/dist/environmental-locomotion.js +35 -0
  94. package/dist/first-person.d.ts +3 -2
  95. package/dist/first-person.js +25 -4
  96. package/dist/golf-racket.d.ts +21 -0
  97. package/dist/golf-racket.js +37 -0
  98. package/dist/index.d.ts +28 -6
  99. package/dist/index.js +766 -82
  100. package/dist/jumper-2d.d.ts +2 -1
  101. package/dist/jumper-2d.js +25 -4
  102. package/dist/jumper-3d.d.ts +2 -1
  103. package/dist/jumper-3d.js +25 -4
  104. package/dist/lane-defense.d.ts +21 -0
  105. package/dist/lane-defense.js +39 -0
  106. package/dist/life-simulation.d.ts +21 -0
  107. package/dist/life-simulation.js +39 -0
  108. package/dist/matching-pinball.d.ts +21 -0
  109. package/dist/matching-pinball.js +39 -0
  110. package/dist/melee-combat.d.ts +22 -0
  111. package/dist/melee-combat.js +45 -0
  112. package/dist/{moveable-CFOHmblC.d.ts → moveable-CXK2wEZL.d.ts} +2 -2
  113. package/dist/particle-emitter/presets.d.ts +1 -1
  114. package/dist/particle-emitter.d.ts +5 -4
  115. package/dist/particle-emitter.js +3 -2
  116. package/dist/{payload-BQzu-oY_.d.ts → payload-WEzfgjSL.d.ts} +1 -1
  117. package/dist/platformer-2d.d.ts +2 -1
  118. package/dist/platformer-2d.js +25 -4
  119. package/dist/platformer-3d.d.ts +2 -1
  120. package/dist/platformer-3d.js +25 -4
  121. package/dist/racing-vehicles.d.ts +21 -0
  122. package/dist/racing-vehicles.js +37 -0
  123. package/dist/rhythm-performance.d.ts +21 -0
  124. package/dist/rhythm-performance.js +39 -0
  125. package/dist/ricochet-2d.d.ts +2 -1
  126. package/dist/ricochet-2d.js +25 -4
  127. package/dist/ricochet-3d.d.ts +2 -1
  128. package/dist/ricochet-3d.js +25 -4
  129. package/dist/runtime-2d.d.ts +2 -1
  130. package/dist/runtime-2d.js +10 -1
  131. package/dist/screen-visibility.d.ts +2 -1
  132. package/dist/screen-visibility.js +3 -2
  133. package/dist/screen-wrap.d.ts +2 -7
  134. package/dist/screen-wrap.js +4 -3
  135. package/dist/shooter-2d.d.ts +3 -2
  136. package/dist/shooter-2d.js +3 -2
  137. package/dist/skate-snowboard.d.ts +21 -0
  138. package/dist/skate-snowboard.js +37 -0
  139. package/dist/{spark-C4Tp-52_.d.ts → spark-VoQoemz_.d.ts} +1 -1
  140. package/dist/spatial-puzzles.d.ts +21 -0
  141. package/dist/spatial-puzzles.js +35 -0
  142. package/dist/squad-rts.d.ts +21 -0
  143. package/dist/squad-rts.js +39 -0
  144. package/dist/stealth-city.d.ts +21 -0
  145. package/dist/stealth-city.js +41 -0
  146. package/dist/survival-resources.d.ts +21 -0
  147. package/dist/survival-resources.js +37 -0
  148. package/dist/tactical-grid.d.ts +21 -0
  149. package/dist/tactical-grid.js +39 -0
  150. package/dist/thruster.d.ts +2 -1
  151. package/dist/thruster.js +4 -3
  152. package/dist/top-down-movement.d.ts +2 -1
  153. package/dist/top-down-movement.js +24 -3
  154. package/dist/turn-based-rpg.d.ts +21 -0
  155. package/dist/turn-based-rpg.js +39 -0
  156. package/dist/{vector-DjhLUrak.d.ts → vector-s7GbCrVn.d.ts} +1 -1
  157. package/dist/weapon-systems.d.ts +22 -0
  158. package/dist/weapon-systems.js +45 -0
  159. package/dist/world-boundary-2d.d.ts +2 -1
  160. package/dist/world-boundary-2d.js +25 -4
  161. package/dist/world-boundary-3d.d.ts +2 -1
  162. package/dist/world-boundary-3d.js +26 -5
  163. package/package.json +90 -5
  164. package/dist/behavior-system-DkFAwLb_.d.ts +0 -914
  165. package/dist/chunk-GZ3DQIIZ.js +0 -888
  166. package/dist/{chunk-OSPQFWQF.js → chunk-4K37UL53.js} +3 -3
  167. package/dist/{chunk-DD4U42FG.js → chunk-AQB246W5.js} +3 -3
  168. package/dist/{chunk-UKGBQTHL.js → chunk-CXDNR4R4.js} +3 -3
package/dist/core.d.ts CHANGED
@@ -1,10 +1,27 @@
1
- import { $ as VelocityIntentMode, Z as TransformState, e as BehaviorRuntime, J as StagePose, l as StageBehaviorSnapshot, U as StageThrusterOptions, V as StageTopDownOptions, T as StageShooter2DOptions, R as StageScreenWrapOptions, r as StageBoundaryDimValue, Y as StageWorldBoundaryOptions, N as StageRicochetDimValue, O as StageRicochetOptions, H as StagePlatformer3DOptions, F as StagePlatformer2DOptions, z as StageFirstPersonOptions, y as StageFirstPersonInput, A as StageJumper2DOptions, E as StageJumper3DOptions, a1 as WasmStageRuntime, a2 as WasmStageRuntimeOptions, p as StageBodyKindValue, t as StageColliderShape, L as StageRenderSlot, K as StageRaycastHit, n as StageBodyInfo, u as StageDebugRender } from './behavior-system-DkFAwLb_.js';
2
- export { B as BaseBehaviorHandle, a as BehaviorDescriptor, b as BehaviorEntityLink, c as BehaviorHandle, d as BehaviorRef, f as BehaviorSystem, g as BehaviorSystemContext, h as BehaviorSystemFactory, C as CreateEntityFn, D as DefineBehaviorConfig, G as GameEntity, i as GameEntityOptions, S as STAGE_INPUT_BUTTON_JUMP, j as STAGE_INPUT_BUTTON_RUN, k as STAGE_INVALID_SLOT, m as StageBodyConfig, o as StageBodyKind, q as StageBoundaryDim, s as StageColliderConfig, v as StageEvent, w as StageEventType, x as StageEventTypeValue, I as StagePlatformerShapeSource, M as StageRicochetDim, P as StageRicochetReflection, Q as StageRicochetReflectionValue, W as StageTopDownPlane, X as StageTopDownPlaneValue, _ as VelocityIntent, a0 as WasmSnapshotBackref, a3 as createTransformStore, a4 as createWasmStageRuntime, a5 as defineBehavior, a6 as readBehaviorSnapshot, a7 as readStageRenderSlot } from './behavior-system-DkFAwLb_.js';
3
- export { P as PhysicsBodyComponent, T as TransformComponent, c as createPhysicsBodyComponent, a as createTransformComponent, u as useBehavior } from './components--RTwuT4S.js';
4
- export { E as EntityWithBody, M as MoveableBodyLike, a as MoveableEntity, V as Vector, g as getPosition, b as getVelocity, m as makeMoveable, c as move, d as moveForwardXY, e as moveX, f as moveXY, h as moveXZ, i as moveY, j as moveZ, r as resetVelocity, s as setPosition, k as setPositionX, l as setPositionY, n as setPositionZ, w as wrapAround3D, o as wrapAroundXY } from './moveable-CFOHmblC.js';
5
- export { V as VEC2_ONE, a as VEC2_ZERO, b as VEC3_ONE, c as VEC3_ZERO, d as Vec2, e as Vec2Components, f as Vec2Input, g as Vec3, h as Vec3Components, i as Vec3Input, j as isVec2Input, k as isVec3Input, n as normalizeVec2, l as normalizeVec3, t as toThreeVector2, m as toThreeVector3 } from './vector-DjhLUrak.js';
1
+ export { ActiveBumperKickBehavior, AdjacentPanelSwapBehavior, CascadeChainCreditBehavior, ColumnCollapseBehavior, GarbageBlockConversionBehavior, MatchingEntity, MatchingPinballBehavior, PinballModeObjectivesBehavior, PoweredPinballFlipperBehavior, RisingStackPressureBehavior, SimultaneousMatchClearBehavior, SpringPlungerLaunchBehavior } from './matching-pinball.js';
2
+ export { CalendarNpcRoutineBehavior, CropGrowthStagesBehavior, ExertionAndFatigueBehavior, FishingBiteAndHookBehavior, HarvestableFruitRegrowthBehavior, LifeEntity, LifeSimulationBehavior, LivestockDailyCareBehavior, RelationshipEventMemoryBehavior, RoomFurniturePlacementBehavior, SeasonalCropEligibilityBehavior, SoilMoistureCycleBehavior } from './life-simulation.js';
3
+ export { ArmingProximityMineBehavior, BlockerChewTransitionBehavior, BudgetedWaveSchedulerBehavior, BurrowToBacklineBehavior, CostedGridDeploymentBehavior, DefenseEntity, LaneDefenseBehavior, LaneTargetAcquisitionBehavior, LastChanceLaneSweeperBehavior, LayeredBreakawayArmorBehavior, PeriodicResourceProductionBehavior, SingleUseObstacleVaultBehavior } from './lane-defense.js';
4
+ export { CooperativeConstructionWorkBehavior, CooperativeObjectTransportBehavior, DayEndUnitRecallBehavior, DeliveredResourceConversionBehavior, GrowthStageMobilityBehavior, SpeciesHazardAffinityBehavior, SquadEntity, SquadFormationFollowBehavior, SquadRtsBehavior, SurfaceLatchAttackBehavior, ThrownWorkerDeploymentBehavior, WhistleRecallBehavior } from './squad-rts.js';
5
+ export { CommanderPowerWindowBehavior, CounterattackAndFollowUpBehavior, FuelAmmunitionResupplyBehavior, MinMaxAttackRangeBehavior, PersistentUnitLossBehavior, ProgressiveBuildingCaptureBehavior, TacticalGridBehavior, TacticsEntity, TerrainDefenseModifierBehavior, TerrainMovementBudgetBehavior, TransportLoadUnloadBehavior, WeaponAdvantageCycleBehavior } from './tactical-grid.js';
6
+ export { ActivePartnerSwapBehavior, BattleEntity, BudgetedPassiveLoadoutBehavior, CaptureAttemptResolutionBehavior, ConditionalEvolutionBehavior, EscapeAttemptBehavior, FieldFirstStrikeBehavior, PrioritySpeedTurnOrderBehavior, TimedBattleActionCommandBehavior, TurnBasedRpgBehavior, TurnDurationStatusBehavior, TypeEffectivenessMatrixBehavior } from './turn-based-rpg.js';
7
+ export { ActionRpgBehavior, AffixBudgetGenerationBehavior, AutonomousFamiliarBehavior, ConsumableBeltSlotsBehavior, DamageToResourceLeechBehavior, DeathDropOwnershipBehavior, DurabilityAndRepairBehavior, EquipmentStatAggregationBehavior, ResourceDrainingTransformationBehavior, RpgEntity, SeededLootTableBehavior, TypedResistanceResolutionBehavior } from './action-rpg.js';
8
+ export { ClubShotProfileBehavior, GolfRacketBehavior, LandingSpinTransferBehavior, LobAndDropPlacementBehavior, RacketContactTimingBehavior, RacketSpinShotBehavior, RallyPointAdjudicationBehavior, ServeAndFaultSequenceBehavior, SlopeAwarePuttingBehavior, SportsEntity, SwingPowerAccuracyBehavior, WindDragBallFlightBehavior } from './golf-racket.js';
9
+ export { AirGrabTrickBehavior, LandingAlignmentBailBehavior, ManualBalanceBehavior, PrewoundSpinBehavior, RailGrindBalanceBehavior, RampLipLaunchBehavior, RepeatedTrickDevaluationBehavior, SkateEntity, SkateSnowboardBehavior, TrickEarnedBoostMeterBehavior, UnbankedTrickComboBehavior, WallRideBehavior } from './skate-snowboard.js';
10
+ export { DriftChargeBoostBehavior, EnergyFundedRaceBoostBehavior, HoverTrackSuspensionBehavior, OrderedLapCheckpointsBehavior, PositionWeightedRaceItemsBehavior, RacingEntity, RacingVehiclesBehavior, SlipstreamDraftingBehavior, TrackFollowingHomingItemBehavior, VehicleDamageProgressionBehavior, VehicleSeatEntryExitBehavior, VehicleSideAttackBehavior } from './racing-vehicles.js';
11
+ export { AdaptiveEncounterPressureBehavior, CompanionAbductionObjectiveBehavior, EncounterClearLockBehavior, EnvironmentalVaultActionBehavior, EscortFollowWaitBehavior, IngredientCombinationBehavior, SavePointCheckpointBehavior, SpatialInventoryPackingBehavior, StaggerFinisherOpportunityBehavior, SurvivalEntity, SurvivalResourcesBehavior, WeaponUpgradeTrackBehavior } from './survival-resources.js';
12
+ import { cS as VelocityIntentMode, cQ as TransformState, cT as BehaviorRuntime, b8 as RhythmAbility, bc as RhythmOptions, bd as RhythmState, b9 as RhythmAction, aN as MatchingAbility, aR as MatchingOptions, aS as MatchingState, aO as MatchingAction, az as LifeAbility, aF as LifeOptions, aJ as LifeState, aA as LifeAction, a2 as DefenseAbility, a5 as DefenseOptions, a7 as DefenseState, a3 as DefenseAction, bC as SquadAbility, bF as SquadOptions, bG as SquadState, bD as SquadAction, bT as TacticsAbility, bX as TacticsOptions, bZ as TacticsState, bU as TacticsAction, q as BattleAbility, v as BattleOptions, w as BattleState, r as BattleAction, be as RpgAbility, bj as RpgOptions, bl as RpgState, bf as RpgAction, bx as SportsAbility, bz as SportsOptions, bB as SportsState, by as SportsAction, br as SkateAbility, bt as SkateOptions, bw as SkateState, bs as SkateAction, b3 as RacingAbility, b5 as RacingOptions, b7 as RacingState, b4 as RacingAction, bJ as SurvivalAbility, bN as SurvivalOptions, bP as SurvivalState, bK as SurvivalAction, M as CityAbility, R as CityOptions, T as CityState, ah as EncounterAbility, an as EncounterOptions, aq as EncounterState, al as EncounterHit, c4 as WeaponAbility, c8 as WeaponOptions, cd as WeaponState, c6 as WeaponInput, c7 as WeaponMode, ce as WeaponSurface, c9 as WeaponProjectileKind, ca as WeaponProjectileOptions, cb as WeaponProjectileState, c5 as WeaponCameraIntent, W as CombatAbility, _ as CombatOptions, $ as CombatState, Z as CombatInput, X as CombatAttack, Y as CombatHit, aU as PuzzleAbility, aW as PuzzleOptions, aY as PuzzleState, aV as PuzzleCommand, aX as PuzzleSegment, i as AdventureAbility, m as AdventureOptions, o as AdventureState, j as AdventureInput, k as AdventureObject, l as AdventureObjectState, ar as EnvironmentAbility, at as EnvironmentOptions, au as EnvironmentState, as as EnvironmentInput, aw as EnvironmentVolume, c0 as TubeRail, e as AcrobaticsAbility, g as AcrobaticsOptions, h as AcrobaticsState, cU as StagePose, cV as StageBehaviorSnapshot, cW as StageThrusterOptions, cX as StageTopDownOptions, cY as StageShooter2DOptions, cZ as StageScreenWrapOptions, c_ as StageBoundaryDimValue, c$ as StageWorldBoundaryOptions, d0 as StageRicochetDimValue, d1 as StageRicochetOptions, d2 as StagePlatformer3DOptions, d3 as StagePlatformer2DOptions, d4 as StageFirstPersonOptions, d5 as StageFirstPersonInput, d6 as StageJumper2DOptions, d7 as StageJumper3DOptions, d8 as WasmStageRuntime, d9 as WasmStageRuntimeOptions, da as StageBodyKindValue, db as StageColliderShape, bh as RpgEvent, ba as RhythmEvent, aQ as MatchingEvent, aC as LifeEvent, a4 as DefenseEvent, bE as SquadEvent, bW as TacticsEvent, t as BattleEvent, G as CITY_EVENTS, ac as ENCOUNTER_EVENTS, c2 as WEAPON_EVENTS, K as COMBAT_EVENTS, c as ADVENTURE_EVENT_KINDS, U as CityTarget, S as CityPoint, P as CityLinkKind, V as CityTraffic, Q as CityNoise, O as CityFootprint, N as CityDanger, ai as EncounterCandidate, aj as EncounterCover, ak as EncounterHazard, ap as EncounterRegion, am as EncounterLinkKind, ao as EncounterPhase, dc as StageRenderSlot, dd as StageRaycastHit, de as StageBodyInfo, df as StageDebugRender } from './behavior-descriptor-NS_qnzzp.js';
13
+ export { A as ACROBATICS_ACTIONS, a as ADVENTURE_ABILITIES, b as ADVENTURE_BUTTONS, d as ADVENTURE_FLAGS, f as AcrobaticsInput, n as AdventureRole, B as BATTLE_ABILITIES, p as BATTLE_EVENTS, dg as BaseBehaviorHandle, s as BattleEight, u as BattleFour, x as BattleTriple, y as BehaviorDescriptor, dh as BehaviorEntityLink, z as BehaviorHandle, C as BehaviorRef, D as BehaviorSystem, di as BehaviorSystemContext, E as BehaviorSystemFactory, F as CITY_ABILITIES, H as CITY_INTENTS, I as CITY_LINKS, J as COMBAT_ABILITIES, L as COMBAT_PHASES, dj as CreateEntityFn, a0 as DEFENSE_ABILITIES, a1 as DEFENSE_EVENTS, a6 as DefenseReceipt, a8 as DefenseTarget, a9 as DefenseTile, aa as DefineBehaviorConfig, ab as ENCOUNTER_ABILITIES, ad as ENCOUNTER_INTENTS, ae as ENCOUNTER_LINKS, af as ENVIRONMENT_ABILITIES, ag as ENVIRONMENT_MODES, av as EnvironmentVector, cR as GameEntity, dk as GameEntityOptions, ax as LIFE_ABILITIES, ay as LIFE_EVENTS, aB as LifeAnimal, aD as LifeFurniture, aE as LifeMemory, aG as LifePerson, aH as LifePlot, aI as LifeSchedule, aK as LifeTree, aL as MATCHING_ABILITIES, aM as MATCHING_EVENTS, aP as MatchingCell, aT as PUZZLE_ABILITIES, aZ as PuzzleVector, a_ as RACING_ABILITIES, a$ as RHYTHM_ABILITIES, b0 as RHYTHM_EVENTS, b1 as RPG_ABILITIES, b2 as RPG_EVENTS, b6 as RacingPoint, bb as RhythmNote, bg as RpgAffix, bi as RpgItem, bk as RpgPoint, bm as SKATE_ABILITIES, bn as SPORTS_ABILITIES, bo as SQUAD_ABILITIES, bp as SQUAD_EVENTS, dl as STAGE_INPUT_BUTTON_JUMP, dm as STAGE_INPUT_BUTTON_RUN, dn as STAGE_INVALID_SLOT, bq as SURVIVAL_ABILITIES, bu as SkatePhase, bv as SkatePoint, bA as SportsPoint, bH as SquadTask, bI as SquadWorker, dp as StageBodyConfig, dq as StageBodyKind, dr as StageBoundaryDim, ds as StageColliderConfig, dt as StageEvent, du as StageEventType, dv as StageEventTypeValue, dw as StagePlatformerShapeSource, dx as StageRicochetDim, dy as StageRicochetReflection, dz as StageRicochetReflectionValue, dA as StageTopDownPlane, dB as StageTopDownPlaneValue, bL as SurvivalCheckpoint, bM as SurvivalItem, bO as SurvivalPoint, bQ as TACTICS_ABILITIES, bR as TACTICS_EVENTS, bS as TRAVERSAL_ABILITIES, bV as TacticsCell, bY as TacticsPower, b_ as TacticsStructure, b$ as TacticsUnit, dC as VelocityIntent, c1 as WEAPON_ABILITIES, c3 as WEAPON_PHASES, dD as WasmSnapshotBackref, cc as WeaponShot, cf as battleData, cg as battleOperation, ch as cityData, ci as combatAttackData, cj as combatButtons, ck as combatData, cl as combatHitData, dE as createTransformStore, dF as createWasmStageRuntime, cm as defenseData, cn as defenseOperation, co as defineBehavior, cp as encounterData, cq as lifeData, cr as lifeOperation, cs as matchingData, ct as matchingOperation, cu as puzzleCommandData, cv as puzzleData, cw as racingData, cx as racingOperation, dG as readBehaviorSnapshot, dH as readStageRenderSlot, cy as rhythmData, cz as rhythmOperation, cA as rpgData, cB as rpgOperation, cC as skateData, cD as skateOperation, cE as sportsData, cF as sportsOperation, cG as squadData, cH as squadOperation, cI as survivalData, cJ as survivalOperation, cK as tacticsData, cL as tacticsOperation, cM as weaponButtons, cN as weaponData, cO as weaponModeData, cP as weaponProjectileData } from './behavior-descriptor-NS_qnzzp.js';
14
+ export { P as PhysicsBodyComponent, T as TransformComponent, c as createPhysicsBodyComponent, a as createTransformComponent, u as useBehavior } from './components-ClmBORMP.js';
15
+ export { E as EntityWithBody, a as MoveableBodyLike, M as MoveableEntity, V as Vector, g as getPosition, b as getVelocity, m as makeMoveable, c as move, d as moveForwardXY, e as moveX, f as moveXY, h as moveXZ, i as moveY, j as moveZ, r as resetVelocity, s as setPosition, k as setPositionX, l as setPositionY, n as setPositionZ, w as wrapAround3D, o as wrapAroundXY } from './moveable-CXK2wEZL.js';
16
+ export { V as VEC2_ONE, a as VEC2_ZERO, b as VEC3_ONE, c as VEC3_ZERO, d as Vec2, e as Vec2Components, f as Vec2Input, g as Vec3, h as Vec3Components, i as Vec3Input, j as isVec2Input, k as isVec3Input, n as normalizeVec2, l as normalizeVec3, t as toThreeVector2, m as toThreeVector3 } from './vector-s7GbCrVn.js';
6
17
  export { S as SyncStateMachine } from './sync-state-machine-CZyspBpj.js';
7
18
  export { F as FirstPersonPerspective } from './first-person-perspective-BxFHgFln.js';
19
+ export { BUILTIN_BEHAVIORS, BuiltinBehaviorName, getRequiredRuntimeBehaviors } from './catalog.js';
20
+ export { AlternateWeaponModeBehavior, BeamMissileCombinationBehavior, ChargeAndReleaseShotBehavior, DelayedShieldRegenerationBehavior, InterruptibleMagazineReloadBehavior, MaterialPenetratingShotBehavior, RemoteGuidedProjectileBehavior, StationaryAimModeBehavior, StickyGrenadeAttachmentBehavior, WeaponEntity, WeaponHeatAndVentBehavior, WeaponSystemsBehavior } from './weapon-systems.js';
21
+ export { BossPhaseControllerBehavior, CombatAIBehavior, CoverPeekCycleBehavior, EncounterEntity, GrenadeDangerEvasionBehavior, LatentAmbushActivationBehavior, LeaderLossMoraleBehavior, LocalizedWeakPointDamageBehavior, ShootableProjectileInterceptionBehavior, SquadFlankAssignmentBehavior, TacticalBurstSelectionBehavior, ThreatTargetSelectionBehavior } from './combat-ai.js';
22
+ export { AlarmCommunicationNetworkBehavior, CityEntity, ContextualDisguiseBehavior, FootprintTrailFollowingBehavior, LastSeenSearchBehavior, NoiseInvestigationBehavior, PedestrianPanicPropagationBehavior, PursuitEvasionDecayBehavior, StealthCityBehavior, TrafficJunctionYieldBehavior, VisionConeAwarenessBehavior, WantedLevelEscalationBehavior } from './stealth-city.js';
23
+ export { CallAndResponsePatternBehavior, FretChordStrumBehavior, HammerOnPullOffChainBehavior, HoldReleaseRhythmBehavior, PerformanceFailureMeterBehavior, PhraseEarnedScorePowerBehavior, RhythmEntity, RhythmPerformanceBehavior, RhythmSceneRemixBehavior, SustainNoteTrackingBehavior, TempoMapChartPlayerBehavior, TimestampedRhythmJudgmentBehavior } from './rhythm-performance.js';
24
+ export { B as BehaviorMetadata } from './behavior-metadata-Drm1zxI2.js';
8
25
  export { ILogger, ITransition, SyncCallback, t } from 'typescript-fsm';
9
26
  export { STAGE_EVENT_STRIDE, STAGE_INPUT_STRIDE, STAGE_RENDER_STRIDE, STAGE_SNAPSHOT_STRIDE, StageWasmExports } from '@zylem/runtime';
10
27
  import 'three';
@@ -21,12 +38,6 @@ interface VelocityIntentVector {
21
38
  declare function setVelocityIntent(store: TransformState, sourceId: string, vector: VelocityIntentVector, options?: VelocityIntentOptions): void;
22
39
  declare function clearVelocityIntent(store: TransformState, sourceId: string): void;
23
40
 
24
- /**
25
- * In-memory implementation of the {@link BehaviorRuntime} contract for unit
26
- * tests. Records every attach / input call per handle and lets tests seed
27
- * poses and behavior snapshots without instantiating the wasm runtime.
28
- */
29
-
30
41
  interface MockSlotState {
31
42
  pose: StagePose;
32
43
  snapshot: StageBehaviorSnapshot | null;
@@ -54,6 +65,114 @@ interface MockSlotState {
54
65
  } | null;
55
66
  }
56
67
  declare class MockBehaviorRuntime implements BehaviorRuntime {
68
+ attachRhythm(slot: number, abilities: readonly RhythmAbility[], options?: RhythmOptions): boolean;
69
+ detachRhythm(slot: number): boolean;
70
+ queryRhythm(_slot: number): RhythmState | null;
71
+ rhythmAction(slot: number, action: RhythmAction): boolean;
72
+ attachMatching(slot: number, abilities: readonly MatchingAbility[], options?: MatchingOptions): boolean;
73
+ detachMatching(slot: number): boolean;
74
+ queryMatching(_slot: number): MatchingState | null;
75
+ matchingAction(slot: number, action: MatchingAction): boolean;
76
+ attachLife(slot: number, abilities: readonly LifeAbility[], options?: LifeOptions): boolean;
77
+ detachLife(slot: number): boolean;
78
+ queryLife(_slot: number): LifeState | null;
79
+ lifeAction(slot: number, action: LifeAction): boolean;
80
+ attachDefense(slot: number, abilities: readonly DefenseAbility[], options?: DefenseOptions): boolean;
81
+ detachDefense(slot: number): boolean;
82
+ queryDefense(_slot: number): DefenseState | null;
83
+ defenseAction(slot: number, action: DefenseAction): boolean;
84
+ attachSquad(slot: number, abilities: readonly SquadAbility[], options?: SquadOptions): boolean;
85
+ detachSquad(slot: number): boolean;
86
+ querySquad(_slot: number): SquadState | null;
87
+ squadAction(slot: number, action: SquadAction): boolean;
88
+ attachTactics(slot: number, abilities: readonly TacticsAbility[], options?: TacticsOptions): boolean;
89
+ detachTactics(slot: number): boolean;
90
+ queryTactics(_slot: number): TacticsState | null;
91
+ tacticsAction(slot: number, action: TacticsAction): boolean;
92
+ attachBattle(slot: number, abilities: readonly BattleAbility[], options?: BattleOptions): boolean;
93
+ detachBattle(slot: number): boolean;
94
+ queryBattle(_slot: number): BattleState | null;
95
+ battleAction(slot: number, action: BattleAction): boolean;
96
+ attachRpg(slot: number, abilities: readonly RpgAbility[], options?: RpgOptions): boolean;
97
+ detachRpg(slot: number): boolean;
98
+ queryRpg(_slot: number): RpgState | null;
99
+ rpgAction(slot: number, action: RpgAction): boolean;
100
+ attachSports(slot: number, abilities: readonly SportsAbility[], options?: SportsOptions): boolean;
101
+ detachSports(slot: number): boolean;
102
+ querySports(_slot: number): SportsState | null;
103
+ sportsAction(slot: number, action: SportsAction): boolean;
104
+ attachSkate(slot: number, abilities: readonly SkateAbility[], options?: SkateOptions): boolean;
105
+ detachSkate(slot: number): boolean;
106
+ querySkate(_slot: number): SkateState | null;
107
+ skateAction(slot: number, action: SkateAction): boolean;
108
+ attachRacing(slot: number, abilities: readonly RacingAbility[], options?: RacingOptions): boolean;
109
+ detachRacing(slot: number): boolean;
110
+ queryRacing(_slot: number): RacingState | null;
111
+ racingAction(slot: number, action: RacingAction): boolean;
112
+ attachSurvival(slot: number, abilities: readonly SurvivalAbility[], options?: SurvivalOptions): boolean;
113
+ detachSurvival(slot: number): boolean;
114
+ querySurvival(_slot: number): SurvivalState | null;
115
+ survivalAction(slot: number, action: SurvivalAction): boolean;
116
+ attachCity(slot: number, abilities: readonly CityAbility[], options?: CityOptions): boolean;
117
+ detachCity(slot: number): boolean;
118
+ queryCity(slot: number): CityState | null;
119
+ cityLink(slot: number, other: number, kind: number, data: readonly number[]): boolean;
120
+ cityUnlink(slot: number, other: number, kind: number): boolean;
121
+ cityCommand(slot: number, kind: number, data: readonly number[]): boolean;
122
+ citySignal(slot: number, source: number, kind: number, sequence: number, data: readonly number[]): boolean;
123
+ attachEncounters(slot: number, abilities: readonly EncounterAbility[], options?: EncounterOptions): boolean;
124
+ detachEncounters(slot: number): boolean;
125
+ queryEncounters(slot: number): EncounterState | null;
126
+ encounterLink(slot: number, other: number, kind: number, data: readonly number[]): boolean;
127
+ encounterUnlink(slot: number, other: number, kind: number): boolean;
128
+ encounterCommand(slot: number, kind: number, value: number, data?: readonly number[]): boolean;
129
+ encounterHit(slot: number, source: number, region: number | null, hit: EncounterHit): boolean;
130
+ attachWeapons(slot: number, abilities: readonly WeaponAbility[], options?: WeaponOptions): boolean;
131
+ detachWeapons(slot: number): boolean;
132
+ queryWeapons(_slot: number): WeaponState | null;
133
+ weaponInput(slot: number, input: WeaponInput): boolean;
134
+ weaponMode(slot: number, index: 0 | 1, mode: WeaponMode): boolean;
135
+ weaponDamage(slot: number, amount: number, source: number | null): boolean;
136
+ weaponSurface(slot: number, surface: WeaponSurface): boolean;
137
+ launchWeaponProjectile(owner: number, slot: number, kind: WeaponProjectileKind, options?: WeaponProjectileOptions): boolean;
138
+ queryWeaponProjectile(_slot: number): WeaponProjectileState | null;
139
+ weaponCameraIntent(_slot: number): WeaponCameraIntent | null;
140
+ attachCombat(slot: number, abilities: readonly CombatAbility[], options?: CombatOptions): boolean;
141
+ detachCombat(slot: number): boolean;
142
+ queryCombat(_slot: number): CombatState | null;
143
+ combatInput(slot: number, input: CombatInput): boolean;
144
+ combatAttack(slot: number, index: number, attack: CombatAttack): boolean;
145
+ combatHit(slot: number, hit: CombatHit, source: number | null): boolean;
146
+ attachPuzzle(slot: number, ability: PuzzleAbility, options?: PuzzleOptions): boolean;
147
+ detachPuzzle(slot: number): boolean;
148
+ queryPuzzle(_slot: number): PuzzleState | null;
149
+ puzzleCommand(slot: number, command: PuzzleCommand): boolean;
150
+ puzzleLink(_slot: number, _other: number | null): boolean;
151
+ puzzleSegments(_slot: number): PuzzleSegment[];
152
+ attachAdventure(slot: number, abilities: readonly AdventureAbility[], options?: AdventureOptions): boolean;
153
+ detachAdventure(slot: number): boolean;
154
+ queryAdventure(_slot: number): AdventureState | null;
155
+ writeAdventureInput(slot: number, input: AdventureInput): void;
156
+ setAdventureObject(slot: number, object: AdventureObject | null): boolean;
157
+ queryAdventureObject(_slot: number): AdventureObjectState | null;
158
+ adventureProgress(_slot: number, _kind: number, _key: number, _value?: number): number;
159
+ attachEnvironment(slot: number, abilities: readonly EnvironmentAbility[], options?: EnvironmentOptions): boolean;
160
+ detachEnvironment(slot: number): boolean;
161
+ queryEnvironment(_slot: number): EnvironmentState | null;
162
+ writeEnvironmentInput(slot: number, input: EnvironmentInput): void;
163
+ setEnvironmentVolume(slot: number, volume: EnvironmentVolume | null): boolean;
164
+ setTubeRail(slot: number, rail: TubeRail | null): boolean;
165
+ attachAcrobatics(slot: number, abilities: readonly AcrobaticsAbility[], options?: AcrobaticsOptions): boolean;
166
+ setTraversalSurface(slot: number, kind: 'pole' | 'ceiling' | null): boolean;
167
+ setPossessable(slot: number, enabled: boolean): boolean;
168
+ startPossession(_owner: number, _target: number, _seconds?: number): boolean;
169
+ endPossession(_owner: number): boolean;
170
+ queryPossession(_owner: number): {
171
+ targetSlot: number;
172
+ remaining: number;
173
+ } | null;
174
+ queryAcrobatics(_slot: number): AcrobaticsState | null;
175
+ detachAcrobatics(slot: number): boolean;
57
176
  private slots;
58
177
  private slot;
59
178
  /** Seed the pose returned by {@link getPose} for a handle. */
@@ -119,20 +238,6 @@ declare class MockBehaviorRuntime implements BehaviorRuntime {
119
238
  setJumper3DInput(handle: number, jumpPressed: boolean): void;
120
239
  }
121
240
 
122
- /**
123
- * `Simulation` (a.k.a. `BehaviorWorld`) — the primary public abstraction of
124
- * `@zylem/behaviors`. It owns the wasm runtime lifecycle (one
125
- * `WebAssembly.Instance` of `@zylem/runtime` per simulation), the fixed
126
- * timestep accumulator, an entity registry mapping opaque
127
- * {@link EntityHandle}s to runtime slots, and per-step event translation
128
- * from raw stage events into typed {@link SimulationEvent}s.
129
- *
130
- * Hosts (e.g. `@zylem/game-lib`) call {@link createSimulation} once per
131
- * stage, `spawn()`/`despawn()` entities, call `update(delta)` once per
132
- * render frame, and read poses for rendering from the returned
133
- * {@link SimulationFrame}.
134
- */
135
-
136
241
  /**
137
242
  * Opaque, stable identifier for a simulation entity. `slot` is the raw
138
243
  * runtime slot index — treat it as an implementation detail owned by the
@@ -209,6 +314,125 @@ type SimulationEvent = {
209
314
  type: 'cooldownFired';
210
315
  entity: EntityHandle | null;
211
316
  cooldownId: number;
317
+ } | {
318
+ type: 'survival';
319
+ entity: EntityHandle | null;
320
+ target: EntityHandle | null;
321
+ kind: SurvivalAbility;
322
+ value: number;
323
+ } | {
324
+ type: 'racing';
325
+ entity: EntityHandle | null;
326
+ target: EntityHandle | null;
327
+ kind: RacingAbility;
328
+ value: number;
329
+ } | {
330
+ type: 'skate';
331
+ entity: EntityHandle | null;
332
+ target: EntityHandle | null;
333
+ kind: SkateAbility;
334
+ value: number;
335
+ } | {
336
+ type: 'sports';
337
+ entity: EntityHandle | null;
338
+ target: EntityHandle | null;
339
+ kind: SportsAbility;
340
+ value: number;
341
+ } | {
342
+ type: 'rpg';
343
+ entity: EntityHandle | null;
344
+ target: EntityHandle | null;
345
+ kind: RpgEvent;
346
+ value: number;
347
+ } | {
348
+ type: 'rhythm';
349
+ entity: EntityHandle | null;
350
+ target: EntityHandle | null;
351
+ kind: RhythmEvent;
352
+ value: number;
353
+ } | {
354
+ type: 'matching';
355
+ entity: EntityHandle | null;
356
+ target: EntityHandle | null;
357
+ kind: MatchingEvent;
358
+ value: number;
359
+ } | {
360
+ type: 'life';
361
+ entity: EntityHandle | null;
362
+ target: EntityHandle | null;
363
+ kind: LifeEvent;
364
+ value: number;
365
+ } | {
366
+ type: 'defense';
367
+ entity: EntityHandle | null;
368
+ target: EntityHandle | null;
369
+ kind: DefenseEvent;
370
+ value: number;
371
+ } | {
372
+ type: 'squad';
373
+ entity: EntityHandle | null;
374
+ target: EntityHandle | null;
375
+ kind: SquadEvent;
376
+ value: number;
377
+ } | {
378
+ type: 'tactics';
379
+ entity: EntityHandle | null;
380
+ target: EntityHandle | null;
381
+ kind: TacticsEvent;
382
+ value: number;
383
+ } | {
384
+ type: 'battle';
385
+ entity: EntityHandle | null;
386
+ target: EntityHandle | null;
387
+ kind: BattleEvent;
388
+ value: number;
389
+ } | {
390
+ type: 'city';
391
+ entity: EntityHandle | null;
392
+ target: EntityHandle | null;
393
+ kind: typeof CITY_EVENTS[number];
394
+ value: number;
395
+ } | {
396
+ type: 'encounter';
397
+ entity: EntityHandle | null;
398
+ target: EntityHandle | null;
399
+ kind: typeof ENCOUNTER_EVENTS[number];
400
+ value: number;
401
+ } | {
402
+ type: 'weapon';
403
+ entity: EntityHandle | null;
404
+ target: EntityHandle | null;
405
+ kind: typeof WEAPON_EVENTS[number];
406
+ value: number;
407
+ } | {
408
+ type: 'combat';
409
+ entity: EntityHandle | null;
410
+ target: EntityHandle | null;
411
+ kind: typeof COMBAT_EVENTS[number];
412
+ value: number;
413
+ } | {
414
+ type: 'puzzle';
415
+ entity: EntityHandle | null;
416
+ ability: PuzzleAbility;
417
+ active: boolean;
418
+ value: number;
419
+ } | {
420
+ type: 'adventure';
421
+ entity: EntityHandle | null;
422
+ target: EntityHandle | null;
423
+ kind: typeof ADVENTURE_EVENT_KINDS[number];
424
+ value: number;
425
+ } | {
426
+ type: 'drowningDamage';
427
+ entity: EntityHandle | null;
428
+ amount: number;
429
+ total: number;
430
+ severity: number;
431
+ } | {
432
+ type: 'groundPoundImpact';
433
+ entity: EntityHandle | null;
434
+ speed: number;
435
+ count: number;
212
436
  };
213
437
  /**
214
438
  * Snapshot of one `update()` call: how many fixed steps ran, the live render
@@ -295,6 +519,143 @@ declare class Simulation {
295
519
  private capturePreviousRender;
296
520
  private translateEvents;
297
521
  getPose(handle: EntityHandle, out?: StagePose): StagePose | null;
522
+ /** These ownership APIs require live handles from this Simulation. */
523
+ private live;
524
+ attachRhythm(handle: EntityHandle, abilities: readonly RhythmAbility[], options?: RhythmOptions): boolean;
525
+ detachRhythm(handle: EntityHandle): boolean;
526
+ getRhythmState(handle: EntityHandle): RhythmState | null;
527
+ rhythmAction(handle: EntityHandle, action: RhythmAction): boolean;
528
+ attachMatching(handle: EntityHandle, abilities: readonly MatchingAbility[], options?: MatchingOptions): boolean;
529
+ detachMatching(handle: EntityHandle): boolean;
530
+ getMatchingState(handle: EntityHandle): MatchingState | null;
531
+ matchingAction(handle: EntityHandle, action: MatchingAction<EntityHandle>): boolean;
532
+ attachLife(handle: EntityHandle, abilities: readonly LifeAbility[], options?: LifeOptions): boolean;
533
+ detachLife(handle: EntityHandle): boolean;
534
+ getLifeState(handle: EntityHandle): LifeState | null;
535
+ lifeAction(handle: EntityHandle, action: LifeAction<EntityHandle>): boolean;
536
+ attachDefense(handle: EntityHandle, abilities: readonly DefenseAbility[], options?: DefenseOptions): boolean;
537
+ detachDefense(handle: EntityHandle): boolean;
538
+ getDefenseState(handle: EntityHandle): DefenseState | null;
539
+ defenseAction(handle: EntityHandle, action: DefenseAction<EntityHandle>): boolean;
540
+ attachSquad(handle: EntityHandle, abilities: readonly SquadAbility[], options?: SquadOptions): boolean;
541
+ detachSquad(handle: EntityHandle): boolean;
542
+ getSquadState(handle: EntityHandle): SquadState | null;
543
+ squadAction(handle: EntityHandle, action: SquadAction<EntityHandle>): boolean;
544
+ attachTactics(handle: EntityHandle, abilities: readonly TacticsAbility[], options?: TacticsOptions): boolean;
545
+ detachTactics(handle: EntityHandle): boolean;
546
+ getTacticsState(handle: EntityHandle): TacticsState | null;
547
+ tacticsAction(handle: EntityHandle, action: TacticsAction<EntityHandle>): boolean;
548
+ attachBattle(handle: EntityHandle, abilities: readonly BattleAbility[], options?: BattleOptions): boolean;
549
+ detachBattle(handle: EntityHandle): boolean;
550
+ getBattleState(handle: EntityHandle): BattleState | null;
551
+ battleAction(handle: EntityHandle, action: BattleAction<EntityHandle>): boolean;
552
+ attachRpg(handle: EntityHandle, abilities: readonly RpgAbility[], options?: RpgOptions): boolean;
553
+ detachRpg(handle: EntityHandle): boolean;
554
+ getRpgState(handle: EntityHandle): RpgState | null;
555
+ rpgAction(handle: EntityHandle, action: RpgAction<EntityHandle>): boolean;
556
+ attachSports(handle: EntityHandle, abilities: readonly SportsAbility[], options?: SportsOptions): boolean;
557
+ detachSports(handle: EntityHandle): boolean;
558
+ getSportsState(handle: EntityHandle): SportsState | null;
559
+ sportsAction(handle: EntityHandle, action: SportsAction<EntityHandle>): boolean;
560
+ attachSkate(handle: EntityHandle, abilities: readonly SkateAbility[], options?: SkateOptions): boolean;
561
+ detachSkate(handle: EntityHandle): boolean;
562
+ getSkateState(handle: EntityHandle): SkateState | null;
563
+ skateAction(handle: EntityHandle, action: SkateAction<EntityHandle>): boolean;
564
+ attachRacing(handle: EntityHandle, abilities: readonly RacingAbility[], options?: RacingOptions): boolean;
565
+ detachRacing(handle: EntityHandle): boolean;
566
+ getRacingState(handle: EntityHandle): RacingState | null;
567
+ racingAction(handle: EntityHandle, action: RacingAction<EntityHandle>): boolean;
568
+ attachSurvival(handle: EntityHandle, abilities: readonly SurvivalAbility[], options?: SurvivalOptions): boolean;
569
+ detachSurvival(handle: EntityHandle): boolean;
570
+ getSurvivalState(handle: EntityHandle): SurvivalState | null;
571
+ survivalAction(handle: EntityHandle, action: SurvivalAction<EntityHandle>): boolean;
572
+ attachCity(handle: EntityHandle, abilities: readonly CityAbility[], options?: CityOptions): boolean;
573
+ detachCity(handle: EntityHandle): boolean;
574
+ getCityState(handle: EntityHandle): CityState | null;
575
+ private cityLink;
576
+ setCityTarget(handle: EntityHandle, target: EntityHandle, o?: CityTarget): boolean;
577
+ connectCityRadio(handle: EntityHandle, receiver: EntityHandle, channel?: number): boolean;
578
+ addCityNeighbor(handle: EntityHandle, neighbor: EntityHandle): boolean;
579
+ setCityJunction(handle: EntityHandle, junction: EntityHandle, exit: CityPoint, priority?: number): boolean;
580
+ addCityObserver(handle: EntityHandle, observer: EntityHandle): boolean;
581
+ removeCityLink(handle: EntityHandle, other: EntityHandle, kind: CityLinkKind): boolean;
582
+ private cityCommand;
583
+ setCityFacing(handle: EntityHandle, direction: CityPoint): boolean;
584
+ interruptCityReport(handle: EntityHandle): boolean;
585
+ setCityPursuitConditions(handle: EntityHandle, observed: boolean, inSearchZone: boolean): boolean;
586
+ /** Initialization only: seed B078 without needing B077. */
587
+ setCityPursuitScore(handle: EntityHandle, score: number): boolean;
588
+ setCityTraffic(handle: EntityHandle, input: CityTraffic): boolean;
589
+ setCityHearingMask(handle: EntityHandle, mask: number): boolean;
590
+ /** Initialization only, six strictly ascending thresholds, zero-based index. */
591
+ setCityResponseTier(handle: EntityHandle, index: number, threshold: number, responseMask: number): boolean;
592
+ private citySignal;
593
+ emitCityNoise(handle: EntityHandle, source: EntityHandle, o: CityNoise): boolean;
594
+ addCityFootprint(handle: EntityHandle, source: EntityHandle, o: CityFootprint): boolean;
595
+ startCityReport(handle: EntityHandle, sequence: number, channel?: number): boolean;
596
+ reportCityOffense(handle: EntityHandle, witness: EntityHandle, sequence: number, severity: number): boolean;
597
+ emitCityDanger(handle: EntityHandle, source: EntityHandle, o: CityDanger): boolean;
598
+ attachEncounters(handle: EntityHandle, abilities: readonly EncounterAbility[], options?: EncounterOptions): boolean;
599
+ detachEncounters(handle: EntityHandle): boolean;
600
+ getEncounterState(handle: EntityHandle): EncounterState | null;
601
+ private encounterLink;
602
+ setEncounterCandidate(handle: EntityHandle, other: EntityHandle, options?: EncounterCandidate): boolean;
603
+ setEncounterLeader(handle: EntityHandle, leader: EntityHandle): boolean;
604
+ addEncounterAlly(handle: EntityHandle, ally: EntityHandle): boolean;
605
+ setEncounterCover(handle: EntityHandle, anchor: EntityHandle, options: EncounterCover): boolean;
606
+ setEncounterHazard(handle: EntityHandle, source: EntityHandle, options: EncounterHazard): boolean;
607
+ setEncounterRegion(handle: EntityHandle, region: EntityHandle, options?: EncounterRegion): boolean;
608
+ removeEncounterLink(handle: EntityHandle, other: EntityHandle, kind: EncounterLinkKind): boolean;
609
+ triggerEncounter(handle: EntityHandle): boolean;
610
+ advanceEncounterPhase(handle: EntityHandle, phase: number): boolean;
611
+ setEncounterShotBudget(handle: EntityHandle, count: number): boolean;
612
+ setEncounterPhase(handle: EntityHandle, index: number, phase: EncounterPhase): boolean;
613
+ applyEncounterHit(handle: EntityHandle, source: EntityHandle, hit: EncounterHit, region?: EntityHandle | null): boolean;
614
+ attachWeapons(handle: EntityHandle, abilities: readonly WeaponAbility[], options?: WeaponOptions): boolean;
615
+ detachWeapons(handle: EntityHandle): boolean;
616
+ setWeaponInput(handle: EntityHandle, input: WeaponInput): boolean;
617
+ setWeaponMode(handle: EntityHandle, index: 0 | 1, mode: WeaponMode): boolean;
618
+ applyWeaponDamage(handle: EntityHandle, amount: number, source?: EntityHandle | null): boolean;
619
+ setWeaponSurface(handle: EntityHandle, surface: WeaponSurface): boolean;
620
+ launchWeaponProjectile(owner: EntityHandle, projectile: EntityHandle, kind: WeaponProjectileKind, options?: WeaponProjectileOptions): boolean;
621
+ getWeaponState(handle: EntityHandle): WeaponState | null;
622
+ getWeaponProjectileState(handle: EntityHandle): WeaponProjectileState | null;
623
+ getWeaponCameraIntent(handle: EntityHandle): WeaponCameraIntent | null;
624
+ attachCombat(handle: EntityHandle, abilities: readonly CombatAbility[], options?: CombatOptions): boolean;
625
+ detachCombat(handle: EntityHandle): boolean;
626
+ setCombatInput(handle: EntityHandle, input: CombatInput): boolean;
627
+ setCombatAttack(handle: EntityHandle, index: number, attack: CombatAttack): boolean;
628
+ applyCombatHit(handle: EntityHandle, hit?: CombatHit, source?: EntityHandle | null): boolean;
629
+ getCombatState(handle: EntityHandle): CombatState | null;
630
+ attachPuzzle(handle: EntityHandle, ability: PuzzleAbility, options?: PuzzleOptions): boolean;
631
+ detachPuzzle(handle: EntityHandle): boolean;
632
+ getPuzzleState(handle: EntityHandle): PuzzleState | null;
633
+ sendPuzzleCommand(handle: EntityHandle, command: PuzzleCommand): boolean;
634
+ setPuzzleLink(handle: EntityHandle, other: EntityHandle | null): boolean;
635
+ getPuzzleSegments(handle: EntityHandle): PuzzleSegment[];
636
+ attachAdventure(handle: EntityHandle, abilities: readonly AdventureAbility[], options?: AdventureOptions): boolean;
637
+ detachAdventure(handle: EntityHandle): boolean;
638
+ getAdventureState(handle: EntityHandle): AdventureState | null;
639
+ setAdventureInput(handle: EntityHandle, input: AdventureInput): boolean;
640
+ setAdventureObject(handle: EntityHandle, object: AdventureObject | null): boolean;
641
+ getAdventureObjectState(handle: EntityHandle): AdventureObjectState | null;
642
+ grantAdventureToken(handle: EntityHandle, key: number, count?: number): number;
643
+ getAdventureToken(handle: EntityHandle, key: number): number;
644
+ hasAdventureDiscovery(handle: EntityHandle, key: number): boolean;
645
+ attachEnvironment(handle: EntityHandle, abilities: readonly EnvironmentAbility[], options?: EnvironmentOptions): boolean;
646
+ detachEnvironment(handle: EntityHandle): boolean;
647
+ getEnvironmentState(handle: EntityHandle): EnvironmentState | null;
648
+ setEnvironmentInput(handle: EntityHandle, input: EnvironmentInput): boolean;
649
+ setEnvironmentVolume(handle: EntityHandle, volume: EnvironmentVolume | null): boolean;
650
+ setTubeRail(handle: EntityHandle, rail: TubeRail | null): boolean;
651
+ setTraversalSurface(handle: EntityHandle, kind: 'pole' | 'ceiling' | null): boolean;
652
+ setPossessable(handle: EntityHandle, enabled: boolean): boolean;
653
+ startPossession(owner: EntityHandle, target: EntityHandle, seconds?: number): boolean;
654
+ endPossession(owner: EntityHandle): boolean;
655
+ getPossession(owner: EntityHandle): {
656
+ target: EntityHandle;
657
+ remaining: number;
658
+ } | null;
298
659
  setPosition(handle: EntityHandle, x: number, y: number, z: number): boolean;
299
660
  setRotation(handle: EntityHandle, x: number, y: number, z: number, w: number): boolean;
300
661
  setLinearVelocity(handle: EntityHandle, x: number, y: number, z: number): boolean;
@@ -327,4 +688,4 @@ type BehaviorWorld = Simulation;
327
688
  */
328
689
  declare function createSimulation(options?: SimulationOptions): Promise<Simulation>;
329
690
 
330
- export { BehaviorRuntime, type BehaviorWorld, type EntityDefinition, type EntityHandle, MockBehaviorRuntime, Simulation, type SimulationBodyDefinition, type SimulationColliderDefinition, type SimulationEvent, type SimulationFrame, type SimulationOptions, StageBehaviorSnapshot, StageBodyInfo, StageBodyKindValue, StageBoundaryDimValue, StageColliderShape, StageDebugRender, StageFirstPersonInput, StageFirstPersonOptions, StageJumper2DOptions, StageJumper3DOptions, StagePlatformer2DOptions, StagePlatformer3DOptions, StagePose, StageRaycastHit, StageRenderSlot, StageRicochetDimValue, StageRicochetOptions, StageScreenWrapOptions, StageShooter2DOptions, StageThrusterOptions, StageTopDownOptions, StageWorldBoundaryOptions, TransformState, VelocityIntentMode, type VelocityIntentOptions, type VelocityIntentVector, WasmStageRuntime, WasmStageRuntimeOptions, clearVelocityIntent, createSimulation, setVelocityIntent };
691
+ export { ADVENTURE_EVENT_KINDS, AcrobaticsAbility, AcrobaticsOptions, AcrobaticsState, AdventureAbility, AdventureInput, AdventureObject, AdventureObjectState, AdventureOptions, AdventureState, BattleAbility, BattleAction, BattleEvent, BattleOptions, BattleState, BehaviorRuntime, type BehaviorWorld, CITY_EVENTS, COMBAT_EVENTS, CityAbility, CityDanger, CityFootprint, CityLinkKind, CityNoise, CityOptions, CityPoint, CityState, CityTarget, CityTraffic, CombatAbility, CombatAttack, CombatHit, CombatInput, CombatOptions, CombatState, DefenseAbility, DefenseAction, DefenseEvent, DefenseOptions, DefenseState, ENCOUNTER_EVENTS, EncounterAbility, EncounterCandidate, EncounterCover, EncounterHazard, EncounterHit, EncounterLinkKind, EncounterOptions, EncounterPhase, EncounterRegion, EncounterState, type EntityDefinition, type EntityHandle, EnvironmentAbility, EnvironmentInput, EnvironmentOptions, EnvironmentState, EnvironmentVolume, LifeAbility, LifeAction, LifeEvent, LifeOptions, LifeState, MatchingAbility, MatchingAction, MatchingEvent, MatchingOptions, MatchingState, MockBehaviorRuntime, PuzzleAbility, PuzzleCommand, PuzzleOptions, PuzzleSegment, PuzzleState, RacingAbility, RacingAction, RacingOptions, RacingState, RhythmAbility, RhythmAction, RhythmEvent, RhythmOptions, RhythmState, RpgAbility, RpgAction, RpgEvent, RpgOptions, RpgState, Simulation, type SimulationBodyDefinition, type SimulationColliderDefinition, type SimulationEvent, type SimulationFrame, type SimulationOptions, SkateAbility, SkateAction, SkateOptions, SkateState, SportsAbility, SportsAction, SportsOptions, SportsState, SquadAbility, SquadAction, SquadEvent, SquadOptions, SquadState, StageBehaviorSnapshot, StageBodyInfo, StageBodyKindValue, StageBoundaryDimValue, StageColliderShape, StageDebugRender, StageFirstPersonInput, StageFirstPersonOptions, StageJumper2DOptions, StageJumper3DOptions, StagePlatformer2DOptions, StagePlatformer3DOptions, StagePose, StageRaycastHit, StageRenderSlot, StageRicochetDimValue, StageRicochetOptions, StageScreenWrapOptions, StageShooter2DOptions, StageThrusterOptions, StageTopDownOptions, StageWorldBoundaryOptions, SurvivalAbility, SurvivalAction, SurvivalOptions, SurvivalState, TacticsAbility, TacticsAction, TacticsEvent, TacticsOptions, TacticsState, TransformState, TubeRail, VelocityIntentMode, type VelocityIntentOptions, type VelocityIntentVector, WEAPON_EVENTS, WasmStageRuntime, WasmStageRuntimeOptions, WeaponAbility, WeaponCameraIntent, WeaponInput, WeaponMode, WeaponOptions, WeaponProjectileKind, WeaponProjectileOptions, WeaponProjectileState, WeaponState, WeaponSurface, clearVelocityIntent, createSimulation, setVelocityIntent };