@aura3d/scripting 1.0.6

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 (139) hide show
  1. package/README.md +16 -0
  2. package/dist/AdaptiveDifficultyFixtures.d.ts +58 -0
  3. package/dist/AdaptiveDifficultyFixtures.d.ts.map +1 -0
  4. package/dist/AdaptiveDifficultyFixtures.js +228 -0
  5. package/dist/AdaptiveDifficultyFixtures.js.map +1 -0
  6. package/dist/AnalyticsPrivacyFixtures.d.ts +63 -0
  7. package/dist/AnalyticsPrivacyFixtures.d.ts.map +1 -0
  8. package/dist/AnalyticsPrivacyFixtures.js +120 -0
  9. package/dist/AnalyticsPrivacyFixtures.js.map +1 -0
  10. package/dist/Behavior.d.ts +10 -0
  11. package/dist/Behavior.d.ts.map +1 -0
  12. package/dist/Behavior.js +2 -0
  13. package/dist/Behavior.js.map +1 -0
  14. package/dist/BehaviorHost.d.ts +17 -0
  15. package/dist/BehaviorHost.d.ts.map +1 -0
  16. package/dist/BehaviorHost.js +39 -0
  17. package/dist/BehaviorHost.js.map +1 -0
  18. package/dist/BehaviorRegistry.d.ts +8 -0
  19. package/dist/BehaviorRegistry.d.ts.map +1 -0
  20. package/dist/BehaviorRegistry.js +17 -0
  21. package/dist/BehaviorRegistry.js.map +1 -0
  22. package/dist/BehaviorSystem.d.ts +26 -0
  23. package/dist/BehaviorSystem.d.ts.map +1 -0
  24. package/dist/BehaviorSystem.js +76 -0
  25. package/dist/BehaviorSystem.js.map +1 -0
  26. package/dist/BehaviorTree.d.ts +75 -0
  27. package/dist/BehaviorTree.d.ts.map +1 -0
  28. package/dist/BehaviorTree.js +204 -0
  29. package/dist/BehaviorTree.js.map +1 -0
  30. package/dist/CloudServiceFixtures.d.ts +81 -0
  31. package/dist/CloudServiceFixtures.d.ts.map +1 -0
  32. package/dist/CloudServiceFixtures.js +144 -0
  33. package/dist/CloudServiceFixtures.js.map +1 -0
  34. package/dist/CulturalBehaviorFixtures.d.ts +75 -0
  35. package/dist/CulturalBehaviorFixtures.d.ts.map +1 -0
  36. package/dist/CulturalBehaviorFixtures.js +180 -0
  37. package/dist/CulturalBehaviorFixtures.js.map +1 -0
  38. package/dist/DecisionTree.d.ts +42 -0
  39. package/dist/DecisionTree.d.ts.map +1 -0
  40. package/dist/DecisionTree.js +125 -0
  41. package/dist/DecisionTree.js.map +1 -0
  42. package/dist/GOAP.d.ts +51 -0
  43. package/dist/GOAP.d.ts.map +1 -0
  44. package/dist/GOAP.js +105 -0
  45. package/dist/GOAP.js.map +1 -0
  46. package/dist/HTN.d.ts +58 -0
  47. package/dist/HTN.d.ts.map +1 -0
  48. package/dist/HTN.js +115 -0
  49. package/dist/HTN.js.map +1 -0
  50. package/dist/LearningAgentFixtures.d.ts +60 -0
  51. package/dist/LearningAgentFixtures.d.ts.map +1 -0
  52. package/dist/LearningAgentFixtures.js +122 -0
  53. package/dist/LearningAgentFixtures.js.map +1 -0
  54. package/dist/NetworkReplicationFixtures.d.ts +82 -0
  55. package/dist/NetworkReplicationFixtures.d.ts.map +1 -0
  56. package/dist/NetworkReplicationFixtures.js +330 -0
  57. package/dist/NetworkReplicationFixtures.js.map +1 -0
  58. package/dist/Perception.d.ts +58 -0
  59. package/dist/Perception.d.ts.map +1 -0
  60. package/dist/Perception.js +111 -0
  61. package/dist/Perception.js.map +1 -0
  62. package/dist/PlayerBehaviorTelemetryFixtures.d.ts +74 -0
  63. package/dist/PlayerBehaviorTelemetryFixtures.d.ts.map +1 -0
  64. package/dist/PlayerBehaviorTelemetryFixtures.js +189 -0
  65. package/dist/PlayerBehaviorTelemetryFixtures.js.map +1 -0
  66. package/dist/ProceduralContentAdaptationFixtures.d.ts +52 -0
  67. package/dist/ProceduralContentAdaptationFixtures.d.ts.map +1 -0
  68. package/dist/ProceduralContentAdaptationFixtures.js +149 -0
  69. package/dist/ProceduralContentAdaptationFixtures.js.map +1 -0
  70. package/dist/ScriptContext.d.ts +18 -0
  71. package/dist/ScriptContext.d.ts.map +1 -0
  72. package/dist/ScriptContext.js +21 -0
  73. package/dist/ScriptContext.js.map +1 -0
  74. package/dist/StateMachine.d.ts +52 -0
  75. package/dist/StateMachine.d.ts.map +1 -0
  76. package/dist/StateMachine.js +117 -0
  77. package/dist/StateMachine.js.map +1 -0
  78. package/dist/UtilityAI.d.ts +55 -0
  79. package/dist/UtilityAI.d.ts.map +1 -0
  80. package/dist/UtilityAI.js +113 -0
  81. package/dist/UtilityAI.js.map +1 -0
  82. package/dist/VisualGraph.d.ts +20 -0
  83. package/dist/VisualGraph.d.ts.map +1 -0
  84. package/dist/VisualGraph.js +191 -0
  85. package/dist/VisualGraph.js.map +1 -0
  86. package/dist/VisualGraphContext.d.ts +123 -0
  87. package/dist/VisualGraphContext.d.ts.map +1 -0
  88. package/dist/VisualGraphContext.js +2 -0
  89. package/dist/VisualGraphContext.js.map +1 -0
  90. package/dist/VisualGraphExecutor.d.ts +16 -0
  91. package/dist/VisualGraphExecutor.d.ts.map +1 -0
  92. package/dist/VisualGraphExecutor.js +571 -0
  93. package/dist/VisualGraphExecutor.js.map +1 -0
  94. package/dist/VisualNode.d.ts +17 -0
  95. package/dist/VisualNode.d.ts.map +1 -0
  96. package/dist/VisualNode.js +24 -0
  97. package/dist/VisualNode.js.map +1 -0
  98. package/dist/VisualNodeCatalog.d.ts +14 -0
  99. package/dist/VisualNodeCatalog.d.ts.map +1 -0
  100. package/dist/VisualNodeCatalog.js +142 -0
  101. package/dist/VisualNodeCatalog.js.map +1 -0
  102. package/dist/WeaponSystem.d.ts +228 -0
  103. package/dist/WeaponSystem.d.ts.map +1 -0
  104. package/dist/WeaponSystem.js +530 -0
  105. package/dist/WeaponSystem.js.map +1 -0
  106. package/dist/index.d.ts +51 -0
  107. package/dist/index.d.ts.map +1 -0
  108. package/dist/index.js +25 -0
  109. package/dist/index.js.map +1 -0
  110. package/package.json +13 -0
  111. package/src/AdaptiveDifficultyFixtures.ts +324 -0
  112. package/src/AnalyticsPrivacyFixtures.ts +182 -0
  113. package/src/Behavior.ts +11 -0
  114. package/src/BehaviorHost.ts +51 -0
  115. package/src/BehaviorRegistry.ts +22 -0
  116. package/src/BehaviorSystem.ts +103 -0
  117. package/src/BehaviorTree.ts +234 -0
  118. package/src/CloudServiceFixtures.ts +225 -0
  119. package/src/CulturalBehaviorFixtures.ts +262 -0
  120. package/src/DecisionTree.ts +162 -0
  121. package/src/GOAP.ts +150 -0
  122. package/src/HTN.ts +178 -0
  123. package/src/LearningAgentFixtures.ts +184 -0
  124. package/src/NetworkReplicationFixtures.ts +440 -0
  125. package/src/Perception.ts +163 -0
  126. package/src/PlayerBehaviorTelemetryFixtures.ts +257 -0
  127. package/src/ProceduralContentAdaptationFixtures.ts +205 -0
  128. package/src/ScriptContext.ts +34 -0
  129. package/src/StateMachine.ts +138 -0
  130. package/src/UtilityAI.ts +158 -0
  131. package/src/VisualGraph.ts +236 -0
  132. package/src/VisualGraphContext.ts +138 -0
  133. package/src/VisualGraphExecutor.ts +663 -0
  134. package/src/VisualNode.ts +44 -0
  135. package/src/VisualNodeCatalog.ts +195 -0
  136. package/src/WeaponSystem.ts +793 -0
  137. package/src/index.ts +175 -0
  138. package/tests/scripting.test.ts +229 -0
  139. package/tsconfig.json +7 -0
