@aura3d/engine 1.0.3 → 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 (210) hide show
  1. package/README.md +338 -14
  2. package/dist/animation/AnimationClipEvents.d.ts +57 -0
  3. package/dist/animation/AnimationClipEvents.d.ts.map +1 -0
  4. package/dist/animation/AnimationClipEvents.js +171 -0
  5. package/dist/animation/AnimationClipEvents.js.map +1 -0
  6. package/dist/animation/AnimationClipRegistry.d.ts +76 -0
  7. package/dist/animation/AnimationClipRegistry.d.ts.map +1 -0
  8. package/dist/animation/AnimationClipRegistry.js +130 -0
  9. package/dist/animation/AnimationClipRegistry.js.map +1 -0
  10. package/dist/animation/AnimationController.d.ts +168 -0
  11. package/dist/animation/AnimationController.d.ts.map +1 -0
  12. package/dist/animation/AnimationController.js +619 -0
  13. package/dist/animation/AnimationController.js.map +1 -0
  14. package/dist/animation/AnimationStateGraph.d.ts +2 -0
  15. package/dist/animation/AnimationStateGraph.d.ts.map +1 -0
  16. package/dist/animation/AnimationStateGraph.js +2 -0
  17. package/dist/animation/AnimationStateGraph.js.map +1 -0
  18. package/dist/animation/AnimationStateMachine.d.ts +16 -0
  19. package/dist/animation/AnimationStateMachine.d.ts.map +1 -1
  20. package/dist/animation/AnimationStateMachine.js +69 -7
  21. package/dist/animation/AnimationStateMachine.js.map +1 -1
  22. package/dist/animation/HumanoidRetargeting.d.ts +76 -0
  23. package/dist/animation/HumanoidRetargeting.d.ts.map +1 -0
  24. package/dist/animation/HumanoidRetargeting.js +331 -0
  25. package/dist/animation/HumanoidRetargeting.js.map +1 -0
  26. package/dist/animation/browser-index.d.ts +18 -0
  27. package/dist/animation/browser-index.d.ts.map +1 -1
  28. package/dist/animation/browser-index.js +13 -0
  29. package/dist/animation/browser-index.js.map +1 -1
  30. package/dist/animation/index.d.ts +17 -1
  31. package/dist/animation/index.d.ts.map +1 -1
  32. package/dist/animation/index.js +12 -1
  33. package/dist/animation/index.js.map +1 -1
  34. package/dist/animation/threejs-compatibility/AnimationDiagnostics.d.ts.map +1 -1
  35. package/dist/animation/threejs-compatibility/AnimationDiagnostics.js +3 -5
  36. package/dist/animation/threejs-compatibility/AnimationDiagnostics.js.map +1 -1
  37. package/dist/assets/GLTFAnimationRuntime.js +1 -1
  38. package/dist/assets/GLTFLoader.js +1 -1
  39. package/dist/aura3d-cli/cli.js +225 -8
  40. package/dist/aura3d-cli/cli.js.map +1 -1
  41. package/dist/aura3d-cli/index.d.ts +283 -3
  42. package/dist/aura3d-cli/index.d.ts.map +1 -1
  43. package/dist/aura3d-cli/index.js +1028 -4
  44. package/dist/aura3d-cli/index.js.map +1 -1
  45. package/dist/aura3d-cli/pull-bridge.d.ts +108 -0
  46. package/dist/aura3d-cli/pull-bridge.d.ts.map +1 -0
  47. package/dist/aura3d-cli/pull-bridge.js +333 -0
  48. package/dist/aura3d-cli/pull-bridge.js.map +1 -0
  49. package/dist/create-aura3d/index.d.ts +1 -1
  50. package/dist/create-aura3d/index.d.ts.map +1 -1
  51. package/dist/create-aura3d/index.js +9 -2
  52. package/dist/create-aura3d/index.js.map +1 -1
  53. package/dist/editor-runtime/ProjectSerializer.d.ts +74 -1
  54. package/dist/editor-runtime/ProjectSerializer.d.ts.map +1 -1
  55. package/dist/editor-runtime/ProjectSerializer.js +123 -6
  56. package/dist/editor-runtime/ProjectSerializer.js.map +1 -1
  57. package/dist/editor-runtime/TimelineModel.d.ts +18 -0
  58. package/dist/editor-runtime/TimelineModel.d.ts.map +1 -1
  59. package/dist/editor-runtime/TimelineModel.js +67 -3
  60. package/dist/editor-runtime/TimelineModel.js.map +1 -1
  61. package/dist/editor-runtime/TimelineRuntimeBridge.d.ts +98 -0
  62. package/dist/editor-runtime/TimelineRuntimeBridge.d.ts.map +1 -0
  63. package/dist/editor-runtime/TimelineRuntimeBridge.js +186 -0
  64. package/dist/editor-runtime/TimelineRuntimeBridge.js.map +1 -0
  65. package/dist/editor-runtime/index.d.ts +3 -1
  66. package/dist/editor-runtime/index.d.ts.map +1 -1
  67. package/dist/editor-runtime/index.js +1 -0
  68. package/dist/editor-runtime/index.js.map +1 -1
  69. package/dist/engine/agent-api/AnimationController.d.ts +607 -0
  70. package/dist/engine/agent-api/AnimationController.d.ts.map +1 -0
  71. package/dist/engine/agent-api/AnimationController.js +2192 -0
  72. package/dist/engine/agent-api/AnimationController.js.map +1 -0
  73. package/dist/engine/agent-api/AssetEvidence.d.ts +88 -0
  74. package/dist/engine/agent-api/AssetEvidence.d.ts.map +1 -0
  75. package/dist/engine/agent-api/AssetEvidence.js +157 -0
  76. package/dist/engine/agent-api/AssetEvidence.js.map +1 -0
  77. package/dist/engine/agent-api/AuraAppHandle.d.ts +55 -0
  78. package/dist/engine/agent-api/AuraAppHandle.d.ts.map +1 -0
  79. package/dist/engine/agent-api/AuraAppHandle.js +15 -0
  80. package/dist/engine/agent-api/AuraAppHandle.js.map +1 -0
  81. package/dist/engine/agent-api/AuraVoiceBridge.d.ts +96 -0
  82. package/dist/engine/agent-api/AuraVoiceBridge.d.ts.map +1 -0
  83. package/dist/engine/agent-api/AuraVoiceBridge.js +370 -0
  84. package/dist/engine/agent-api/AuraVoiceBridge.js.map +1 -0
  85. package/dist/engine/agent-api/CartoonDirector.d.ts +95 -0
  86. package/dist/engine/agent-api/CartoonDirector.d.ts.map +1 -0
  87. package/dist/engine/agent-api/CartoonDirector.js +342 -0
  88. package/dist/engine/agent-api/CartoonDirector.js.map +1 -0
  89. package/dist/engine/agent-api/CartoonPerformance.d.ts +149 -0
  90. package/dist/engine/agent-api/CartoonPerformance.d.ts.map +1 -0
  91. package/dist/engine/agent-api/CartoonPerformance.js +317 -0
  92. package/dist/engine/agent-api/CartoonPerformance.js.map +1 -0
  93. package/dist/engine/agent-api/CartoonRenderQueue.d.ts +132 -0
  94. package/dist/engine/agent-api/CartoonRenderQueue.d.ts.map +1 -0
  95. package/dist/engine/agent-api/CartoonRenderQueue.js +385 -0
  96. package/dist/engine/agent-api/CartoonRenderQueue.js.map +1 -0
  97. package/dist/engine/agent-api/CharacterAssembly.d.ts +126 -0
  98. package/dist/engine/agent-api/CharacterAssembly.d.ts.map +1 -0
  99. package/dist/engine/agent-api/CharacterAssembly.js +280 -0
  100. package/dist/engine/agent-api/CharacterAssembly.js.map +1 -0
  101. package/dist/engine/agent-api/DialoguePerformance.d.ts +150 -0
  102. package/dist/engine/agent-api/DialoguePerformance.d.ts.map +1 -0
  103. package/dist/engine/agent-api/DialoguePerformance.js +335 -0
  104. package/dist/engine/agent-api/DialoguePerformance.js.map +1 -0
  105. package/dist/engine/agent-api/FrameLoop.d.ts +70 -0
  106. package/dist/engine/agent-api/FrameLoop.d.ts.map +1 -0
  107. package/dist/engine/agent-api/FrameLoop.js +165 -0
  108. package/dist/engine/agent-api/FrameLoop.js.map +1 -0
  109. package/dist/engine/agent-api/GameAppRuntime.d.ts +62 -0
  110. package/dist/engine/agent-api/GameAppRuntime.d.ts.map +1 -0
  111. package/dist/engine/agent-api/GameAppRuntime.js +189 -0
  112. package/dist/engine/agent-api/GameAppRuntime.js.map +1 -0
  113. package/dist/engine/agent-api/GameAssetValidation.d.ts +279 -0
  114. package/dist/engine/agent-api/GameAssetValidation.d.ts.map +1 -0
  115. package/dist/engine/agent-api/GameAssetValidation.js +719 -0
  116. package/dist/engine/agent-api/GameAssetValidation.js.map +1 -0
  117. package/dist/engine/agent-api/GameEvidence.d.ts +148 -0
  118. package/dist/engine/agent-api/GameEvidence.d.ts.map +1 -0
  119. package/dist/engine/agent-api/GameEvidence.js +269 -0
  120. package/dist/engine/agent-api/GameEvidence.js.map +1 -0
  121. package/dist/engine/agent-api/GameRuntime.d.ts +931 -0
  122. package/dist/engine/agent-api/GameRuntime.d.ts.map +1 -0
  123. package/dist/engine/agent-api/GameRuntime.js +2229 -0
  124. package/dist/engine/agent-api/GameRuntime.js.map +1 -0
  125. package/dist/engine/agent-api/GameSceneBridge.d.ts +54 -0
  126. package/dist/engine/agent-api/GameSceneBridge.d.ts.map +1 -0
  127. package/dist/engine/agent-api/GameSceneBridge.js +110 -0
  128. package/dist/engine/agent-api/GameSceneBridge.js.map +1 -0
  129. package/dist/engine/agent-api/PromptAnimationContract.d.ts +278 -0
  130. package/dist/engine/agent-api/PromptAnimationContract.d.ts.map +1 -0
  131. package/dist/engine/agent-api/PromptAnimationContract.js +238 -0
  132. package/dist/engine/agent-api/PromptAnimationContract.js.map +1 -0
  133. package/dist/engine/agent-api/PromptAnimationEvidence.d.ts +183 -0
  134. package/dist/engine/agent-api/PromptAnimationEvidence.d.ts.map +1 -0
  135. package/dist/engine/agent-api/PromptAnimationEvidence.js +454 -0
  136. package/dist/engine/agent-api/PromptAnimationEvidence.js.map +1 -0
  137. package/dist/engine/agent-api/RuntimeNodeHandle.d.ts +100 -0
  138. package/dist/engine/agent-api/RuntimeNodeHandle.d.ts.map +1 -0
  139. package/dist/engine/agent-api/RuntimeNodeHandle.js +36 -0
  140. package/dist/engine/agent-api/RuntimeNodeHandle.js.map +1 -0
  141. package/dist/engine/agent-api/ShotTimeline.d.ts +179 -0
  142. package/dist/engine/agent-api/ShotTimeline.d.ts.map +1 -0
  143. package/dist/engine/agent-api/ShotTimeline.js +264 -0
  144. package/dist/engine/agent-api/ShotTimeline.js.map +1 -0
  145. package/dist/engine/agent-api/VisemeController.d.ts +89 -0
  146. package/dist/engine/agent-api/VisemeController.d.ts.map +1 -0
  147. package/dist/engine/agent-api/VisemeController.js +207 -0
  148. package/dist/engine/agent-api/VisemeController.js.map +1 -0
  149. package/dist/engine/agent-api/game-kits/fighting.d.ts +123 -0
  150. package/dist/engine/agent-api/game-kits/fighting.d.ts.map +1 -0
  151. package/dist/engine/agent-api/game-kits/fighting.js +483 -0
  152. package/dist/engine/agent-api/game-kits/fighting.js.map +1 -0
  153. package/dist/engine/agent-api/game-kits/index.d.ts +15 -0
  154. package/dist/engine/agent-api/game-kits/index.d.ts.map +1 -0
  155. package/dist/engine/agent-api/game-kits/index.js +6 -0
  156. package/dist/engine/agent-api/game-kits/index.js.map +1 -0
  157. package/dist/engine/agent-api/humanoid-walk-runtime.d.ts +1 -0
  158. package/dist/engine/agent-api/humanoid-walk-runtime.d.ts.map +1 -1
  159. package/dist/engine/agent-api/index.d.ts +495 -1
  160. package/dist/engine/agent-api/index.d.ts.map +1 -1
  161. package/dist/engine/agent-api/index.js +752 -6
  162. package/dist/engine/agent-api/index.js.map +1 -1
  163. package/dist/engine/agent-api/product-viewer-runtime.d.ts.map +1 -1
  164. package/dist/index.d.ts +1 -0
  165. package/dist/index.js +1 -0
  166. package/dist/physics/CollisionVolumes.d.ts +57 -0
  167. package/dist/physics/CollisionVolumes.d.ts.map +1 -0
  168. package/dist/physics/CollisionVolumes.js +159 -0
  169. package/dist/physics/CollisionVolumes.js.map +1 -0
  170. package/dist/physics/HitboxWorld.d.ts +250 -0
  171. package/dist/physics/HitboxWorld.d.ts.map +1 -0
  172. package/dist/physics/HitboxWorld.js +771 -0
  173. package/dist/physics/HitboxWorld.js.map +1 -0
  174. package/dist/physics/KinematicBody.d.ts +157 -0
  175. package/dist/physics/KinematicBody.d.ts.map +1 -0
  176. package/dist/physics/KinematicBody.js +405 -0
  177. package/dist/physics/KinematicBody.js.map +1 -0
  178. package/dist/physics/KinematicWorld.d.ts +58 -0
  179. package/dist/physics/KinematicWorld.d.ts.map +1 -0
  180. package/dist/physics/KinematicWorld.js +246 -0
  181. package/dist/physics/KinematicWorld.js.map +1 -0
  182. package/dist/physics/index.d.ts +4 -0
  183. package/dist/physics/index.d.ts.map +1 -1
  184. package/dist/physics/index.js +4 -0
  185. package/dist/physics/index.js.map +1 -1
  186. package/dist/rendering/ForwardPass.js +2 -2
  187. package/dist/rendering/ShaderLibrary.js +2 -2
  188. package/dist/rendering/SkinnedLitMaterial.js +3 -3
  189. package/dist/rendering/SkinnedUnlitMaterial.js +3 -3
  190. package/dist/scene/Renderable.js +2 -2
  191. package/dist/scripting/VisualGraph.d.ts +2 -1
  192. package/dist/scripting/VisualGraph.d.ts.map +1 -1
  193. package/dist/scripting/VisualGraph.js +118 -1
  194. package/dist/scripting/VisualGraph.js.map +1 -1
  195. package/dist/scripting/VisualGraphContext.d.ts +123 -0
  196. package/dist/scripting/VisualGraphContext.d.ts.map +1 -0
  197. package/dist/scripting/VisualGraphContext.js +2 -0
  198. package/dist/scripting/VisualGraphContext.js.map +1 -0
  199. package/dist/scripting/VisualGraphExecutor.d.ts +6 -1
  200. package/dist/scripting/VisualGraphExecutor.d.ts.map +1 -1
  201. package/dist/scripting/VisualGraphExecutor.js +364 -7
  202. package/dist/scripting/VisualGraphExecutor.js.map +1 -1
  203. package/dist/scripting/VisualNodeCatalog.d.ts +1 -1
  204. package/dist/scripting/VisualNodeCatalog.d.ts.map +1 -1
  205. package/dist/scripting/VisualNodeCatalog.js +61 -1
  206. package/dist/scripting/VisualNodeCatalog.js.map +1 -1
  207. package/dist/scripting/index.d.ts +1 -0
  208. package/dist/scripting/index.d.ts.map +1 -1
  209. package/dist/scripting/index.js.map +1 -1
  210. package/package.json +203 -118
