@jgengine/core 0.9.0 → 0.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +34 -3
- package/LICENSE +203 -661
- package/README.md +1 -1
- package/dist/ai/crowd.d.ts +55 -0
- package/dist/ai/crowd.js +114 -0
- package/dist/ai/flock.d.ts +5 -2
- package/dist/ai/flock.js +5 -2
- package/dist/ai/groupAssist.d.ts +1 -0
- package/dist/ai/groupAssist.js +1 -0
- package/dist/ai/heatSystem.d.ts +76 -0
- package/dist/ai/heatSystem.js +97 -0
- package/dist/ai/interestScheduler.d.ts +107 -0
- package/dist/ai/interestScheduler.js +118 -0
- package/dist/ai/jobBoard.d.ts +1 -0
- package/dist/ai/jobBoard.js +1 -0
- package/dist/ai/laneSelect.d.ts +5 -2
- package/dist/ai/laneSelect.js +5 -2
- package/dist/ai/mobBrain.d.ts +1 -0
- package/dist/ai/mobBrain.js +1 -0
- package/dist/ai/spawnDirector.d.ts +19 -1
- package/dist/ai/spawnDirector.js +53 -26
- package/dist/ai/spawnPoint.d.ts +7 -0
- package/dist/ai/spawnPoint.js +7 -0
- package/dist/ai/targetAcquisition.d.ts +84 -0
- package/dist/ai/targetAcquisition.js +92 -0
- package/dist/anim/easing.d.ts +19 -0
- package/dist/anim/easing.js +19 -0
- package/dist/anim/oscillator.d.ts +12 -0
- package/dist/anim/oscillator.js +25 -0
- package/dist/area/areaEffectField.d.ts +127 -0
- package/dist/area/areaEffectField.js +175 -0
- package/dist/area/stackPolicy.d.ts +47 -0
- package/dist/area/stackPolicy.js +99 -0
- package/dist/audio/audioFalloff.d.ts +5 -2
- package/dist/audio/music.d.ts +53 -0
- package/dist/audio/music.js +34 -0
- package/dist/audio/synth.d.ts +60 -0
- package/dist/audio/synth.js +8 -0
- package/dist/authoring.d.ts +15 -0
- package/dist/authoring.js +15 -0
- package/dist/board/laneBoard.d.ts +13 -0
- package/dist/board/laneBoard.js +13 -0
- package/dist/board/timelineBoard.d.ts +10 -0
- package/dist/board/timelineBoard.js +10 -0
- package/dist/combat/abilityKit.d.ts +18 -0
- package/dist/combat/abilityKit.js +24 -9
- package/dist/combat/animationState.d.ts +5 -0
- package/dist/combat/animationState.js +5 -0
- package/dist/combat/breakMeters.d.ts +10 -0
- package/dist/combat/breakMeters.js +10 -0
- package/dist/combat/castRunner.d.ts +5 -0
- package/dist/combat/castRunner.js +5 -0
- package/dist/combat/comboPoints.d.ts +5 -0
- package/dist/combat/comboPoints.js +5 -0
- package/dist/combat/comboString.d.ts +5 -0
- package/dist/combat/comboString.js +5 -0
- package/dist/combat/damageInterceptors.d.ts +192 -0
- package/dist/combat/damageInterceptors.js +251 -0
- package/dist/combat/damageMatchup.d.ts +68 -0
- package/dist/combat/damageMatchup.js +42 -0
- package/dist/combat/damageResolution.d.ts +63 -0
- package/dist/combat/damageResolution.js +50 -0
- package/dist/combat/death.d.ts +7 -1
- package/dist/combat/death.js +5 -0
- package/dist/combat/deathReason.d.ts +14 -0
- package/dist/combat/deathReason.js +1 -0
- package/dist/combat/defensiveWindow.d.ts +5 -0
- package/dist/combat/defensiveWindow.js +5 -0
- package/dist/combat/dotField.d.ts +47 -0
- package/dist/combat/dotField.js +52 -0
- package/dist/combat/downed.d.ts +5 -0
- package/dist/combat/downed.js +5 -0
- package/dist/combat/effects.d.ts +5 -0
- package/dist/combat/effects.js +5 -0
- package/dist/combat/encounterSequence.d.ts +258 -0
- package/dist/combat/encounterSequence.js +426 -0
- package/dist/combat/hitReaction.d.ts +57 -1
- package/dist/combat/hitReaction.js +45 -5
- package/dist/combat/magazine.d.ts +54 -0
- package/dist/combat/magazine.js +96 -0
- package/dist/combat/projectiles.d.ts +7 -2
- package/dist/combat/projectiles.js +48 -17
- package/dist/combat/receivedDamage.d.ts +117 -0
- package/dist/combat/receivedDamage.js +92 -0
- package/dist/combat/regenShield.d.ts +39 -0
- package/dist/combat/regenShield.js +49 -0
- package/dist/combat/renderCues.d.ts +51 -0
- package/dist/combat/renderCues.js +44 -0
- package/dist/combat/resourcePool.d.ts +5 -0
- package/dist/combat/resourcePool.js +5 -0
- package/dist/combat/rewardAllocation.d.ts +121 -0
- package/dist/combat/rewardAllocation.js +251 -0
- package/dist/combat/shotOrigin.d.ts +30 -1
- package/dist/combat/shotOrigin.js +70 -2
- package/dist/combat/statusApplication.d.ts +96 -0
- package/dist/combat/statusApplication.js +81 -0
- package/dist/combat/telegraph.d.ts +11 -2
- package/dist/combat/telegraph.js +11 -2
- package/dist/combat/thresholdCrossings.d.ts +85 -0
- package/dist/combat/thresholdCrossings.js +116 -0
- package/dist/combat.d.ts +34 -0
- package/dist/combat.js +34 -0
- package/dist/commands/commandRegistry.d.ts +11 -0
- package/dist/commands/commandRegistry.js +9 -2
- package/dist/crafting/crop.d.ts +18 -0
- package/dist/crafting/crop.js +18 -0
- package/dist/crafting/production.d.ts +5 -0
- package/dist/crafting/production.js +5 -0
- package/dist/devtools/rewriteTunables.d.ts +17 -0
- package/dist/devtools/rewriteTunables.js +276 -0
- package/dist/devtools/saveEndpoint.d.ts +46 -0
- package/dist/devtools/saveEndpoint.js +48 -0
- package/dist/devtools/transformTunables.d.ts +3 -0
- package/dist/devtools/transformTunables.js +3 -0
- package/dist/devtools/tunableSchema.d.ts +31 -0
- package/dist/devtools/tunableSchema.js +31 -0
- package/dist/economy/currency.d.ts +12 -1
- package/dist/economy/currency.js +12 -1
- package/dist/economy/listingBook.d.ts +91 -0
- package/dist/economy/listingBook.js +144 -0
- package/dist/economy/resourceLedger.d.ts +222 -0
- package/dist/economy/resourceLedger.js +353 -0
- package/dist/economy/sharedWallet.d.ts +14 -0
- package/dist/economy/sharedWallet.js +14 -0
- package/dist/economy/techTree.d.ts +12 -0
- package/dist/economy/techTree.js +12 -0
- package/dist/economy/wallet.d.ts +26 -2
- package/dist/economy/wallet.js +35 -6
- package/dist/editor/commands.d.ts +248 -0
- package/dist/editor/commands.js +865 -0
- package/dist/editor/document.d.ts +186 -0
- package/dist/editor/document.js +884 -0
- package/dist/editor/grid.d.ts +229 -0
- package/dist/editor/grid.js +366 -0
- package/dist/editor/gridAdapters.d.ts +80 -0
- package/dist/editor/gridAdapters.js +134 -0
- package/dist/editor/index.d.ts +97 -0
- package/dist/editor/index.js +10 -0
- package/dist/editor/liveSync.d.ts +127 -0
- package/dist/editor/liveSync.js +249 -0
- package/dist/editor/runtimeInspector.d.ts +88 -0
- package/dist/editor/runtimeInspector.js +239 -0
- package/dist/editor/types.d.ts +175 -0
- package/dist/editor/types.js +29 -0
- package/dist/faction/reputation.d.ts +5 -0
- package/dist/faction/reputation.js +5 -0
- package/dist/format/distance.d.ts +17 -0
- package/dist/format/distance.js +18 -0
- package/dist/format/duration.d.ts +27 -0
- package/dist/format/duration.js +45 -0
- package/dist/format/speed.d.ts +17 -0
- package/dist/format/speed.js +25 -0
- package/dist/game/connectedPlayers.d.ts +30 -0
- package/dist/game/connectedPlayers.js +21 -0
- package/dist/game/cosmetics.d.ts +9 -0
- package/dist/game/cosmetics.js +16 -0
- package/dist/game/defineGame.d.ts +141 -2
- package/dist/game/defineGame.js +39 -1
- package/dist/game/defineSystem.d.ts +88 -0
- package/dist/game/defineSystem.js +45 -0
- package/dist/game/dialogue.d.ts +33 -0
- package/dist/game/dialogue.js +21 -0
- package/dist/game/events.d.ts +50 -13
- package/dist/game/events.js +5 -0
- package/dist/game/feed.d.ts +33 -0
- package/dist/game/feed.js +35 -2
- package/dist/game/gamePhase.d.ts +11 -0
- package/dist/game/gamePhase.js +16 -0
- package/dist/game/keyValueStore.d.ts +25 -0
- package/dist/game/keyValueStore.js +61 -0
- package/dist/game/leaderboard.d.ts +5 -0
- package/dist/game/leaderboard.js +5 -0
- package/dist/game/levelSequence.d.ts +24 -2
- package/dist/game/levelSequence.js +51 -2
- package/dist/game/loadout.d.ts +5 -0
- package/dist/game/loadout.js +5 -0
- package/dist/game/lootFilter.d.ts +2 -0
- package/dist/game/lootFilter.js +2 -0
- package/dist/game/lootPipeline.d.ts +164 -0
- package/dist/game/lootPipeline.js +216 -0
- package/dist/game/lootTable.d.ts +21 -0
- package/dist/game/lootTable.js +15 -4
- package/dist/game/modelAnimation.d.ts +8 -0
- package/dist/game/modelAnimation.js +18 -0
- package/dist/game/objectives.d.ts +43 -0
- package/dist/game/objectives.js +36 -0
- package/dist/game/paramLayers.d.ts +148 -0
- package/dist/game/paramLayers.js +185 -0
- package/dist/game/ping.d.ts +5 -0
- package/dist/game/ping.js +5 -0
- package/dist/game/playableGame.d.ts +160 -12
- package/dist/game/quest.d.ts +8 -0
- package/dist/game/quest.js +29 -0
- package/dist/game/race.d.ts +141 -0
- package/dist/game/race.js +169 -0
- package/dist/game/recordBook.d.ts +5 -5
- package/dist/game/recordBook.js +4 -1
- package/dist/game/ruleSelection.d.ts +75 -0
- package/dist/game/ruleSelection.js +127 -0
- package/dist/game/runDraft.d.ts +5 -0
- package/dist/game/runDraft.js +5 -0
- package/dist/game/saveStore.d.ts +111 -0
- package/dist/game/saveStore.js +312 -0
- package/dist/game/snapshotHistory.d.ts +67 -0
- package/dist/game/snapshotHistory.js +95 -0
- package/dist/game/social.d.ts +38 -1
- package/dist/game/social.js +71 -0
- package/dist/game/spawnPoints.d.ts +5 -0
- package/dist/game/spawnPoints.js +5 -0
- package/dist/game/systemRuntime.d.ts +50 -0
- package/dist/game/systemRuntime.js +157 -0
- package/dist/game/systemSchedule.d.ts +72 -0
- package/dist/game/systemSchedule.js +242 -0
- package/dist/game/toasts.d.ts +43 -0
- package/dist/game/toasts.js +44 -0
- package/dist/game/trade.d.ts +10 -0
- package/dist/game/trade.js +10 -0
- package/dist/game/unlocks.d.ts +8 -0
- package/dist/game/unlocks.js +16 -0
- package/dist/game/vfxInstance.d.ts +138 -0
- package/dist/game/vfxInstance.js +96 -0
- package/dist/game/worldItem.d.ts +17 -4
- package/dist/game/worldItem.js +17 -4
- package/dist/gameplay.d.ts +91 -0
- package/dist/gameplay.js +91 -0
- package/dist/index.d.ts +5 -7
- package/dist/index.js +5 -7
- package/dist/input/actionBindings.d.ts +24 -5
- package/dist/input/actionBindings.js +23 -5
- package/dist/input/axisInput.d.ts +13 -1
- package/dist/input/axisInput.js +22 -1
- package/dist/input/controlGroups.d.ts +67 -0
- package/dist/input/controlGroups.js +41 -0
- package/dist/input/touchScheme.d.ts +82 -6
- package/dist/input/touchScheme.js +123 -10
- package/dist/interaction/contextMenu.d.ts +1 -0
- package/dist/interaction/contextMenu.js +1 -0
- package/dist/interaction/lockpick.d.ts +61 -0
- package/dist/interaction/lockpick.js +168 -0
- package/dist/interaction/proximityPrompt.d.ts +5 -1
- package/dist/interaction/proximityPrompt.js +5 -3
- package/dist/interaction/qte.d.ts +5 -0
- package/dist/interaction/qte.js +5 -0
- package/dist/interaction/skillCheck.d.ts +5 -0
- package/dist/interaction/skillCheck.js +5 -0
- package/dist/inventory/inventoryModel.d.ts +12 -0
- package/dist/inventory/inventoryModel.js +12 -0
- package/dist/inventory/shapedGrid.d.ts +16 -0
- package/dist/inventory/shapedGrid.js +16 -0
- package/dist/inventory/slotModel.d.ts +10 -0
- package/dist/inventory/slotModel.js +10 -0
- package/dist/item/durability.d.ts +5 -0
- package/dist/item/durability.js +5 -0
- package/dist/item/itemIdentity.d.ts +171 -0
- package/dist/item/itemIdentity.js +138 -0
- package/dist/item/itemInstanceRegistry.d.ts +32 -0
- package/dist/item/itemInstanceRegistry.js +34 -0
- package/dist/item/itemgen.d.ts +163 -0
- package/dist/item/itemgen.js +151 -0
- package/dist/item/modularItem.d.ts +5 -0
- package/dist/item/modularItem.js +5 -0
- package/dist/item/use.d.ts +5 -0
- package/dist/item/use.js +5 -0
- package/dist/item/useBehavior.d.ts +142 -0
- package/dist/item/useBehavior.js +105 -0
- package/dist/item/weapon.d.ts +5 -0
- package/dist/item/weapon.js +5 -0
- package/dist/math/scalar.d.ts +25 -0
- package/dist/math/scalar.js +47 -0
- package/dist/meta/changelog.d.ts +4 -1
- package/dist/meta/changelog.js +36 -1
- package/dist/movement/avoidance.d.ts +45 -0
- package/dist/movement/avoidance.js +123 -0
- package/dist/movement/cameraRig.d.ts +8 -0
- package/dist/movement/cameraRig.js +8 -0
- package/dist/movement/dash.d.ts +11 -0
- package/dist/movement/dash.js +11 -0
- package/dist/movement/formation.d.ts +135 -0
- package/dist/movement/formation.js +194 -0
- package/dist/movement/glideModel.d.ts +5 -0
- package/dist/movement/glideModel.js +5 -0
- package/dist/movement/grappleSwing.d.ts +5 -0
- package/dist/movement/grappleSwing.js +5 -0
- package/dist/movement/leaderTrail.d.ts +5 -0
- package/dist/movement/leaderTrail.js +5 -0
- package/dist/movement/movementModel.d.ts +38 -7
- package/dist/movement/movementModel.js +54 -13
- package/dist/movement/playerMovement.d.ts +41 -0
- package/dist/movement/playerMovement.js +236 -0
- package/dist/movement/poseState.d.ts +13 -0
- package/dist/movement/poseState.js +16 -0
- package/dist/movement/steering.d.ts +8 -0
- package/dist/movement/steering.js +18 -0
- package/dist/multiplayer/combatSnapshot.d.ts +3 -0
- package/dist/multiplayer/combatSnapshot.js +3 -0
- package/dist/multiplayer/lagCompensation.d.ts +5 -0
- package/dist/multiplayer/lagCompensation.js +5 -0
- package/dist/multiplayer/presenceModel.d.ts +9 -1
- package/dist/multiplayer/presenceModel.js +9 -1
- package/dist/multiplayer/simultaneousCommit.d.ts +3 -0
- package/dist/multiplayer/simultaneousCommit.js +3 -0
- package/dist/multiplayer.d.ts +11 -0
- package/dist/multiplayer.js +11 -0
- package/dist/nav/pathFollow.d.ts +57 -0
- package/dist/nav/pathFollow.js +109 -0
- package/dist/orders/orderKinds.d.ts +156 -0
- package/dist/orders/orderKinds.js +197 -0
- package/dist/orders/orderQueue.d.ts +208 -0
- package/dist/orders/orderQueue.js +211 -0
- package/dist/physics/drivableVehicle.d.ts +29 -0
- package/dist/physics/drivableVehicle.js +16 -0
- package/dist/physics/kinematicVehicle.d.ts +21 -1
- package/dist/physics/kinematicVehicle.js +23 -8
- package/dist/physics/physicsWorld.d.ts +24 -12
- package/dist/physics/physicsWorld.js +11 -5
- package/dist/physics/radialImpulse.d.ts +25 -0
- package/dist/physics/radialImpulse.js +27 -0
- package/dist/procedural.d.ts +3 -0
- package/dist/procedural.js +3 -0
- package/dist/progression/statGraph.d.ts +116 -0
- package/dist/progression/statGraph.js +318 -0
- package/dist/puzzle/cellGrid.d.ts +9 -0
- package/dist/puzzle/cellGrid.js +9 -0
- package/dist/puzzle/fallingPiece.d.ts +9 -0
- package/dist/puzzle/fallingPiece.js +9 -0
- package/dist/puzzle/nonogram.d.ts +39 -0
- package/dist/puzzle/nonogram.js +136 -0
- package/dist/random/nameGen.d.ts +5 -0
- package/dist/random/nameGen.js +5 -0
- package/dist/random/pick.d.ts +8 -0
- package/dist/random/pick.js +31 -0
- package/dist/random/rng.d.ts +24 -0
- package/dist/random/rng.js +30 -8
- package/dist/random/seedLink.d.ts +4 -0
- package/dist/random/seedLink.js +4 -0
- package/dist/relation/keyedValues.d.ts +54 -0
- package/dist/relation/keyedValues.js +115 -0
- package/dist/relation/thresholds.d.ts +62 -0
- package/dist/relation/thresholds.js +62 -0
- package/dist/render/color.d.ts +12 -0
- package/dist/render/color.js +26 -0
- package/dist/render/lookPreset.d.ts +41 -0
- package/dist/render/lookPreset.js +29 -0
- package/dist/render/postProcessing.d.ts +76 -0
- package/dist/render/postProcessing.js +21 -0
- package/dist/rules/predicate.d.ts +53 -0
- package/dist/rules/predicate.js +64 -0
- package/dist/rules/ruleEffects.d.ts +38 -0
- package/dist/rules/ruleEffects.js +37 -0
- package/dist/rules/triggeredRules.d.ts +160 -0
- package/dist/rules/triggeredRules.js +241 -0
- package/dist/runtime/adapter.d.ts +58 -0
- package/dist/runtime/adapter.js +54 -5
- package/dist/runtime/cameraDirector.d.ts +1 -0
- package/dist/runtime/cameraDirector.js +1 -0
- package/dist/runtime/commandRunner.d.ts +1 -0
- package/dist/runtime/commandRunner.js +1 -0
- package/dist/runtime/context/combatFx.d.ts +23 -0
- package/dist/runtime/context/combatFx.js +161 -0
- package/dist/runtime/context/registries.d.ts +13 -0
- package/dist/runtime/context/registries.js +84 -0
- package/dist/runtime/context/worldItems.d.ts +21 -0
- package/dist/runtime/context/worldItems.js +37 -0
- package/dist/runtime/descriptors/baseline.d.ts +48 -0
- package/dist/runtime/descriptors/baseline.js +134 -0
- package/dist/runtime/descriptors/features.d.ts +74 -0
- package/dist/runtime/descriptors/features.js +281 -0
- package/dist/runtime/gameContext.d.ts +163 -19
- package/dist/runtime/gameContext.js +385 -339
- package/dist/runtime/gameRuntime.d.ts +1 -0
- package/dist/runtime/gameRuntime.js +1 -0
- package/dist/runtime/headlessRunner.d.ts +60 -0
- package/dist/runtime/headlessRunner.js +44 -0
- package/dist/runtime/hostPersistence.d.ts +12 -0
- package/dist/runtime/hostPersistence.js +12 -0
- package/dist/runtime/hostedGameRunner.d.ts +54 -0
- package/dist/runtime/hostedGameRunner.js +85 -0
- package/dist/runtime/hostedWorldSession.d.ts +73 -0
- package/dist/runtime/hostedWorldSession.js +64 -0
- package/dist/runtime/inputSnapshot.d.ts +21 -3
- package/dist/runtime/inputSnapshot.js +8 -2
- package/dist/runtime/motionIntents.d.ts +12 -1
- package/dist/runtime/motionIntents.js +26 -1
- package/dist/runtime/perContext.d.ts +15 -0
- package/dist/runtime/perContext.js +21 -0
- package/dist/runtime/runtimeSave.d.ts +79 -0
- package/dist/runtime/runtimeSave.js +105 -0
- package/dist/runtime/save.d.ts +4 -0
- package/dist/runtime/save.js +4 -0
- package/dist/runtime/snapshot.d.ts +7 -0
- package/dist/runtime/snapshot.js +7 -0
- package/dist/runtime/visibility.d.ts +2 -1
- package/dist/runtime/visibility.js +2 -1
- package/dist/runtime/worldChannel.d.ts +62 -0
- package/dist/runtime/worldChannel.js +114 -0
- package/dist/runtime/worldMirror.d.ts +36 -0
- package/dist/runtime/worldMirror.js +44 -0
- package/dist/runtime/worldProjection.d.ts +47 -0
- package/dist/runtime/worldProjection.js +52 -0
- package/dist/runtime/worldReplication.d.ts +69 -0
- package/dist/runtime/worldReplication.js +217 -0
- package/dist/runtime/worldSnapshot.d.ts +44 -0
- package/dist/runtime/worldSnapshot.js +30 -0
- package/dist/scene/assetCatalog.d.ts +22 -0
- package/dist/scene/assetCatalog.js +4 -0
- package/dist/scene/assetDiagnostics.d.ts +69 -0
- package/dist/scene/assetDiagnostics.js +110 -0
- package/dist/scene/assetGenerator.d.ts +65 -0
- package/dist/scene/assetGenerator.js +64 -0
- package/dist/scene/assetSpace.d.ts +137 -0
- package/dist/scene/assetSpace.js +259 -0
- package/dist/scene/authoredTriggers.d.ts +169 -0
- package/dist/scene/authoredTriggers.js +340 -0
- package/dist/scene/behaviorRuntime.d.ts +75 -0
- package/dist/scene/behaviorRuntime.js +217 -0
- package/dist/scene/behaviors.d.ts +14 -2
- package/dist/scene/behaviors.js +7 -2
- package/dist/scene/bodyBind.d.ts +60 -0
- package/dist/scene/bodyBind.js +51 -0
- package/dist/scene/builtinSceneKinds.d.ts +5 -0
- package/dist/scene/builtinSceneKinds.js +62 -0
- package/dist/scene/colliders.d.ts +18 -0
- package/dist/scene/colliders.js +61 -1
- package/dist/scene/entityStats.d.ts +13 -0
- package/dist/scene/entityStats.js +30 -0
- package/dist/scene/entityStore.d.ts +41 -1
- package/dist/scene/entityStore.js +75 -0
- package/dist/scene/facing.d.ts +18 -0
- package/dist/scene/facing.js +26 -0
- package/dist/scene/modelSockets.d.ts +33 -0
- package/dist/scene/modelSockets.js +29 -0
- package/dist/scene/objectQuery.d.ts +2 -0
- package/dist/scene/objectQuery.js +2 -0
- package/dist/scene/objectStore.d.ts +4 -0
- package/dist/scene/objectStore.js +6 -0
- package/dist/scene/possession.d.ts +8 -0
- package/dist/scene/possession.js +14 -0
- package/dist/scene/roster.d.ts +3 -0
- package/dist/scene/roster.js +12 -0
- package/dist/scene/sceneKinds.d.ts +240 -0
- package/dist/scene/sceneKinds.js +214 -0
- package/dist/scene/sceneOwnership.d.ts +169 -0
- package/dist/scene/sceneOwnership.js +179 -0
- package/dist/scene/selectionBookmarks.d.ts +93 -0
- package/dist/scene/selectionBookmarks.js +122 -0
- package/dist/scene/vehicleSeat.d.ts +68 -0
- package/dist/scene/vehicleSeat.js +59 -0
- package/dist/sensor/concealment.d.ts +3 -0
- package/dist/sensor/concealment.js +3 -0
- package/dist/sensor/freezeMonitor.d.ts +1 -0
- package/dist/sensor/freezeMonitor.js +1 -0
- package/dist/sensor/frustumSensor.d.ts +7 -3
- package/dist/sensor/frustumSensor.js +7 -3
- package/dist/sensor/hiddenStateProbe.d.ts +5 -2
- package/dist/sensor/hiddenStateProbe.js +5 -2
- package/dist/sensor/recordingBuffer.d.ts +2 -1
- package/dist/sensor/recordingBuffer.js +2 -1
- package/dist/sensor/replayLoop.d.ts +6 -2
- package/dist/sensor/replayLoop.js +6 -2
- package/dist/sensor/revealQuery.d.ts +2 -1
- package/dist/sensor/revealQuery.js +2 -1
- package/dist/sensor/visionCone.d.ts +10 -3
- package/dist/sensor/visionCone.js +10 -3
- package/dist/session/contestedChannel.d.ts +1 -0
- package/dist/session/contestedChannel.js +1 -0
- package/dist/session/extraction.d.ts +1 -0
- package/dist/session/extraction.js +1 -0
- package/dist/session/roles.d.ts +6 -0
- package/dist/session/roles.js +6 -0
- package/dist/session/roundState.d.ts +8 -0
- package/dist/session/roundState.js +2 -0
- package/dist/settings/settingsModel.d.ts +1 -0
- package/dist/settings/settingsModel.js +1 -0
- package/dist/stats/accumulatorMeter.d.ts +6 -0
- package/dist/stats/accumulatorMeter.js +6 -0
- package/dist/stats/eventMeter.d.ts +5 -0
- package/dist/stats/eventMeter.js +5 -0
- package/dist/stats/rollCheck.d.ts +5 -0
- package/dist/stats/rollCheck.js +5 -0
- package/dist/stats/statModifiers.d.ts +5 -0
- package/dist/stats/statModifiers.js +5 -0
- package/dist/store/defineKeyedStore.d.ts +38 -0
- package/dist/store/defineKeyedStore.js +42 -0
- package/dist/store/defineStore.d.ts +33 -0
- package/dist/store/defineStore.js +35 -0
- package/dist/store/observableKeyedStore.d.ts +9 -0
- package/dist/store/observableKeyedStore.js +43 -2
- package/dist/survival/decayMeter.d.ts +55 -0
- package/dist/survival/decayMeter.js +130 -55
- package/dist/survival/moodle.d.ts +2 -0
- package/dist/survival/regionHealth.d.ts +6 -0
- package/dist/survival/regionHealth.js +5 -0
- package/dist/tactics/fallingGrid.d.ts +6 -4
- package/dist/tactics/fallingGrid.js +6 -4
- package/dist/tactics/predictiveQuery.d.ts +3 -0
- package/dist/tactics/predictiveQuery.js +3 -0
- package/dist/tactics/snapshot.d.ts +2 -0
- package/dist/tactics/snapshot.js +2 -0
- package/dist/tactics/surface.d.ts +1 -0
- package/dist/tactics/surface.js +1 -0
- package/dist/tactics/tacticalGrid.d.ts +1 -0
- package/dist/tactics/tacticalGrid.js +1 -0
- package/dist/time/beatClock.d.ts +14 -4
- package/dist/time/beatClock.js +14 -4
- package/dist/time/calendarClock.d.ts +3 -0
- package/dist/time/calendarClock.js +3 -0
- package/dist/time/idleProgress.d.ts +4 -0
- package/dist/time/idleProgress.js +4 -0
- package/dist/time/simClock.d.ts +2 -0
- package/dist/time/simClock.js +20 -5
- package/dist/ui/actionModel.d.ts +110 -0
- package/dist/ui/actionModel.js +159 -0
- package/dist/ui/gameLayout.d.ts +144 -0
- package/dist/ui/gameLayout.js +148 -0
- package/dist/ui/hudDocument.d.ts +114 -0
- package/dist/ui/hudDocument.js +220 -0
- package/dist/ui/hudLayout.d.ts +33 -1
- package/dist/ui/hudLayout.js +204 -17
- package/dist/ui/orientation.d.ts +39 -0
- package/dist/ui/orientation.js +49 -0
- package/dist/ui/selectionModel.d.ts +92 -0
- package/dist/ui/selectionModel.js +88 -0
- package/dist/ui/swingTimer.d.ts +42 -0
- package/dist/ui/swingTimer.js +38 -0
- package/dist/ui/tooltipModel.d.ts +63 -0
- package/dist/ui/tooltipModel.js +82 -0
- package/dist/ui.d.ts +15 -0
- package/dist/ui.js +15 -0
- package/dist/visibility/bounds.d.ts +8 -1
- package/dist/visibility/bounds.js +8 -1
- package/dist/visibility/frustum.d.ts +12 -3
- package/dist/visibility/frustum.js +12 -3
- package/dist/visibility/spatialIndex.js +34 -20
- package/dist/work/jobQueue.d.ts +201 -0
- package/dist/work/jobQueue.js +253 -0
- package/dist/work/unitTraining.d.ts +58 -0
- package/dist/work/unitTraining.js +52 -0
- package/dist/world/authoredObjects.d.ts +58 -0
- package/dist/world/authoredObjects.js +69 -0
- package/dist/world/buildingGenerator.d.ts +18 -0
- package/dist/world/buildingGenerator.js +62 -0
- package/dist/world/buildings.d.ts +5 -0
- package/dist/world/buildings.js +5 -0
- package/dist/world/catenary.d.ts +22 -0
- package/dist/world/catenary.js +69 -0
- package/dist/world/environmentSummary.d.ts +11 -2
- package/dist/world/environmentSummary.js +11 -1
- package/dist/world/features.d.ts +244 -7
- package/dist/world/features.js +92 -4
- package/dist/world/footprintGrid.d.ts +59 -0
- package/dist/world/footprintGrid.js +141 -0
- package/dist/world/geometry.d.ts +64 -0
- package/dist/world/geometry.js +94 -0
- package/dist/world/grassKind.d.ts +51 -0
- package/dist/world/grassKind.js +101 -0
- package/dist/world/pathInstances.d.ts +27 -0
- package/dist/world/pathInstances.js +27 -0
- package/dist/world/pathTerrain.d.ts +80 -0
- package/dist/world/pathTerrain.js +142 -0
- package/dist/world/placeAsset.d.ts +81 -0
- package/dist/world/placeAsset.js +77 -0
- package/dist/world/placement.d.ts +4 -0
- package/dist/world/placement.js +4 -0
- package/dist/world/placementController.d.ts +6 -0
- package/dist/world/placementController.js +6 -0
- package/dist/world/polyline.d.ts +34 -0
- package/dist/world/polyline.js +81 -0
- package/dist/world/roads.d.ts +55 -0
- package/dist/world/roads.js +184 -0
- package/dist/world/scatterRegion.d.ts +164 -0
- package/dist/world/scatterRegion.js +409 -0
- package/dist/world/sceneShapes.d.ts +43 -0
- package/dist/world/sceneShapes.js +1 -0
- package/dist/world/segment.d.ts +27 -0
- package/dist/world/segment.js +43 -0
- package/dist/world/soilKind.d.ts +48 -0
- package/dist/world/soilKind.js +92 -0
- package/dist/world/spatialSample.d.ts +241 -0
- package/dist/world/spatialSample.js +465 -0
- package/dist/world/streets.d.ts +80 -0
- package/dist/world/streets.js +144 -0
- package/dist/world/terraform.d.ts +213 -1
- package/dist/world/terraform.js +655 -20
- package/dist/world/terrain.d.ts +138 -12
- package/dist/world/terrain.js +346 -28
- package/dist/world/terrainGuides.d.ts +182 -0
- package/dist/world/terrainGuides.js +343 -0
- package/dist/world/vec2.d.ts +81 -0
- package/dist/world/vec2.js +128 -0
- package/dist/world/vec3.d.ts +49 -0
- package/dist/world/vec3.js +76 -0
- package/dist/world/vegetation.d.ts +71 -0
- package/dist/world/vegetation.js +151 -0
- package/dist/world/visibilityField.d.ts +154 -0
- package/dist/world/visibilityField.js +271 -0
- package/dist/world/volumetricClouds.d.ts +52 -0
- package/dist/world/volumetricClouds.js +43 -0
- package/dist/world/walls.d.ts +9 -0
- package/dist/world/walls.js +9 -0
- package/dist/world/waterKind.d.ts +55 -0
- package/dist/world/waterKind.js +99 -0
- package/dist/world.d.ts +132 -0
- package/dist/world.js +132 -0
- package/package.json +32 -8
- package/skills/jgengine/SKILL.md +51 -0
- package/skills/jgengine/api.md +434 -0
- package/skills/jgengine/capabilities.md +29 -0
- package/skills/jgengine/reference-cartridge.md +72 -0
- package/skills/jgengine-combat/SKILL.md +34 -0
- package/skills/jgengine-combat/api.md +549 -0
- package/skills/jgengine-combat/capabilities.md +169 -0
- package/skills/jgengine-combat/reference.md +98 -0
- package/skills/jgengine-gameplay/SKILL.md +39 -0
- package/skills/jgengine-gameplay/api.md +1794 -0
- package/skills/jgengine-gameplay/capabilities.md +378 -0
- package/skills/jgengine-gameplay/reference-systems.md +60 -0
- package/skills/jgengine-world/SKILL.md +38 -0
- package/skills/jgengine-world/api.md +2652 -0
- package/skills/jgengine-world/capabilities.md +370 -0
- package/skills/jgengine-world/reference.md +222 -0
- package/dist/cartridge/runtime.d.ts +0 -15
- package/dist/cartridge/runtime.js +0 -556
- package/dist/cartridge/spec.d.ts +0 -188
- package/dist/cartridge/spec.js +0 -19
- package/dist/cartridge/validate.d.ts +0 -2
- package/dist/cartridge/validate.js +0 -78
- package/dist/store/engineStore.d.ts +0 -22
- package/dist/store/engineStore.js +0 -50
- package/dist/store/features.d.ts +0 -10
- package/dist/store/features.js +0 -23
- package/llms.txt +0 -4983
package/dist/combat/effects.d.ts
CHANGED
|
@@ -69,4 +69,9 @@ export interface EffectSystem {
|
|
|
69
69
|
preview(input: SingleTargetEffectInput): number;
|
|
70
70
|
applyEffect(input: EffectInput): EffectResult[];
|
|
71
71
|
}
|
|
72
|
+
/**
|
|
73
|
+
* Apply, stack, and tick timed status effects — buffs, debuffs, DoTs — on entities.
|
|
74
|
+
*
|
|
75
|
+
* @capability status-effects apply and tick timed status effects and buffs on entities
|
|
76
|
+
*/
|
|
72
77
|
export declare function createEffectSystem(deps: EffectSystemDeps): EffectSystem;
|
package/dist/combat/effects.js
CHANGED
|
@@ -21,6 +21,11 @@ export function resolveAreaTargets(spatial, input, accept) {
|
|
|
21
21
|
return targets;
|
|
22
22
|
}
|
|
23
23
|
const DEFAULT_DRAIN_STAT = "damage";
|
|
24
|
+
/**
|
|
25
|
+
* Apply, stack, and tick timed status effects — buffs, debuffs, DoTs — on entities.
|
|
26
|
+
*
|
|
27
|
+
* @capability status-effects apply and tick timed status effects and buffs on entities
|
|
28
|
+
*/
|
|
24
29
|
export function createEffectSystem(deps) {
|
|
25
30
|
function resolveRule(instanceId, effect) {
|
|
26
31
|
return deps.resolveReceive(instanceId)?.[effect] ?? null;
|
|
@@ -0,0 +1,258 @@
|
|
|
1
|
+
import type { NavPoint } from "../nav/navGrid.js";
|
|
2
|
+
/**
|
|
3
|
+
* Lifecycle status of one phase in an encounter sequence: waiting to run, currently
|
|
4
|
+
* running, or finished. Groups and leaves share the same three states.
|
|
5
|
+
*/
|
|
6
|
+
export type PhaseStatus = "pending" | "active" | "complete";
|
|
7
|
+
/**
|
|
8
|
+
* Reference to a registered completion predicate: a `kind` naming the evaluator plus
|
|
9
|
+
* opaque `params` the evaluator reads. The sequence core never interprets `params`; the
|
|
10
|
+
* predicate registered under `kind` does.
|
|
11
|
+
*/
|
|
12
|
+
export interface PhaseCompletionRef {
|
|
13
|
+
kind: string;
|
|
14
|
+
params?: Readonly<Record<string, unknown>>;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Reference to a registered spawn provider invoked when a phase is entered: a `kind`
|
|
18
|
+
* naming the provider plus opaque `params`. Spawning is one optional node adapter — a
|
|
19
|
+
* phase without `spawn` simply emits no spawn requests.
|
|
20
|
+
*/
|
|
21
|
+
export interface PhaseSpawnRef {
|
|
22
|
+
kind: string;
|
|
23
|
+
params?: Readonly<Record<string, unknown>>;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* One node in an encounter sequence tree. `data` is caller-owned and opaque to the core.
|
|
27
|
+
* A node with `children` is a group whose children run in order; a node without is a leaf.
|
|
28
|
+
* `completion` gates when the node finishes, `spawn` names an on-enter provider, and
|
|
29
|
+
* `repeat` re-runs the node's subtree that many extra times before advancing.
|
|
30
|
+
*/
|
|
31
|
+
export interface EncounterPhase<TData = unknown> {
|
|
32
|
+
/** Stable, tree-unique id. Survives serialization and phase injection. */
|
|
33
|
+
id: string;
|
|
34
|
+
data?: TData;
|
|
35
|
+
children?: readonly EncounterPhase<TData>[];
|
|
36
|
+
/**
|
|
37
|
+
* Completion predicate reference. A leaf without one completes immediately (a marker or
|
|
38
|
+
* spawn-only phase); a group without one completes once all its children complete.
|
|
39
|
+
*/
|
|
40
|
+
completion?: PhaseCompletionRef;
|
|
41
|
+
spawn?: PhaseSpawnRef;
|
|
42
|
+
/** Extra runs of this node's subtree before advancing. Default 0 (runs once). */
|
|
43
|
+
repeat?: number;
|
|
44
|
+
}
|
|
45
|
+
/** Per-node runtime record. Serializable — holds no functions or tree references. */
|
|
46
|
+
export interface PhaseRuntime {
|
|
47
|
+
status: PhaseStatus;
|
|
48
|
+
/** 0-based repeat iteration currently running. */
|
|
49
|
+
iteration: number;
|
|
50
|
+
/** `elapsed` at which the node was most recently entered, for time-based predicates. */
|
|
51
|
+
enteredAt: number;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Full serializable encounter state: the working phase tree (including any injected
|
|
55
|
+
* phases), a per-node runtime map, the active path from root to the deepest open node,
|
|
56
|
+
* accumulated time, and whether the sequence has finished. Round-trips through JSON with
|
|
57
|
+
* no behavioral change; the registries live in {@link EncounterConfig}, not here.
|
|
58
|
+
*/
|
|
59
|
+
export interface EncounterState<TData = unknown> {
|
|
60
|
+
roots: EncounterPhase<TData>[];
|
|
61
|
+
nodes: Record<string, PhaseRuntime>;
|
|
62
|
+
/** Ids from a root down to the deepest open node; empty before start and once done. */
|
|
63
|
+
activePath: string[];
|
|
64
|
+
elapsed: number;
|
|
65
|
+
started: boolean;
|
|
66
|
+
done: boolean;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Caller-supplied signals a completion predicate reads. Every field is optional and
|
|
70
|
+
* opaque to the core: `counts` of tagged live entities, continuous `metrics`, cumulative
|
|
71
|
+
* `events`, and boolean `flags`. Deterministic given the same values.
|
|
72
|
+
*/
|
|
73
|
+
export interface EncounterSignals {
|
|
74
|
+
counts?: Readonly<Record<string, number>>;
|
|
75
|
+
metrics?: Readonly<Record<string, number>>;
|
|
76
|
+
events?: Readonly<Record<string, number>>;
|
|
77
|
+
flags?: Readonly<Record<string, boolean>>;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Context passed to {@link startEncounter} / {@link updateEncounter}: the caller signals
|
|
81
|
+
* predicates evaluate against, plus named `spawnPoints` catalogs (authored in the scene,
|
|
82
|
+
* referenced by key) that spawn providers place against. Never holds coordinates the
|
|
83
|
+
* sequence itself owns.
|
|
84
|
+
*/
|
|
85
|
+
export interface EncounterContext {
|
|
86
|
+
signals?: EncounterSignals;
|
|
87
|
+
/** Named lists of authored scene spawn points, referenced by spawn providers by key. */
|
|
88
|
+
spawnPoints?: Readonly<Record<string, readonly NavPoint[]>>;
|
|
89
|
+
}
|
|
90
|
+
/** Evaluation context a completion predicate receives for the node under test. */
|
|
91
|
+
export interface PredicateContext {
|
|
92
|
+
phaseId: string;
|
|
93
|
+
iteration: number;
|
|
94
|
+
/** Total accumulated encounter time. */
|
|
95
|
+
elapsed: number;
|
|
96
|
+
/** Time since this node was entered (0 on the tick it is entered). */
|
|
97
|
+
phaseElapsed: number;
|
|
98
|
+
signals: EncounterSignals;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* A completion predicate: pure and deterministic, returns true when the node it gates is
|
|
102
|
+
* finished. Registered under a `kind` and reused across phases with different `params`.
|
|
103
|
+
*/
|
|
104
|
+
export type CompletionPredicate = (params: Readonly<Record<string, unknown>>, ctx: PredicateContext) => boolean;
|
|
105
|
+
/** A single spawn request a provider emits; `ref` is caller-defined, `point` optional. */
|
|
106
|
+
export interface EncounterSpawnRequest {
|
|
107
|
+
ref: string;
|
|
108
|
+
point?: NavPoint;
|
|
109
|
+
data?: unknown;
|
|
110
|
+
}
|
|
111
|
+
/** Evaluation context a spawn provider receives when its phase is entered. */
|
|
112
|
+
export interface SpawnProviderContext {
|
|
113
|
+
phaseId: string;
|
|
114
|
+
iteration: number;
|
|
115
|
+
elapsed: number;
|
|
116
|
+
spawnPoints: Readonly<Record<string, readonly NavPoint[]>>;
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* A spawn provider: given the phase's `params` and context, returns the spawn requests to
|
|
120
|
+
* emit on enter. Deterministic; reads authored scene points from `ctx.spawnPoints` rather
|
|
121
|
+
* than embedding coordinates.
|
|
122
|
+
*/
|
|
123
|
+
export type SpawnProvider = (params: Readonly<Record<string, unknown>>, ctx: SpawnProviderContext) => readonly EncounterSpawnRequest[];
|
|
124
|
+
/** A lifecycle event emitted while stepping an encounter, carrying provenance. */
|
|
125
|
+
export type EncounterEvent = {
|
|
126
|
+
type: "enter";
|
|
127
|
+
phaseId: string;
|
|
128
|
+
iteration: number;
|
|
129
|
+
} | {
|
|
130
|
+
type: "spawn";
|
|
131
|
+
phaseId: string;
|
|
132
|
+
provider: string;
|
|
133
|
+
requests: readonly EncounterSpawnRequest[];
|
|
134
|
+
} | {
|
|
135
|
+
type: "complete";
|
|
136
|
+
phaseId: string;
|
|
137
|
+
iteration: number;
|
|
138
|
+
reason: string;
|
|
139
|
+
} | {
|
|
140
|
+
type: "done";
|
|
141
|
+
};
|
|
142
|
+
/** Result of a step: the (mutated, returned) state and the events emitted this step. */
|
|
143
|
+
export interface EncounterStep<TData = unknown> {
|
|
144
|
+
state: EncounterState<TData>;
|
|
145
|
+
events: EncounterEvent[];
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Non-serializable configuration for an encounter: the authored phase tree plus predicate
|
|
149
|
+
* and spawn-provider registries. Re-supplied alongside a loaded {@link EncounterState}, the
|
|
150
|
+
* way `advanceSpawnDirector` pairs config with state, so the state itself stays pure data.
|
|
151
|
+
*/
|
|
152
|
+
export interface EncounterConfig<TData = unknown> {
|
|
153
|
+
phases: readonly EncounterPhase<TData>[];
|
|
154
|
+
/** Extra predicates, merged over the built-ins (a same-named entry overrides). */
|
|
155
|
+
predicates?: Readonly<Record<string, CompletionPredicate>>;
|
|
156
|
+
/** Extra spawn providers, merged over the built-ins. */
|
|
157
|
+
spawnProviders?: Readonly<Record<string, SpawnProvider>>;
|
|
158
|
+
}
|
|
159
|
+
/** Where to insert an injected phase, relative to an existing node by id. */
|
|
160
|
+
export type PhaseInjectAt = {
|
|
161
|
+
before: string;
|
|
162
|
+
} | {
|
|
163
|
+
after: string;
|
|
164
|
+
} | {
|
|
165
|
+
childOf: string;
|
|
166
|
+
index?: number;
|
|
167
|
+
};
|
|
168
|
+
/**
|
|
169
|
+
* Built-in completion predicates covering the common encounter gates: `immediate` (leaf
|
|
170
|
+
* marker), `manual`/`flag` (external event via a caller flag), `timer` (phase seconds),
|
|
171
|
+
* `cleared` (tagged entity count drained), `metric` (threshold on a live value), `event`
|
|
172
|
+
* (cumulative event count), and `quorum` (at least N of nested predicates met). Merge your
|
|
173
|
+
* own over these through {@link EncounterConfig.predicates}.
|
|
174
|
+
*
|
|
175
|
+
* @capability encounter-predicates gate encounter phase completion on timers, cleared spawns, metrics, events, or a quorum of conditions
|
|
176
|
+
*/
|
|
177
|
+
export declare const BUILTIN_COMPLETION_PREDICATES: Readonly<Record<string, CompletionPredicate>>;
|
|
178
|
+
/**
|
|
179
|
+
* Built-in spawn providers. `points` reads a named authored scene point list from context
|
|
180
|
+
* and cycles it to emit `count` requests, keeping coordinates in the scene rather than the
|
|
181
|
+
* sequence. `list` echoes literal requests authored in `params.requests`. Merge your own
|
|
182
|
+
* catalog- or director-backed providers through {@link EncounterConfig.spawnProviders}.
|
|
183
|
+
*
|
|
184
|
+
* @capability encounter-spawn-providers turn an entered encounter phase into spawn requests from authored scene points or an inline list
|
|
185
|
+
*/
|
|
186
|
+
export declare const BUILTIN_SPAWN_PROVIDERS: Readonly<Record<string, SpawnProvider>>;
|
|
187
|
+
/**
|
|
188
|
+
* Build the initial, serializable state for an encounter from its config. Deep-copies the
|
|
189
|
+
* authored phase tree (so later injection never mutates the config), verifies phase ids are
|
|
190
|
+
* unique, and leaves every node pending. Does not enter the first phase — call
|
|
191
|
+
* {@link startEncounter} for that.
|
|
192
|
+
*
|
|
193
|
+
* @capability encounter-state create the serializable starting state of a hierarchical encounter sequence
|
|
194
|
+
*/
|
|
195
|
+
export declare function createEncounterState<TData>(config: EncounterConfig<TData>): EncounterState<TData>;
|
|
196
|
+
/**
|
|
197
|
+
* Start a created encounter: enter the first root phase, descending to its first leaf, and
|
|
198
|
+
* return the initial enter/spawn events. A no-op (with no events) on an already-started or
|
|
199
|
+
* empty encounter. Mutates and returns `state`.
|
|
200
|
+
*
|
|
201
|
+
* @capability encounter-start enter the first phase of a hierarchical encounter and emit its opening spawn events
|
|
202
|
+
*/
|
|
203
|
+
export declare function startEncounter<TData>(config: EncounterConfig<TData>, state: EncounterState<TData>, ctx?: EncounterContext): EncounterStep<TData>;
|
|
204
|
+
/**
|
|
205
|
+
* Advance an encounter by `dt` seconds against the caller `ctx`. Accumulates time, then
|
|
206
|
+
* repeatedly: evaluates the cursor node's completion predicate; on completion, either
|
|
207
|
+
* re-runs its subtree (`repeat`) or marks it complete and advances to the next sibling —
|
|
208
|
+
* bubbling up to parent groups whose children are exhausted — entering the next chain and
|
|
209
|
+
* emitting enter/spawn/complete events. Emits a final `done` event when the last phase
|
|
210
|
+
* completes. Bounded per call by node count; mutates and returns `state`.
|
|
211
|
+
*
|
|
212
|
+
* @capability encounter-advance step a hierarchical encounter, resolving predicate-gated completion, repeats, and nested advance with lifecycle events
|
|
213
|
+
*/
|
|
214
|
+
export declare function updateEncounter<TData>(config: EncounterConfig<TData>, state: EncounterState<TData>, dt: number, ctx?: EncounterContext): EncounterStep<TData>;
|
|
215
|
+
/**
|
|
216
|
+
* Force the deepest active phase (or a named active phase) to complete now, regardless of
|
|
217
|
+
* its predicate — the escape hatch for external/scripted completion and failure/retry flows.
|
|
218
|
+
* Advances into the next phase and emits the same lifecycle events as a natural completion.
|
|
219
|
+
* Returns no events if the phase is not currently active. Mutates and returns `state`.
|
|
220
|
+
*
|
|
221
|
+
* @capability encounter-force-complete externally complete an active encounter phase to drive scripted or failure-retry transitions
|
|
222
|
+
*/
|
|
223
|
+
export declare function forceCompletePhase<TData>(config: EncounterConfig<TData>, state: EncounterState<TData>, ctx?: EncounterContext, phaseId?: string): EncounterStep<TData>;
|
|
224
|
+
/**
|
|
225
|
+
* Insert a phase into the working tree at runtime — before/after a sibling, or as a child of
|
|
226
|
+
* a group — without disturbing already-completed or active nodes. The injected subtree
|
|
227
|
+
* becomes part of the serializable state (so a mid-encounter save preserves it) and is
|
|
228
|
+
* reached in normal order if it sits ahead of the cursor. Ids must stay tree-unique. Mutates
|
|
229
|
+
* and returns `state`.
|
|
230
|
+
*
|
|
231
|
+
* @capability encounter-inject-phase dynamically insert a phase or branch into a running encounter, e.g. a boss on the final wave
|
|
232
|
+
*/
|
|
233
|
+
export declare function injectPhase<TData>(state: EncounterState<TData>, phase: EncounterPhase<TData>, at: PhaseInjectAt): EncounterState<TData>;
|
|
234
|
+
/**
|
|
235
|
+
* The deepest active phase id — the completion cursor a HUD reads to label the current
|
|
236
|
+
* wave/phase — or null before start and once done.
|
|
237
|
+
*
|
|
238
|
+
* @capability encounter-active-phase read the id of the phase an encounter is currently waiting on
|
|
239
|
+
*/
|
|
240
|
+
export declare function activePhaseId<TData>(state: EncounterState<TData>): string | null;
|
|
241
|
+
/**
|
|
242
|
+
* The runtime status of a phase by id (pending/active/complete), or null if the id is
|
|
243
|
+
* unknown — for driving per-phase HUD ticks and objective checklists.
|
|
244
|
+
*
|
|
245
|
+
* @capability encounter-phase-status read whether a specific encounter phase is pending, active, or complete
|
|
246
|
+
*/
|
|
247
|
+
export declare function phaseStatus<TData>(state: EncounterState<TData>, id: string): PhaseStatus | null;
|
|
248
|
+
/**
|
|
249
|
+
* Progress across the whole tree: how many phases have completed out of the total node
|
|
250
|
+
* count, plus whether the encounter has finished. Counts injected phases.
|
|
251
|
+
*
|
|
252
|
+
* @capability encounter-progress read completed-vs-total progress across a hierarchical encounter for HUD or objective display
|
|
253
|
+
*/
|
|
254
|
+
export declare function encounterProgress<TData>(state: EncounterState<TData>): {
|
|
255
|
+
completed: number;
|
|
256
|
+
total: number;
|
|
257
|
+
done: boolean;
|
|
258
|
+
};
|