@@ -0,0 +1,530 @@
1
+ export function sampleWeaponBurst(input) {
2
+ const level = Math.max(1, Math.min(5, Math.floor(input.level ?? 1)));
3
+ const x = finite(input.x ?? 0, "x");
4
+ const y = finite(input.y ?? 0, "y");
5
+ const angle = finite(input.angle ?? 0, "angle");
6
+ const secondary = input.secondary === true;
7
+ const ammo = input.ammo ?? Number.POSITIVE_INFINITY;
8
+ if (ammo < 0)
9
+ throw new RangeError("Weapon burst ammo must be non-negative.");
10
+ const projectiles = input.kind === "laser"
11
+ ? laserBurst(x, y, angle, level, secondary)
12
+ : input.kind === "missile"
13
+ ? missileBurst(x, y, angle, level, secondary, ammo)
14
+ : plasmaBurst(x, y, angle, level, secondary);
15
+ const totalDamage = projectiles.reduce((sum, projectile) => sum + projectile.damage, 0);
16
+ return {
17
+ kind: input.kind,
18
+ level,
19
+ secondary,
20
+ projectileCount: projectiles.length,
21
+ ammoSpent: input.kind === "missile" ? (secondary ? Math.min(5, ammo) : Math.min(1, ammo)) : 0,
22
+ totalDamage: Number(totalDamage.toFixed(3)),
23
+ spreadRadians: Number(spreadFor(projectiles).toFixed(5)),
24
+ projectiles,
25
+ source: "origin-master-space-shooter-weapons-adapted",
26
+ claimBoundary: "Deterministic weapon burst sampling adapted from the old space-shooter weapon concepts; this is gameplay telemetry, not a full projectile-pooling or collision system claim."
27
+ };
28
+ }
29
+ export function sampleFpsWeaponCycle(input) {
30
+ const config = fpsWeaponConfig(input.weapon);
31
+ const elapsedSeconds = Math.max(0, finite(input.elapsedSeconds ?? 0, "elapsedSeconds"));
32
+ const currentAmmo = Math.max(0, Math.floor(input.currentAmmo ?? config.magazineSize));
33
+ const reserveAmmo = Math.max(0, Math.floor(input.reserveAmmo ?? config.reserveAmmo));
34
+ const fireTimer = Math.max(0, finite(input.fireTimer ?? 0, "fireTimer") - elapsedSeconds);
35
+ const canFire = input.triggerHeld === true && input.reloadRequested !== true && fireTimer <= 0;
36
+ const reloadRequested = input.reloadRequested === true || (currentAmmo === 0 && reserveAmmo > 0 && canFire);
37
+ if (reloadRequested) {
38
+ const reloadComplete = elapsedSeconds >= config.reloadTime && reserveAmmo > 0 && currentAmmo < config.magazineSize;
39
+ const loaded = reloadComplete ? Math.min(config.magazineSize - currentAmmo, reserveAmmo) : 0;
40
+ return {
41
+ weapon: input.weapon,
42
+ name: config.name,
43
+ firingMode: config.firingMode,
44
+ fired: false,
45
+ emptyClick: currentAmmo === 0 && reserveAmmo === 0,
46
+ reloading: !reloadComplete,
47
+ reloadComplete,
48
+ currentAmmo: currentAmmo + loaded,
49
+ reserveAmmo: reserveAmmo - loaded,
50
+ ammoSpent: 0,
51
+ bulletsPerShot: 0,
52
+ totalDamage: 0,
53
+ range: config.range,
54
+ spreadDegrees: config.spread,
55
+ recoilX: 0,
56
+ recoilY: 0,
57
+ fireCooldown: reloadComplete ? 0 : Math.max(0, config.reloadTime - elapsedSeconds),
58
+ muzzleFlashSeconds: 0,
59
+ shellEjectionSeconds: 0,
60
+ source: "origin-master-fps-weapon-adapted",
61
+ claimBoundary: fpsWeaponClaimBoundary
62
+ };
63
+ }
64
+ if (!canFire || currentAmmo <= 0) {
65
+ return {
66
+ weapon: input.weapon,
67
+ name: config.name,
68
+ firingMode: config.firingMode,
69
+ fired: false,
70
+ emptyClick: input.triggerHeld === true && currentAmmo <= 0,
71
+ reloading: false,
72
+ reloadComplete: false,
73
+ currentAmmo,
74
+ reserveAmmo,
75
+ ammoSpent: 0,
76
+ bulletsPerShot: 0,
77
+ totalDamage: 0,
78
+ range: config.range,
79
+ spreadDegrees: config.spread,
80
+ recoilX: 0,
81
+ recoilY: 0,
82
+ fireCooldown: fireTimer,
83
+ muzzleFlashSeconds: 0,
84
+ shellEjectionSeconds: 0,
85
+ source: "origin-master-fps-weapon-adapted",
86
+ claimBoundary: fpsWeaponClaimBoundary
87
+ };
88
+ }
89
+ const seed = Math.floor(input.seed ?? currentAmmo * 31 + reserveAmmo * 17 + config.damage * 13);
90
+ const spent = Math.min(1, currentAmmo);
91
+ const recoil = fpsRecoil(config.recoilAmount, seed);
92
+ return {
93
+ weapon: input.weapon,
94
+ name: config.name,
95
+ firingMode: config.firingMode,
96
+ fired: true,
97
+ emptyClick: false,
98
+ reloading: false,
99
+ reloadComplete: false,
100
+ currentAmmo: currentAmmo - spent,
101
+ reserveAmmo,
102
+ ammoSpent: spent,
103
+ bulletsPerShot: config.bulletsPerShot,
104
+ totalDamage: Number((config.damage * config.bulletsPerShot).toFixed(3)),
105
+ range: config.range,
106
+ spreadDegrees: config.spread,
107
+ recoilX: recoil.x,
108
+ recoilY: recoil.y,
109
+ fireCooldown: Number((60 / config.fireRate).toFixed(4)),
110
+ muzzleFlashSeconds: 0.05,
111
+ shellEjectionSeconds: 0.2,
112
+ source: "origin-master-fps-weapon-adapted",
113
+ claimBoundary: fpsWeaponClaimBoundary
114
+ };
115
+ }
116
+ export function sampleFpsEnemyTactics(input) {
117
+ const currentState = input.currentState ?? "patrol";
118
+ const playerAlive = input.playerAlive !== false;
119
+ const distanceToPlayer = finiteNonNegative(input.distanceToPlayer, "distanceToPlayer");
120
+ const angleToPlayerDegrees = Math.abs(finite(input.angleToPlayerDegrees ?? 0, "angleToPlayerDegrees"));
121
+ const maxHealth = positive(input.maxHealth ?? 100, "maxHealth");
122
+ const health = clamp(input.health ?? maxHealth, 0, maxHealth);
123
+ const attackTimer = finite(input.attackTimer ?? 0, "attackTimer");
124
+ const stateTimer = Math.max(0, finite(input.stateTimer ?? 0, "stateTimer"));
125
+ const hasCover = input.hasCover === true;
126
+ const distanceToCover = finiteNonNegative(input.distanceToCover ?? 1_000_000, "distanceToCover");
127
+ const hasLastKnown = input.hasLastKnownPlayerPosition === true;
128
+ const distanceToLastKnown = finiteNonNegative(input.distanceToLastKnownPlayerPosition ?? 1_000_000, "distanceToLastKnownPlayerPosition");
129
+ const canSeePlayer = playerAlive && distanceToPlayer <= 20 && angleToPlayerDegrees <= 60;
130
+ const canHearPlayer = playerAlive && distanceToPlayer <= 15;
131
+ const targetAcquired = canSeePlayer || (currentState !== "patrol" && currentState !== "idle" && currentState !== "investigate" && playerAlive);
132
+ const lowHealth = health < maxHealth * 0.3;
133
+ let state;
134
+ let nextAction;
135
+ if (health <= 0 || currentState === "dead") {
136
+ state = "dead";
137
+ nextAction = "die";
138
+ }
139
+ else if (!playerAlive) {
140
+ state = "patrol";
141
+ nextAction = "patrol";
142
+ }
143
+ else if (canSeePlayer && lowHealth && hasCover) {
144
+ state = "take_cover";
145
+ nextAction = distanceToCover > 2 ? "move_to_cover" : "wait";
146
+ }
147
+ else if (canSeePlayer && lowHealth) {
148
+ state = "flee";
149
+ nextAction = "flee";
150
+ }
151
+ else if (canSeePlayer && distanceToPlayer <= 2) {
152
+ state = "attack";
153
+ nextAction = attackTimer <= 0 ? "attack" : "wait";
154
+ }
155
+ else if (canSeePlayer || targetAcquired) {
156
+ state = "chase";
157
+ nextAction = "chase";
158
+ }
159
+ else if (canHearPlayer || hasLastKnown) {
160
+ state = "investigate";
161
+ nextAction = distanceToLastKnown <= 2 && stateTimer > 3 ? "patrol" : "investigate";
162
+ }
163
+ else {
164
+ state = stateTimer > 2 || currentState === "patrol" ? "patrol" : "idle";
165
+ nextAction = state === "patrol" ? "patrol" : "wait";
166
+ }
167
+ const movementSpeed = state === "chase" || state === "flee" || state === "take_cover"
168
+ ? 5
169
+ : state === "patrol" || state === "investigate"
170
+ ? 2.5
171
+ : 0;
172
+ return {
173
+ state,
174
+ canSeePlayer,
175
+ canHearPlayer,
176
+ targetAcquired,
177
+ movementSpeed,
178
+ attackReady: state === "attack" && attackTimer <= 0,
179
+ pathRefreshRequested: state === "chase" && targetAcquired,
180
+ coverRequested: state === "take_cover",
181
+ inCover: state === "take_cover" && distanceToCover <= 2,
182
+ nextAction,
183
+ source: "origin-master-fps-enemy-ai-adapted",
184
+ claimBoundary: "Deterministic patrol/chase/attack/flee/cover/investigate state sampling adapted from the old FPS enemy example; this is tactical runtime telemetry, not a full navmesh, ragdoll, audio, or networked FPS AI claim."
185
+ };
186
+ }
187
+ export function sampleFpsLevelLayout(input = {}) {
188
+ const roomCount = Math.max(3, Math.min(12, Math.floor(input.roomCount ?? 8)));
189
+ const gridSize = positive(input.gridSize ?? 25, "gridSize");
190
+ const seed = Math.floor(input.seed ?? 0x1e7e1);
191
+ const rooms = Array.from({ length: roomCount }, (_, index) => {
192
+ const angle = (index / roomCount) * Math.PI * 2 + seeded01(seed + index * 13) * 0.34;
193
+ const radius = gridSize * (0.24 + seeded01(seed + index * 19) * 0.5);
194
+ const width = 6 + Math.floor(seeded01(seed + index * 29) * 7);
195
+ const depth = 6 + Math.floor(seeded01(seed + index * 31) * 7);
196
+ return {
197
+ id: `room-${index}`,
198
+ x: Number((Math.cos(angle) * radius).toFixed(3)),
199
+ z: Number((Math.sin(angle) * radius).toFixed(3)),
200
+ width,
201
+ depth
202
+ };
203
+ });
204
+ const corridors = rooms.slice(1).map((room, index) => {
205
+ const previous = rooms[index] ?? rooms[0];
206
+ return {
207
+ from: previous.id,
208
+ to: room.id,
209
+ length: Number(Math.hypot(room.x - previous.x, room.z - previous.z).toFixed(3)),
210
+ width: 3
211
+ };
212
+ });
213
+ const coverPoints = rooms.flatMap((room, roomIndex) => [0, 1].map((slot) => ({
214
+ id: `cover-${roomIndex}-${slot}`,
215
+ x: Number((room.x + (slot === 0 ? -0.28 : 0.28) * room.width).toFixed(3)),
216
+ z: Number((room.z + (slot === 0 ? 0.2 : -0.22) * room.depth).toFixed(3))
217
+ })));
218
+ const patrolPoints = rooms.map((room, index) => ({
219
+ id: `patrol-${index}`,
220
+ x: Number(room.x.toFixed(3)),
221
+ z: Number(room.z.toFixed(3))
222
+ }));
223
+ const enemySpawnPoints = rooms.slice(1, Math.min(rooms.length, 6)).map((room, index) => ({
224
+ id: `enemy-spawn-${index}`,
225
+ x: Number((room.x + room.width * 0.18).toFixed(3)),
226
+ z: Number((room.z - room.depth * 0.18).toFixed(3))
227
+ }));
228
+ const pickupSpawnPoints = rooms.slice(0, Math.min(rooms.length, 6)).map((room, index) => ({
229
+ id: `pickup-${index}`,
230
+ type: index % 2 === 0 ? "health" : "ammo",
231
+ x: Number((room.x - room.width * 0.18).toFixed(3)),
232
+ z: Number((room.z + room.depth * 0.18).toFixed(3))
233
+ }));
234
+ const totalRoomArea = rooms.reduce((sum, room) => sum + room.width * room.depth, 0);
235
+ const totalCorridorLength = corridors.reduce((sum, corridor) => sum + corridor.length, 0);
236
+ return {
237
+ rooms,
238
+ corridors,
239
+ coverPoints,
240
+ patrolPoints,
241
+ enemySpawnPoints,
242
+ pickupSpawnPoints,
243
+ playerSpawnPoint: { id: "player-spawn", x: rooms[0].x, z: rooms[0].z },
244
+ navMeshPointCount: rooms.length + coverPoints.length + patrolPoints.length + enemySpawnPoints.length + pickupSpawnPoints.length,
245
+ averageRoomArea: Number((totalRoomArea / rooms.length).toFixed(3)),
246
+ totalCorridorLength: Number(totalCorridorLength.toFixed(3)),
247
+ source: "origin-master-fps-level-adapted",
248
+ claimBoundary: "Deterministic room, corridor, spawn, pickup, patrol, cover, and nav-point telemetry adapted from the old FPS level example; this is layout/runtime evidence, not a full procedural level renderer, collision mesh, or navmesh bake claim."
249
+ };
250
+ }
251
+ export function sampleFpsHudOverlay(input) {
252
+ const maxHealth = positive(input.maxHealth ?? 100, "maxHealth");
253
+ const health = clamp(input.health, 0, maxHealth);
254
+ const ammo = Math.max(0, Math.floor(finite(input.ammo, "ammo")));
255
+ const reserveAmmo = Math.max(0, Math.floor(finite(input.reserveAmmo, "reserveAmmo")));
256
+ const healthPercent = health / maxHealth;
257
+ const recentDamage = Math.max(0, finite(input.recentDamage ?? 0, "recentDamage"));
258
+ const enemiesRemaining = Math.max(0, Math.floor(input.enemiesRemaining ?? 0));
259
+ const minimapBlips = Math.max(0, Math.floor(input.minimapFriendlyCount ?? 1)) + Math.max(0, Math.floor(input.minimapEnemyCount ?? enemiesRemaining));
260
+ return {
261
+ healthPercent: Number(healthPercent.toFixed(4)),
262
+ healthBarPixels: Math.round(200 * healthPercent),
263
+ lowHealth: healthPercent <= 0.3,
264
+ damageFlashAlpha: Number(Math.min(0.55, recentDamage / maxHealth).toFixed(4)),
265
+ ammoText: `${ammo} / ${reserveAmmo}`,
266
+ ammoWarning: ammo <= 5,
267
+ crosshairSpreadPixels: Number((10 + (input.hitMarker === true ? 2 : 0) + (ammo <= 5 ? 3 : 0)).toFixed(3)),
268
+ hitMarkerVisible: input.hitMarker === true,
269
+ damageIndicatorAngleDegrees: Number(finite(input.damageAngleDegrees ?? 0, "damageAngleDegrees").toFixed(3)),
270
+ minimapBlips,
271
+ killFeedVisible: Math.max(0, Math.floor(input.killFeedCount ?? 0)) > 0,
272
+ waveText: `WAVE: ${Math.max(1, Math.floor(input.wave ?? 1))} | ENEMIES: ${enemiesRemaining}`,
273
+ source: "origin-master-fps-hud-adapted",
274
+ claimBoundary: "Deterministic health, ammo, crosshair, damage, kill-feed, wave, and minimap HUD telemetry adapted from the old FPS HUD example; this is runtime UI evidence, not a complete first-person UI framework claim."
275
+ };
276
+ }
277
+ export function sampleSpaceShooterWave(input) {
278
+ const wave = Math.max(1, Math.floor(positive(input.wave, "wave")));
279
+ const width = positive(input.width ?? 1280, "width");
280
+ const height = positive(input.height ?? 720, "height");
281
+ const seed = Math.floor(input.seed ?? 0x5150 + wave * 97);
282
+ const base = wave % 10 === 0 ? { enemyType: "boss", count: 1, formation: "random", delay: 0 } : waveDefinition(wave);
283
+ const difficultyScale = 1 + Math.floor((wave - 1) / 10) * 0.5;
284
+ const count = base.enemyType === "boss" ? 1 : Math.max(1, Math.floor(base.count * difficultyScale));
285
+ const spawns = Array.from({ length: count }, (_, index) => {
286
+ const position = formationPosition(base.formation, index, count, width, height, seed);
287
+ const stats = enemyStats(base.enemyType);
288
+ return {
289
+ enemyType: base.enemyType,
290
+ x: Number(position.x.toFixed(3)),
291
+ y: Number(position.y.toFixed(3)),
292
+ ...stats
293
+ };
294
+ });
295
+ const powerUp = weightedPowerUp(seed ^ wave);
296
+ return {
297
+ wave,
298
+ enemyType: base.enemyType,
299
+ formation: base.formation,
300
+ count,
301
+ delay: base.delay,
302
+ bossWave: base.enemyType === "boss",
303
+ difficultyScale,
304
+ totalScoreValue: spawns.reduce((sum, spawn) => sum + spawn.scoreValue, 0),
305
+ spawns,
306
+ powerUpType: powerUp.type,
307
+ powerUpWeight: powerUp.weight,
308
+ source: "origin-master-space-shooter-wave-powerup-adapted",
309
+ claimBoundary: "Deterministic wave, formation, enemy-stat, and weighted power-up sampling adapted from the old space-shooter systems; this is runtime evidence, not a full shooter game loop claim."
310
+ };
311
+ }
312
+ export function samplePowerUpEffect(input) {
313
+ const maxHealth = positive(input.maxHealth ?? 100, "maxHealth");
314
+ const maxShield = positive(input.maxShield ?? 100, "maxShield");
315
+ const before = {
316
+ health: clamp(input.health ?? 50, 0, maxHealth),
317
+ shield: clamp(input.shield ?? 40, 0, maxShield),
318
+ weaponLevel: Math.max(1, Math.min(5, Math.floor(input.weaponLevel ?? 1))),
319
+ speed: positive(input.speed ?? 320, "speed"),
320
+ lives: Math.max(0, Math.floor(input.lives ?? 3)),
321
+ multiplier: Math.max(1, input.multiplier ?? 1)
322
+ };
323
+ const after = { ...before };
324
+ switch (input.type) {
325
+ case "health":
326
+ after.health = Math.min(maxHealth, after.health + 50);
327
+ break;
328
+ case "shield":
329
+ after.shield = Math.min(maxShield, after.shield + 50);
330
+ break;
331
+ case "weapon":
332
+ after.weaponLevel = Math.min(5, after.weaponLevel + 1);
333
+ break;
334
+ case "speed":
335
+ after.speed += 100;
336
+ break;
337
+ case "life":
338
+ after.lives += 1;
339
+ break;
340
+ case "multiplier":
341
+ after.multiplier *= 2;
342
+ break;
343
+ }
344
+ const changedFields = Object.keys(after).filter((key) => after[key] !== before[key]);
345
+ return {
346
+ type: input.type,
347
+ ...after,
348
+ changedFields,
349
+ source: "origin-master-space-shooter-powerup-effects-adapted"
350
+ };
351
+ }
352
+ function laserBurst(x, y, angle, level, secondary) {
353
+ if (secondary) {
354
+ return radialBurst(x, y, 8, 1000, 7.5, 0.5);
355
+ }
356
+ const spread = Math.min(level - 1, 2);
357
+ const projectiles = [];
358
+ for (let index = -spread; index <= spread; index += 1) {
359
+ projectiles.push(projectile(x, y, angle + index * 0.1, 800, 15 * Math.pow(1.2, level - 1), 2));
360
+ }
361
+ return projectiles;
362
+ }
363
+ const fpsWeaponClaimBoundary = "Deterministic magazine, reload, recoil, spread, muzzle-flash, and shell-ejection sampling adapted from the old FPS weapon example; this is runtime telemetry, not a full hitscan, projectile-pooling, audio, or networked FPS weapon claim.";
364
+ function fpsWeaponConfig(weapon) {
365
+ switch (weapon) {
366
+ case "pistol":
367
+ return { name: "M1911 Pistol", damage: 25, fireRate: 300, magazineSize: 12, reserveAmmo: 60, reloadTime: 1.5, range: 50, spread: 2, recoilAmount: 0.3, firingMode: "single", bulletsPerShot: 1 };
368
+ case "rifle":
369
+ return { name: "M4A1 Rifle", damage: 30, fireRate: 700, magazineSize: 30, reserveAmmo: 120, reloadTime: 2, range: 100, spread: 1, recoilAmount: 0.2, firingMode: "auto", bulletsPerShot: 1 };
370
+ case "shotgun":
371
+ return { name: "Pump Shotgun", damage: 15, fireRate: 80, magazineSize: 8, reserveAmmo: 32, reloadTime: 3, range: 30, spread: 10, recoilAmount: 1, firingMode: "single", bulletsPerShot: 8 };
372
+ }
373
+ }
374
+ function fpsRecoil(amount, seed) {
375
+ const horizontal = seededUnit(seed) * 2 - 1;
376
+ const vertical = 0.72 + seededUnit(seed ^ 0x9e3779b9) * 0.28;
377
+ return {
378
+ x: Number((horizontal * amount * 0.35).toFixed(4)),
379
+ y: Number((vertical * amount).toFixed(4))
380
+ };
381
+ }
382
+ function seededUnit(seed) {
383
+ let value = seed >>> 0;
384
+ value ^= value << 13;
385
+ value ^= value >>> 17;
386
+ value ^= value << 5;
387
+ return ((value >>> 0) % 10_000) / 10_000;
388
+ }
389
+ function missileBurst(x, y, angle, level, secondary, ammo) {
390
+ if (ammo < (secondary ? 5 : 1))
391
+ return [];
392
+ const projectiles = [];
393
+ if (secondary) {
394
+ for (let index = 0; index < 12; index += 1) {
395
+ projectiles.push(projectile(x, y, angle + (index - 6) * 0.15, 500, 75 * Math.pow(1.2, level - 1), 4));
396
+ }
397
+ return projectiles;
398
+ }
399
+ const count = Math.min(Math.floor(level / 2) + 1, 3);
400
+ for (let index = 0; index < count; index += 1) {
401
+ const offset = index - (count - 1) / 2;
402
+ const px = x - Math.sin(angle) * offset * 20;
403
+ const py = y + Math.cos(angle) * offset * 20;
404
+ projectiles.push(projectile(px, py, angle, 400, 50 * Math.pow(1.2, level - 1), 3));
405
+ }
406
+ return projectiles;
407
+ }
408
+ function plasmaBurst(x, y, angle, level, secondary) {
409
+ if (secondary) {
410
+ return [0, 1, 2].flatMap((wave) => radialBurst(x, y, 16, 700 + wave * 100, 20 * Math.pow(1.2, level - 1), 1));
411
+ }
412
+ const shots = 3 + level;
413
+ const spreadAngle = 0.3 + level * 0.1;
414
+ const projectiles = [];
415
+ for (let index = 0; index < shots; index += 1) {
416
+ projectiles.push(projectile(x, y, angle + (index - (shots - 1) / 2) * (spreadAngle / shots), 600, 25 * Math.pow(1.2, level - 1), 1.5));
417
+ }
418
+ return projectiles;
419
+ }
420
+ function radialBurst(x, y, count, speed, damage, lifetime) {
421
+ return Array.from({ length: count }, (_, index) => projectile(x, y, (index / count) * Math.PI * 2, speed, damage, lifetime));
422
+ }
423
+ function projectile(x, y, angle, speed, damage, lifetime) {
424
+ return {
425
+ x: Number(x.toFixed(3)),
426
+ y: Number(y.toFixed(3)),
427
+ vx: Number((Math.cos(angle) * speed).toFixed(3)),
428
+ vy: Number((Math.sin(angle) * speed).toFixed(3)),
429
+ damage: Number(damage.toFixed(3)),
430
+ lifetime
431
+ };
432
+ }
433
+ function waveDefinition(wave) {
434
+ const waves = [
435
+ { enemyType: "fighter", count: 5, formation: "line", delay: 0.5 },
436
+ { enemyType: "fighter", count: 8, formation: "v-formation", delay: 0.4 },
437
+ { enemyType: "bomber", count: 4, formation: "line", delay: 0.8 },
438
+ { enemyType: "fighter", count: 10, formation: "surround", delay: 0.3 },
439
+ { enemyType: "turret", count: 6, formation: "random", delay: 0.6 },
440
+ { enemyType: "bomber", count: 6, formation: "sides", delay: 0.5 },
441
+ { enemyType: "fighter", count: 12, formation: "v-formation", delay: 0.3 },
442
+ { enemyType: "carrier", count: 2, formation: "line", delay: 2 },
443
+ { enemyType: "turret", count: 8, formation: "surround", delay: 0.5 }
444
+ ];
445
+ return waves[(wave - 1) % waves.length] ?? waves[0];
446
+ }
447
+ function formationPosition(formation, index, total, width, height, seed) {
448
+ const padding = 100;
449
+ const usableWidth = Math.max(1, width - padding * 2);
450
+ switch (formation) {
451
+ case "line":
452
+ return { x: padding + (index / Math.max(1, total - 1)) * usableWidth, y: -50 };
453
+ case "v-formation": {
454
+ const centerIndex = (total - 1) / 2;
455
+ return { x: padding + (index / Math.max(1, total - 1)) * usableWidth, y: -50 - Math.abs(index - centerIndex) * 40 };
456
+ }
457
+ case "surround": {
458
+ const angle = (index / total) * Math.PI;
459
+ return { x: width / 2 + Math.cos(angle - Math.PI / 2) * 300, y: -100 + Math.sin(angle - Math.PI / 2) * 300 };
460
+ }
461
+ case "sides": {
462
+ const side = index % 2;
463
+ const groupIndex = Math.floor(index / 2);
464
+ return { x: side === 0 ? padding : width - padding, y: -50 - groupIndex * 80 };
465
+ }
466
+ case "random":
467
+ return { x: padding + seeded01(seed + index * 17) * usableWidth, y: -50 - seeded01(seed + index * 31) * Math.max(80, height * 0.28) };
468
+ }
469
+ }
470
+ function enemyStats(enemyType) {
471
+ switch (enemyType) {
472
+ case "fighter":
473
+ return { health: 30, radius: 15, scoreValue: 100 };
474
+ case "bomber":
475
+ return { health: 80, radius: 25, scoreValue: 250 };
476
+ case "turret":
477
+ return { health: 100, radius: 20, scoreValue: 300 };
478
+ case "carrier":
479
+ return { health: 200, radius: 35, scoreValue: 600 };
480
+ case "boss":
481
+ return { health: 1000, radius: 80, scoreValue: 5000 };
482
+ }
483
+ }
484
+ function weightedPowerUp(seed) {
485
+ const entries = [
486
+ ["health", 30],
487
+ ["shield", 30],
488
+ ["weapon", 25],
489
+ ["speed", 10],
490
+ ["life", 3],
491
+ ["multiplier", 2]
492
+ ];
493
+ const total = entries.reduce((sum, [, weight]) => sum + weight, 0);
494
+ let cursor = seeded01(seed) * total;
495
+ for (const [type, weight] of entries) {
496
+ cursor -= weight;
497
+ if (cursor <= 0)
498
+ return { type, weight };
499
+ }
500
+ return { type: "health", weight: 30 };
501
+ }
502
+ function seeded01(seed) {
503
+ const value = Math.sin(seed * 12.9898 + 78.233) * 43758.5453;
504
+ return value - Math.floor(value);
505
+ }
506
+ function spreadFor(projectiles) {
507
+ if (projectiles.length <= 1)
508
+ return 0;
509
+ const angles = projectiles.map((entry) => Math.atan2(entry.vy, entry.vx)).sort((left, right) => left - right);
510
+ return (angles[angles.length - 1] ?? 0) - (angles[0] ?? 0);
511
+ }
512
+ function finite(value, label) {
513
+ if (!Number.isFinite(value))
514
+ throw new RangeError(`Weapon burst ${label} must be finite.`);
515
+ return value;
516
+ }
517
+ function positive(value, label) {
518
+ if (!Number.isFinite(value) || value <= 0)
519
+ throw new RangeError(`Weapon burst ${label} must be finite and positive.`);
520
+ return value;
521
+ }
522
+ function finiteNonNegative(value, label) {
523
+ if (!Number.isFinite(value) || value < 0)
524
+ throw new RangeError(`Weapon burst ${label} must be finite and non-negative.`);
525
+ return value;
526
+ }
527
+ function clamp(value, min, max) {
528
+ return Math.max(min, Math.min(max, value));
529
+ }
530
+ //# sourceMappingURL=WeaponSystem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WeaponSystem.js","sourceRoot":"","sources":["../../../../packages/scripting/src/WeaponSystem.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ export type { Behavior, BehaviorPhase } from "./Behavior";
2
+ export { BehaviorAction, BehaviorCondition, BehaviorSelector, BehaviorSequence, BehaviorTree, BehaviorTreeNode, Blackboard } from "./BehaviorTree";
3
+ export type { BehaviorTreeContext, BehaviorTreeStatus, BehaviorTreeTickResult, BlackboardChange, BlackboardValue } from "./BehaviorTree";
4
+ export { PerceptionSensor } from "./Perception";
5
+ export type { PerceptionHit, PerceptionMemory, PerceptionPoint, PerceptionSensorOptions, PerceptionSnapshot, PerceptionTarget } from "./Perception";
6
+ export { UtilityAI, UtilityAction, UtilityConsideration } from "./UtilityAI";
7
+ export type { UtilityActionOptions, UtilityActionScore, UtilityConsiderationOptions, UtilityContext, UtilityCurve, UtilityScoring } from "./UtilityAI";
8
+ export { State, StateMachine } from "./StateMachine";
9
+ export type { StateMachineSnapshot, StateTransition, StateTransitionCondition } from "./StateMachine";
10
+ export { GOAPAction, GOAPPlanner, WorldState } from "./GOAP";
11
+ export type { GOAPActionOptions, GOAPPlan, GOAPPlannerOptions, GOAPStateShape, GOAPValue } from "./GOAP";
12
+ export { HTNPlanner, HTNTask } from "./HTN";
13
+ export type { HTNCompoundTaskOptions, HTNPlan, HTNPlannerOptions, HTNPrimitiveTaskOptions, HTNTaskMethod, HTNTaskResult, HTNTaskType } from "./HTN";
14
+ export { DecisionTree } from "./DecisionTree";
15
+ export type { DecisionAction, DecisionCondition, DecisionTreeContext, DecisionTreeDecision, DecisionTreeNode, DecisionTreeNodeType, DecisionTreeStats } from "./DecisionTree";
16
+ export { sampleAdaptiveDifficultyFixture } from "./AdaptiveDifficultyFixtures";
17
+ export type { AdaptiveDifficultyAdjustment, AdaptiveDifficultyChangeType, AdaptiveDifficultyFixture, AdaptiveDifficultyFixtureOptions, AdaptiveDifficultyMetricSummary, AdaptiveDifficultyMetricType, AdaptiveDifficultyStrategy, AdaptiveDifficultyTriggeredRule } from "./AdaptiveDifficultyFixtures";
18
+ export { sampleAnalyticsPrivacyFixture } from "./AnalyticsPrivacyFixtures";
19
+ export type { AnalyticsConsentCategory, AnalyticsPrivacyFixture, AnalyticsPrivacyFixtureOptions, AnalyticsProviderMode } from "./AnalyticsPrivacyFixtures";
20
+ export { sampleCulturalBehaviorFixture } from "./CulturalBehaviorFixtures";
21
+ export type { CulturalBehaviorFixture, CulturalBehaviorFixtureOptions, CulturalCommunicationStyle, CulturalEntityFixture, CulturalPersonalSpace, CulturalRelationship, CultureDescriptor, ProxemicZone } from "./CulturalBehaviorFixtures";
22
+ export { sampleCloudServiceFixture } from "./CloudServiceFixtures";
23
+ export type { CloudFixtureServiceStatus, CloudServiceFixture, CloudServiceFixtureOptions } from "./CloudServiceFixtures";
24
+ export { sampleLearningAgentFixture } from "./LearningAgentFixtures";
25
+ export type { LearningAgentFixture, LearningAgentFixtureOptions } from "./LearningAgentFixtures";
26
+ export { sampleNetworkReplicationFixture } from "./NetworkReplicationFixtures";
27
+ export type { NetworkDeltaSummary, NetworkEntityState, NetworkInputFrame, NetworkInterestSummary, NetworkInterpolationSummary, NetworkPredictionSummary, NetworkReplicationFixture, NetworkReplicationFixtureOptions, NetworkReplicationMode } from "./NetworkReplicationFixtures";
28
+ export { samplePlayerBehaviorTelemetryFixture } from "./PlayerBehaviorTelemetryFixtures";
29
+ export type { PlayerBehaviorPatternTelemetry, PlayerBehaviorTelemetryFixture, PlayerBehaviorTelemetryOptions, PlayerEngagementLevel, PlayerEventCategory, PlayerEventSeverity, PlayerPlaystyle, PlayerSkillAssessmentTelemetry, PlayerSkillLevel } from "./PlayerBehaviorTelemetryFixtures";
30
+ export { sampleProceduralContentAdaptationFixture } from "./ProceduralContentAdaptationFixtures";
31
+ export type { AdaptiveAiStrategy, GeneratedContentDifficulty, GeneratedContentTelemetry, GeneratedContentType, ProceduralContentAdaptationFixture, ProceduralContentAdaptationOptions } from "./ProceduralContentAdaptationFixtures";
32
+ export { sampleFpsEnemyTactics, sampleFpsHudOverlay, sampleFpsLevelLayout, sampleFpsWeaponCycle, samplePowerUpEffect, sampleSpaceShooterWave, sampleWeaponBurst } from "./WeaponSystem";
33
+ export type { FpsEnemyTacticalState, FpsEnemyTacticsInput, FpsEnemyTacticsSample, FpsFiringMode, FpsHudOverlayInput, FpsHudOverlaySample, FpsLevelCorridor, FpsLevelLayoutInput, FpsLevelLayoutSample, FpsLevelPickup, FpsLevelPoint, FpsLevelRoom, FpsPickupType, FpsWeaponCycleInput, FpsWeaponCycleSample, FpsWeaponType, PowerUpEffectInput, PowerUpEffectSample, SpaceShooterEnemyType, SpaceShooterFormation, SpaceShooterPowerUpType, SpaceShooterSpawn, SpaceShooterWaveInput, SpaceShooterWaveSample, WeaponBurst, WeaponBurstInput, WeaponKind, WeaponProjectile } from "./WeaponSystem";
34
+ export { BehaviorHost } from "./BehaviorHost";
35
+ export type { BehaviorHostOptions } from "./BehaviorHost";
36
+ export { BehaviorRegistry } from "./BehaviorRegistry";
37
+ export type { BehaviorFactory } from "./BehaviorRegistry";
38
+ export { BehaviorSystem } from "./BehaviorSystem";
39
+ export type { BehaviorError, BehaviorSystemUpdateOptions } from "./BehaviorSystem";
40
+ export { ScriptContext } from "./ScriptContext";
41
+ export type { ScriptContextOptions } from "./ScriptContext";
42
+ export { deserializeGraph, serializeGraph, validateGraph } from "./VisualGraph";
43
+ export type { SerializedVisualGraph, VisualEdge, VisualGraph } from "./VisualGraph";
44
+ export { VisualGraphExecutor } from "./VisualGraphExecutor";
45
+ export type { VisualExecutionResult } from "./VisualGraphExecutor";
46
+ export type { VisualAnimationControllerState, VisualAnimationEvent, VisualCameraState, VisualCollisionEvent, VisualCombatEvent, VisualGraphDiagnostic, VisualGraphExecutionContext, VisualGraphSideEffect, VisualGraphValidationOptions, VisualInputSet, VisualInputSnapshot, VisualOverlapResult, VisualPhysicsBodyState, VisualRaycastHit, VisualRuntimeNodeState, VisualStateCollection, VisualVector3 } from "./VisualGraphContext";
47
+ export { createVisualNode, getVisualNodeDefinition, listVisualNodeDefinitions } from "./VisualNodeCatalog";
48
+ export type { VisualNodeCategory, VisualNodeDefinition } from "./VisualNodeCatalog";
49
+ export { validateNode } from "./VisualNode";
50
+ export type { VisualNode, VisualPort, VisualPortDirection, VisualPortType } from "./VisualNode";
51
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../packages/scripting/src/index.ts"],"names":[],"mappings":"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"}