@@ -0,0 +1,123 @@
1
+ import { createCombatWorld, createGameCameraDirector, createGameEffects, type GameCombatMove, type GameCombatWorld, type GameInputController, type GameKinematicBody } from "../GameRuntime";
2
+ import type { AuraRuntimeNodeSpec, AuraSceneNode } from "../index";
3
+ export interface FightingControls {
4
+ readonly actions: Record<string, readonly string[]>;
5
+ readonly axes: Record<string, {
6
+ readonly negative?: string;
7
+ readonly positive?: string;
8
+ readonly gamepadAxis?: number;
9
+ }>;
10
+ }
11
+ export interface FightingStageOptions {
12
+ readonly id?: string;
13
+ readonly width?: number;
14
+ readonly floorY?: number;
15
+ readonly depth?: number;
16
+ readonly safeInset?: number;
17
+ readonly palette?: {
18
+ readonly floor?: string;
19
+ readonly lane?: string;
20
+ readonly aura?: string;
21
+ readonly warning?: string;
22
+ readonly skyline?: string;
23
+ readonly fog?: string;
24
+ };
25
+ }
26
+ export interface FightingStageSafeZone {
27
+ readonly minX: number;
28
+ readonly maxX: number;
29
+ readonly minY: number;
30
+ readonly maxY: number;
31
+ readonly minZ: number;
32
+ readonly maxZ: number;
33
+ }
34
+ export interface FightingStageLayer {
35
+ readonly id: string;
36
+ readonly role: "foreground" | "combat-lane" | "midground" | "background" | "skyline" | "parallax";
37
+ readonly parallax: number;
38
+ readonly cameraSafe: boolean;
39
+ readonly blocksFighters: boolean;
40
+ readonly nodeIds: readonly string[];
41
+ }
42
+ export interface FightingStageEvidence {
43
+ readonly stageId: string;
44
+ readonly layerCount: number;
45
+ readonly safeZone: FightingStageSafeZone;
46
+ readonly combatBounds: FightingStageSafeZone;
47
+ readonly collisionBounds: FightingStageSafeZone;
48
+ readonly noBlockingGeometry: boolean;
49
+ readonly lightRigCount: number;
50
+ readonly screenshotAcceptanceHints: readonly string[];
51
+ }
52
+ export interface FightingStageBuild {
53
+ readonly kind: "aura-fighting-stage";
54
+ readonly id: string;
55
+ readonly nodes: readonly AuraSceneNode[];
56
+ readonly layers: readonly FightingStageLayer[];
57
+ readonly safeZone: FightingStageSafeZone;
58
+ readonly combatBounds: FightingStageSafeZone;
59
+ readonly evidence: FightingStageEvidence;
60
+ }
61
+ export type FightingStagePresetName = "training-grid" | "rooftop-city" | "neon-dojo" | "industrial-arena";
62
+ export interface FightingStageValidationIssue {
63
+ readonly severity: "warning" | "error";
64
+ readonly code: string;
65
+ readonly message: string;
66
+ readonly path?: string | undefined;
67
+ }
68
+ export declare const fightingStagePresets: Record<FightingStagePresetName, FightingStageOptions>;
69
+ export declare function fightingStagePreset(name: FightingStagePresetName, overrides?: FightingStageOptions): FightingStageBuild;
70
+ export interface FightingGameKitOptions {
71
+ readonly playerId?: string;
72
+ readonly opponentId?: string;
73
+ readonly autoListen?: boolean;
74
+ readonly target?: EventTarget;
75
+ readonly stage?: FightingStageOptions;
76
+ readonly opponentAi?: boolean;
77
+ readonly random?: () => number;
78
+ }
79
+ export type FightingActorState = "idle" | "walk" | "jump" | "dash" | "guard" | "light" | "heavy" | "special" | "hitstun";
80
+ export interface FightingGameSnapshot {
81
+ readonly kind: "aura-fighting-game-kit";
82
+ readonly player: ReturnType<GameKinematicBody["snapshot"]>;
83
+ readonly opponent: ReturnType<GameKinematicBody["snapshot"]>;
84
+ readonly combat: ReturnType<GameCombatWorld["snapshot"]>;
85
+ readonly states: {
86
+ readonly player: FightingActorState;
87
+ readonly opponent: FightingActorState;
88
+ };
89
+ }
90
+ export interface FightingGameKit {
91
+ readonly kind: "aura-fighting-game-kit";
92
+ readonly controls: FightingControls;
93
+ readonly moves: Record<string, GameCombatMove>;
94
+ readonly input: GameInputController;
95
+ readonly bodies: {
96
+ readonly player: GameKinematicBody;
97
+ readonly opponent: GameKinematicBody;
98
+ };
99
+ readonly combat: ReturnType<typeof createCombatWorld>;
100
+ readonly camera: ReturnType<typeof createGameCameraDirector>;
101
+ readonly effects: ReturnType<typeof createGameEffects>;
102
+ update(dt: number): FightingGameSnapshot;
103
+ snapshot(): FightingGameSnapshot;
104
+ }
105
+ export declare function fighterRuntimeNode(id: string, tags?: readonly string[]): AuraRuntimeNodeSpec;
106
+ export declare function defaultFightingControls(): FightingControls;
107
+ export declare function defaultFightingMoves(): Record<string, GameCombatMove>;
108
+ export declare function createFightingStage(options?: FightingStageOptions): FightingStageBuild;
109
+ export declare function fightingStageNodes(options?: FightingStageOptions): readonly AuraSceneNode[];
110
+ export declare function validateFightingStage(stage: FightingStageBuild): readonly FightingStageValidationIssue[];
111
+ export declare function createFightingGameKit(options?: FightingGameKitOptions): FightingGameKit;
112
+ export declare const fighting: {
113
+ readonly controls: typeof defaultFightingControls;
114
+ readonly moves: typeof defaultFightingMoves;
115
+ readonly runtimeNode: typeof fighterRuntimeNode;
116
+ readonly stagePreset: typeof fightingStagePreset;
117
+ readonly stagePresets: Record<FightingStagePresetName, FightingStageOptions>;
118
+ readonly stage: typeof createFightingStage;
119
+ readonly validateStage: typeof validateFightingStage;
120
+ readonly stageNodes: typeof fightingStageNodes;
121
+ readonly createKit: typeof createFightingGameKit;
122
+ };
123
+ //# sourceMappingURL=fighting.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fighting.d.ts","sourceRoot":"","sources":["../../../../../../packages/engine/src/agent-api/game-kits/fighting.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,wBAAwB,EACxB,iBAAiB,EAGjB,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EAEvB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEnE,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC;IACpD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC1H;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,CAAC,EAAE;QACjB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;CACH;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,YAAY,GAAG,aAAa,GAAG,WAAW,GAAG,YAAY,GAAG,SAAS,GAAG,UAAU,CAAC;IAClG,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,qBAAqB,CAAC;IACzC,QAAQ,CAAC,YAAY,EAAE,qBAAqB,CAAC;IAC7C,QAAQ,CAAC,eAAe,EAAE,qBAAqB,CAAC;IAChD,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAC;IACrC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,yBAAyB,EAAE,SAAS,MAAM,EAAE,CAAC;CACvD;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,qBAAqB,CAAC;IACrC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,SAAS,aAAa,EAAE,CAAC;IACzC,QAAQ,CAAC,MAAM,EAAE,SAAS,kBAAkB,EAAE,CAAC;IAC/C,QAAQ,CAAC,QAAQ,EAAE,qBAAqB,CAAC;IACzC,QAAQ,CAAC,YAAY,EAAE,qBAAqB,CAAC;IAC7C,QAAQ,CAAC,QAAQ,EAAE,qBAAqB,CAAC;CAC1C;AAED,MAAM,MAAM,uBAAuB,GAAG,eAAe,GAAG,cAAc,GAAG,WAAW,GAAG,kBAAkB,CAAC;AAE1G,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,QAAQ,EAAE,SAAS,GAAG,OAAO,CAAC;IACvC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACpC;AAED,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,uBAAuB,EAAE,oBAAoB,CAyDtF,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,uBAAuB,EAAE,SAAS,GAAE,oBAAyB,GAAG,kBAAkB,CAU3H;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;IAC9B,QAAQ,CAAC,KAAK,CAAC,EAAE,oBAAoB,CAAC;IACtC,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,MAAM,CAAC;CAChC;AAED,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,CAAC;AAEzH,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,IAAI,EAAE,wBAAwB,CAAC;IACxC,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC,CAAC;IAC3D,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC,CAAC;IAC7D,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC;IACzD,QAAQ,CAAC,MAAM,EAAE;QACf,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAC;QACpC,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,CAAC;KACvC,CAAC;CACH;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,wBAAwB,CAAC;IACxC,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;IACpC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAC/C,QAAQ,CAAC,KAAK,EAAE,mBAAmB,CAAC;IACpC,QAAQ,CAAC,MAAM,EAAE;QACf,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;QACnC,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;KACtC,CAAC;IACF,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC;IACtD,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,wBAAwB,CAAC,CAAC;IAC7D,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC;IACvD,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,oBAAoB,CAAC;IACzC,QAAQ,IAAI,oBAAoB,CAAC;CAClC;AAED,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,GAAE,SAAS,MAAM,EAAgB,GAAG,mBAAmB,CAMzG;AAED,wBAAgB,uBAAuB,IAAI,gBAAgB,CAkB1D;AAED,wBAAgB,oBAAoB,IAAI,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CA0DrE;AAED,wBAAgB,mBAAmB,CAAC,OAAO,GAAE,oBAAyB,GAAG,kBAAkB,CA0H1F;AAED,wBAAgB,kBAAkB,CAAC,OAAO,GAAE,oBAAyB,GAAG,SAAS,aAAa,EAAE,CAE/F;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,kBAAkB,GAAG,SAAS,4BAA4B,EAAE,CAqDxG;AAED,wBAAgB,qBAAqB,CAAC,OAAO,GAAE,sBAA2B,GAAG,eAAe,CA4H3F;AAED,eAAO,MAAM,QAAQ;;;;;;;;;;CAUX,CAAC"}
@@ -0,0 +1,483 @@
1
+ import { createCombatWorld, createGameCameraDirector, createGameEffects, createGameInput, createGameKinematicBody } from "../GameRuntime.js";
2
+ export const fightingStagePresets = {
3
+ "training-grid": {
4
+ id: "training-grid",
5
+ width: 6.8,
6
+ depth: 2.45,
7
+ safeInset: 0.42,
8
+ palette: {
9
+ floor: "#101923",
10
+ lane: "#31e6b1",
11
+ aura: "#5cff87",
12
+ warning: "#ffb84d",
13
+ skyline: "#123247",
14
+ fog: "#0a261e"
15
+ }
16
+ },
17
+ "rooftop-city": {
18
+ id: "rooftop-city",
19
+ width: 7.4,
20
+ depth: 2.65,
21
+ safeInset: 0.48,
22
+ palette: {
23
+ floor: "#121820",
24
+ lane: "#68d8ff",
25
+ aura: "#8af7ff",
26
+ warning: "#ffd166",
27
+ skyline: "#1d3557",
28
+ fog: "#081421"
29
+ }
30
+ },
31
+ "neon-dojo": {
32
+ id: "neon-dojo",
33
+ width: 6.9,
34
+ depth: 2.5,
35
+ safeInset: 0.44,
36
+ palette: {
37
+ floor: "#130b18",
38
+ lane: "#ff5cbe",
39
+ aura: "#32ffd2",
40
+ warning: "#ffec70",
41
+ skyline: "#2b1640",
42
+ fog: "#10071c"
43
+ }
44
+ },
45
+ "industrial-arena": {
46
+ id: "industrial-arena",
47
+ width: 7.1,
48
+ depth: 2.75,
49
+ safeInset: 0.5,
50
+ palette: {
51
+ floor: "#171b1c",
52
+ lane: "#f28f3b",
53
+ aura: "#f7c948",
54
+ warning: "#ff5c5c",
55
+ skyline: "#263238",
56
+ fog: "#101515"
57
+ }
58
+ }
59
+ };
60
+ export function fightingStagePreset(name, overrides = {}) {
61
+ const preset = fightingStagePresets[name];
62
+ return createFightingStage({
63
+ ...preset,
64
+ ...overrides,
65
+ palette: {
66
+ ...preset.palette,
67
+ ...overrides.palette
68
+ }
69
+ });
70
+ }
71
+ export function fighterRuntimeNode(id, tags = ["fighter"]) {
72
+ return {
73
+ id,
74
+ mutable: true,
75
+ tags
76
+ };
77
+ }
78
+ export function defaultFightingControls() {
79
+ return {
80
+ actions: {
81
+ moveLeft: ["KeyA", "ArrowLeft", "GamepadDPadLeft"],
82
+ moveRight: ["KeyD", "ArrowRight", "GamepadDPadRight"],
83
+ jump: ["KeyW", "ArrowUp", "Space", "GamepadA"],
84
+ crouch: ["KeyS", "ArrowDown", "GamepadDPadDown"],
85
+ dash: ["ShiftLeft", "ShiftRight", "GamepadRB"],
86
+ guard: ["KeyK", "GamepadLB"],
87
+ light: ["KeyJ", "GamepadX"],
88
+ heavy: ["KeyI", "GamepadY"],
89
+ special: ["KeyL", "GamepadB"],
90
+ pause: ["Escape", "GamepadStart"]
91
+ },
92
+ axes: {
93
+ moveX: { negative: "moveLeft", positive: "moveRight", gamepadAxis: 0 }
94
+ }
95
+ };
96
+ }
97
+ export function defaultFightingMoves() {
98
+ return {
99
+ light: {
100
+ id: "light",
101
+ name: "Light Strike",
102
+ damage: 6,
103
+ guardDamage: 3,
104
+ hitStop: 0.045,
105
+ hitStun: 10,
106
+ blockStun: 6,
107
+ recovery: 8,
108
+ activeFrames: [3, 6],
109
+ durationFrames: 16,
110
+ knockback: [0.12, 0.02, 0],
111
+ hitboxes: [{ id: "light-palm", offset: [0.52, 0.94, 0], size: [0.5, 0.38, 0.5] }]
112
+ },
113
+ heavy: {
114
+ id: "heavy",
115
+ name: "Heavy Breaker",
116
+ damage: 12,
117
+ guardDamage: 8,
118
+ hitStop: 0.07,
119
+ hitStun: 16,
120
+ blockStun: 10,
121
+ recovery: 14,
122
+ activeFrames: [6, 10],
123
+ durationFrames: 28,
124
+ knockback: [0.28, 0.05, 0],
125
+ hitboxes: [{ id: "heavy-arc", offset: [0.66, 0.98, 0], size: [0.68, 0.5, 0.56] }]
126
+ },
127
+ special: {
128
+ id: "aura-burst",
129
+ name: "Aura Burst",
130
+ damage: 18,
131
+ guardDamage: 12,
132
+ hitStop: 0.1,
133
+ hitStun: 24,
134
+ blockStun: 14,
135
+ recovery: 22,
136
+ activeFrames: [8, 18],
137
+ durationFrames: 42,
138
+ knockback: [0.46, 0.12, 0],
139
+ hitboxes: [{ id: "aura-burst-wave", offset: [0.9, 0.9, 0], size: [1.25, 0.9, 0.72] }]
140
+ },
141
+ sweep: {
142
+ id: "sweep",
143
+ name: "Low Sweep",
144
+ damage: 8,
145
+ guardDamage: 5,
146
+ hitStop: 0.05,
147
+ hitStun: 18,
148
+ recovery: 13,
149
+ activeFrames: [5, 9],
150
+ durationFrames: 24,
151
+ knockback: [0.18, -0.02, 0],
152
+ hitboxes: [{ id: "low-sweep", offset: [0.54, 0.35, 0], size: [0.7, 0.28, 0.52] }]
153
+ }
154
+ };
155
+ }
156
+ export function createFightingStage(options = {}) {
157
+ const id = options.id ?? "aura-training-grid";
158
+ const width = options.width ?? 6.8;
159
+ const depth = options.depth ?? 2.45;
160
+ const floorY = options.floorY ?? -0.04;
161
+ const safeInset = options.safeInset ?? 0.42;
162
+ const palette = {
163
+ floor: options.palette?.floor ?? "#101923",
164
+ lane: options.palette?.lane ?? "#31e6b1",
165
+ aura: options.palette?.aura ?? "#5cff87",
166
+ warning: options.palette?.warning ?? "#ffb84d",
167
+ skyline: options.palette?.skyline ?? "#123247",
168
+ fog: options.palette?.fog ?? "#0a261e"
169
+ };
170
+ const safeZone = {
171
+ minX: -width / 2 + safeInset,
172
+ maxX: width / 2 - safeInset,
173
+ minY: 0,
174
+ maxY: 2.8,
175
+ minZ: -0.62,
176
+ maxZ: 0.62
177
+ };
178
+ const combatBounds = {
179
+ minX: -width / 2,
180
+ maxX: width / 2,
181
+ minY: 0,
182
+ maxY: 3.2,
183
+ minZ: -0.72,
184
+ maxZ: 0.72
185
+ };
186
+ const nodes = [
187
+ primitive("plane", "fighting foreground floor plane", [0, floorY, 0], [width, 1, depth], palette.floor),
188
+ primitive("box", "left camera safe boundary marker", [-width / 2, 0.18, 0], [0.06, 0.42, 2.2], palette.warning, true),
189
+ primitive("box", "right camera safe boundary marker", [width / 2, 0.18, 0], [0.06, 0.42, 2.2], palette.warning, true),
190
+ primitive("box", "center aura combat lane", [0, 0.012, 0], [0.045, 0.035, 2.1], palette.aura, true),
191
+ primitive("box", "player start lane glow", [-1.45, 0.018, 0.02], [0.78, 0.03, 0.12], palette.lane, true),
192
+ primitive("box", "opponent start lane glow", [1.45, 0.018, 0.02], [0.78, 0.03, 0.12], palette.warning, true),
193
+ primitive("box", "midground left light tower", [-2.85, 0.95, -0.92], [0.16, 1.8, 0.1], palette.lane, true),
194
+ primitive("box", "midground right light tower", [2.85, 0.95, -0.92], [0.16, 1.8, 0.1], palette.warning, true),
195
+ primitive("box", "background skyline slab low", [-1.8, 1.18, -1.22], [1.25, 1.65, 0.08], palette.skyline),
196
+ primitive("box", "background skyline slab high", [0.1, 1.45, -1.28], [1.7, 2.1, 0.08], palette.skyline),
197
+ primitive("box", "background skyline slab right", [2.05, 1.08, -1.18], [1.05, 1.45, 0.08], palette.skyline),
198
+ primitive("plane", "far parallax fog card", [0, 1.24, -1.45], [width * 0.92, 1, 1.75], palette.fog),
199
+ {
200
+ kind: "label",
201
+ label: "hud",
202
+ name: "fighting runtime evidence hud",
203
+ text: "Aura Clash runtime: input / bodies / hitboxes / camera / effects",
204
+ position: [0, 2.25, 0],
205
+ color: "#eafff7",
206
+ background: "#06131a",
207
+ size: 0.24,
208
+ runtime: fighterRuntimeNode("fight-hud", ["hud", "runtime-evidence"])
209
+ }
210
+ ];
211
+ const layers = [
212
+ {
213
+ id: `${id}:foreground`,
214
+ role: "foreground",
215
+ parallax: 1,
216
+ cameraSafe: true,
217
+ blocksFighters: false,
218
+ nodeIds: ["fighting foreground floor plane"]
219
+ },
220
+ {
221
+ id: `${id}:combat-lane`,
222
+ role: "combat-lane",
223
+ parallax: 1,
224
+ cameraSafe: true,
225
+ blocksFighters: false,
226
+ nodeIds: ["center aura combat lane", "player start lane glow", "opponent start lane glow"]
227
+ },
228
+ {
229
+ id: `${id}:midground`,
230
+ role: "midground",
231
+ parallax: 0.72,
232
+ cameraSafe: true,
233
+ blocksFighters: false,
234
+ nodeIds: ["midground left light tower", "midground right light tower"]
235
+ },
236
+ {
237
+ id: `${id}:skyline`,
238
+ role: "skyline",
239
+ parallax: 0.38,
240
+ cameraSafe: true,
241
+ blocksFighters: false,
242
+ nodeIds: ["background skyline slab low", "background skyline slab high", "background skyline slab right"]
243
+ },
244
+ {
245
+ id: `${id}:parallax-fog`,
246
+ role: "parallax",
247
+ parallax: 0.18,
248
+ cameraSafe: true,
249
+ blocksFighters: false,
250
+ nodeIds: ["far parallax fog card"]
251
+ }
252
+ ];
253
+ return {
254
+ kind: "aura-fighting-stage",
255
+ id,
256
+ nodes,
257
+ layers,
258
+ safeZone,
259
+ combatBounds,
260
+ evidence: {
261
+ stageId: id,
262
+ layerCount: layers.length,
263
+ safeZone,
264
+ combatBounds,
265
+ collisionBounds: combatBounds,
266
+ noBlockingGeometry: layers.every((layer) => !layer.blocksFighters),
267
+ lightRigCount: 2,
268
+ screenshotAcceptanceHints: [
269
+ "fighters remain inside the safe zone at default camera framing",
270
+ "midground and skyline nodes stay behind the combat lane",
271
+ "foreground floor remains below fighter silhouettes",
272
+ "parallax fog is background-only and must not occlude HUD or fighters"
273
+ ]
274
+ }
275
+ };
276
+ }
277
+ export function fightingStageNodes(options = {}) {
278
+ return createFightingStage(options).nodes;
279
+ }
280
+ export function validateFightingStage(stage) {
281
+ const issues = [];
282
+ const requiredRoles = ["foreground", "combat-lane", "midground", "skyline", "parallax"];
283
+ for (const role of requiredRoles) {
284
+ if (!stage.layers.some((layer) => layer.role === role)) {
285
+ issues.push({
286
+ severity: "error",
287
+ code: "fighting-stage-layer-missing",
288
+ message: `Fighting stage "${stage.id}" is missing a ${role} layer.`,
289
+ path: `layers.${role}`
290
+ });
291
+ }
292
+ }
293
+ for (const layer of stage.layers) {
294
+ if (layer.blocksFighters) {
295
+ issues.push({
296
+ severity: "error",
297
+ code: "fighting-stage-blocking-layer",
298
+ message: `Layer "${layer.id}" must not block fighter silhouettes at the default camera.`,
299
+ path: `layers.${layer.id}.blocksFighters`
300
+ });
301
+ }
302
+ if (!layer.cameraSafe) {
303
+ issues.push({
304
+ severity: "warning",
305
+ code: "fighting-stage-layer-not-camera-safe",
306
+ message: `Layer "${layer.id}" is not marked camera safe.`,
307
+ path: `layers.${layer.id}.cameraSafe`
308
+ });
309
+ }
310
+ }
311
+ if (stage.safeZone.minX >= stage.safeZone.maxX || stage.safeZone.minY >= stage.safeZone.maxY || stage.safeZone.minZ >= stage.safeZone.maxZ) {
312
+ issues.push({
313
+ severity: "error",
314
+ code: "fighting-stage-safe-zone-invalid",
315
+ message: `Fighting stage "${stage.id}" safe zone must have positive x, y, and z area.`,
316
+ path: "safeZone"
317
+ });
318
+ }
319
+ if (stage.safeZone.minX < stage.combatBounds.minX ||
320
+ stage.safeZone.maxX > stage.combatBounds.maxX ||
321
+ stage.safeZone.minZ < stage.combatBounds.minZ ||
322
+ stage.safeZone.maxZ > stage.combatBounds.maxZ) {
323
+ issues.push({
324
+ severity: "error",
325
+ code: "fighting-stage-safe-zone-outside-combat-bounds",
326
+ message: `Fighting stage "${stage.id}" safe zone must stay inside combat bounds.`,
327
+ path: "safeZone"
328
+ });
329
+ }
330
+ return issues;
331
+ }
332
+ export function createFightingGameKit(options = {}) {
333
+ const playerId = options.playerId ?? "player";
334
+ const opponentId = options.opponentId ?? "opponent";
335
+ const stageWidth = options.stage?.width ?? 6.8;
336
+ const opponentAi = options.opponentAi ?? true;
337
+ const random = () => (options.random ? options.random() : Math.random());
338
+ const controls = defaultFightingControls();
339
+ const moves = defaultFightingMoves();
340
+ const input = createGameInput({
341
+ actions: controls.actions,
342
+ axes: controls.axes,
343
+ target: options.target,
344
+ autoListen: options.autoListen
345
+ });
346
+ const player = createGameKinematicBody({
347
+ id: playerId,
348
+ position: [-1.25, 0, 0],
349
+ bounds: { minX: -stageWidth / 2, maxX: stageWidth / 2, minZ: -0.55, maxZ: 0.55 }
350
+ });
351
+ const opponent = createGameKinematicBody({
352
+ id: opponentId,
353
+ position: [1.25, 0, 0],
354
+ bounds: { minX: -stageWidth / 2, maxX: stageWidth / 2, minZ: -0.55, maxZ: 0.55 }
355
+ });
356
+ const combat = createCombatWorld();
357
+ const camera = createGameCameraDirector({ stageBounds: { minX: -stageWidth / 2, maxX: stageWidth / 2 } });
358
+ const effects = createGameEffects();
359
+ combat.addActor({ id: playerId, team: "p1", position: player.position, facing: 1 });
360
+ combat.addActor({ id: opponentId, team: "p2", position: opponent.position, facing: -1, guarding: false });
361
+ let playerState = "idle";
362
+ let opponentState = "idle";
363
+ const update = (dt) => {
364
+ input.update(dt);
365
+ const moveX = input.axis("moveX");
366
+ let nextPlayerState = Math.abs(moveX) > 0.01 ? "walk" : player.grounded ? "idle" : "jump";
367
+ player.move(moveX, input.held("crouch") ? 1.4 : 2.7);
368
+ if (input.pressed("jump") && player.jump())
369
+ nextPlayerState = "jump";
370
+ if (input.held("guard"))
371
+ nextPlayerState = "guard";
372
+ if (input.pressed("dash")) {
373
+ player.dash([player.facing, 0, 0], 7.6);
374
+ nextPlayerState = "dash";
375
+ }
376
+ player.update(dt);
377
+ const distance = player.position[0] - opponent.position[0];
378
+ const aiAxis = opponentAi && Math.abs(distance) > 1.05 ? Math.sign(distance) : 0;
379
+ let nextOpponentState = Math.abs(aiAxis) > 0.01 ? "walk" : opponent.grounded ? "idle" : "jump";
380
+ opponent.move(aiAxis, 1.7);
381
+ opponent.update(dt);
382
+ const opponentGuarding = opponentAi && Math.abs(distance) < 0.85 && random() < 0.025;
383
+ if (opponentGuarding)
384
+ nextOpponentState = "guard";
385
+ combat.setActor(playerId, {
386
+ position: player.position,
387
+ facing: player.facing,
388
+ guarding: input.held("guard")
389
+ });
390
+ combat.setActor(opponentId, {
391
+ position: opponent.position,
392
+ facing: opponent.position[0] > player.position[0] ? -1 : 1,
393
+ guarding: opponentGuarding
394
+ });
395
+ if (input.pressed("light")) {
396
+ combat.beginAttack(playerId, moves.light);
397
+ nextPlayerState = "light";
398
+ }
399
+ if (input.pressed("heavy")) {
400
+ combat.beginAttack(playerId, moves.heavy);
401
+ nextPlayerState = "heavy";
402
+ }
403
+ if (input.pressed("special")) {
404
+ combat.beginAttack(playerId, moves.special);
405
+ effects.auraBurst(player.position, { ownerId: playerId });
406
+ camera.special(player.position);
407
+ nextPlayerState = "special";
408
+ }
409
+ if (opponentAi && Math.abs(distance) < 0.82 && random() < 0.018) {
410
+ combat.beginAttack(opponentId, moves.light);
411
+ nextOpponentState = "light";
412
+ }
413
+ const combatSnapshot = combat.update(dt);
414
+ const playerActor = combatSnapshot.actors.find((actor) => actor.id === playerId);
415
+ const opponentActor = combatSnapshot.actors.find((actor) => actor.id === opponentId);
416
+ playerState = (playerActor?.stun ?? 0) > 0 ? "hitstun" : nextPlayerState;
417
+ opponentState = (opponentActor?.stun ?? 0) > 0 ? "hitstun" : nextOpponentState;
418
+ for (const event of combatSnapshot.events) {
419
+ if (event.type === "hit") {
420
+ effects.hitSpark(event.position, { ownerId: event.attackerId });
421
+ camera.impact(1.1);
422
+ const targetBody = event.targetId === playerId ? player : event.targetId === opponentId ? opponent : undefined;
423
+ if (targetBody && event.knockback)
424
+ targetBody.applyKnockback(event.knockback);
425
+ }
426
+ if (event.type === "blocked") {
427
+ effects.blockSpark(event.position, { ownerId: event.attackerId });
428
+ camera.impact(0.55);
429
+ }
430
+ }
431
+ effects.update(dt);
432
+ camera.update(dt, [{ id: playerId, position: player.position }, { id: opponentId, position: opponent.position }]);
433
+ return snapshot();
434
+ };
435
+ const snapshot = () => ({
436
+ kind: "aura-fighting-game-kit",
437
+ player: player.snapshot(),
438
+ opponent: opponent.snapshot(),
439
+ combat: combat.snapshot(),
440
+ states: {
441
+ player: playerState,
442
+ opponent: opponentState
443
+ }
444
+ });
445
+ return {
446
+ kind: "aura-fighting-game-kit",
447
+ controls,
448
+ moves,
449
+ input,
450
+ bodies: { player, opponent },
451
+ combat,
452
+ camera,
453
+ effects,
454
+ update,
455
+ snapshot
456
+ };
457
+ }
458
+ export const fighting = {
459
+ controls: defaultFightingControls,
460
+ moves: defaultFightingMoves,
461
+ runtimeNode: fighterRuntimeNode,
462
+ stagePreset: fightingStagePreset,
463
+ stagePresets: fightingStagePresets,
464
+ stage: createFightingStage,
465
+ validateStage: validateFightingStage,
466
+ stageNodes: fightingStageNodes,
467
+ createKit: createFightingGameKit
468
+ };
469
+ function primitive(primitiveKind, name, position, scale, color, emissive = false) {
470
+ return {
471
+ kind: "primitive",
472
+ primitive: primitiveKind,
473
+ name,
474
+ position,
475
+ scale,
476
+ material: emissive
477
+ ? { color, emissive: color, emissiveIntensity: 0.82, roughness: 0.25 }
478
+ : { color, roughness: 0.62, metallic: 0.12 },
479
+ castShadow: primitiveKind !== "plane",
480
+ receiveShadow: true
481
+ };
482
+ }
483
+ //# sourceMappingURL=fighting.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fighting.js","sourceRoot":"","sources":["../../../../../../packages/engine/src/agent-api/game-kits/fighting.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ export * from "./fighting";
2
+ export declare const gameKits: {
3
+ readonly fighting: {
4
+ readonly controls: typeof import("./fighting").defaultFightingControls;
5
+ readonly moves: typeof import("./fighting").defaultFightingMoves;
6
+ readonly runtimeNode: typeof import("./fighting").fighterRuntimeNode;
7
+ readonly stagePreset: typeof import("./fighting").fightingStagePreset;
8
+ readonly stagePresets: Record<import("./fighting").FightingStagePresetName, import("./fighting").FightingStageOptions>;
9
+ readonly stage: typeof import("./fighting").createFightingStage;
10
+ readonly validateStage: typeof import("./fighting").validateFightingStage;
11
+ readonly stageNodes: typeof import("./fighting").fightingStageNodes;
12
+ readonly createKit: typeof import("./fighting").createFightingGameKit;
13
+ };
14
+ };
15
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../packages/engine/src/agent-api/game-kits/index.ts"],"names":[],"mappings":"AAEA,cAAc,YAAY,CAAC;AAE3B,eAAO,MAAM,QAAQ;;;;;;;;;;;;CAEX,CAAC"}