incanto 0.12.0 → 0.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (83) hide show
  1. package/README.md +22 -0
  2. package/bin/incanto-new.mjs +87 -0
  3. package/dist/2d.d.ts +2 -2
  4. package/dist/2d.js +3 -3
  5. package/dist/3d.d.ts +219 -82
  6. package/dist/3d.js +74 -4
  7. package/dist/{behavior-Bod1AyJS.d.ts → behavior-CPibUfnH.d.ts} +4 -2
  8. package/dist/{create-game-C_xf4gm9.js → create-game-Ct86zczq.js} +5 -5
  9. package/dist/{create-game-B2fewJUy.js → create-game-OSntcIiM.js} +5 -5
  10. package/dist/debug.d.ts +1 -1
  11. package/dist/{duplicate-BEvGBtb_.js → duplicate-BINwP0WG.js} +1 -1
  12. package/dist/{gameplay-Dn3yidJw.js → gameplay-sSqrUcnz.js} +75 -3
  13. package/dist/gameplay.d.ts +37 -2
  14. package/dist/gameplay.js +2 -2
  15. package/dist/index.d.ts +3 -3
  16. package/dist/index.js +4 -4
  17. package/dist/{loader-B4OEXDZ8.js → loader-BZqOKfI2.js} +3 -1
  18. package/dist/{loader-BcUDfNHn.d.ts → loader-DILt9PGC.d.ts} +1 -1
  19. package/dist/net.d.ts +1 -1
  20. package/dist/net.js +3 -3
  21. package/dist/{pathfinding-BSiXjd6W.d.ts → pathfinding-RWYkNKx9.d.ts} +1 -1
  22. package/dist/{physics-2d-B6D864oZ.js → physics-2d-BiIdl51r.js} +2 -2
  23. package/dist/{physics-3d-RLNaxRyw.js → physics-3d-D_kUdOjr.js} +2 -2
  24. package/dist/react.d.ts +1 -1
  25. package/dist/react.js +1 -1
  26. package/dist/{register-Cwc-yCYx.js → register-BFFE1Mh1.js} +2 -2
  27. package/dist/{register-ysLR3WQS.js → register-C9-16x_t.js} +562 -157
  28. package/dist/{register-BD6zgrv_.js → register-Djwckzgx.js} +2 -2
  29. package/dist/{register-DJZXxwAn.js → register-nObreUQR.js} +1 -1
  30. package/dist/test.d.ts +2 -2
  31. package/dist/test.js +10 -10
  32. package/editor/assets/{agent8-D_4QY8Aq.js → agent8-BDC4LhjC.js} +1 -1
  33. package/editor/assets/{index-s0DZuroe.js → index-7qOYg7t8.js} +74 -74
  34. package/editor/index.html +1 -1
  35. package/package.json +4 -2
  36. package/schemas/scene.schema.json +266 -6
  37. package/skills/incanto-3d-character.md +35 -0
  38. package/skills/incanto-building-3d-games.md +48 -0
  39. package/skills/incanto-environment.md +15 -16
  40. package/skills/incanto-gameplay-behaviors.md +23 -1
  41. package/skills/incanto-node-reference.md +54 -3
  42. package/templates-app/beacon-isle-3d/PROJECT/Context.md +44 -0
  43. package/templates-app/beacon-isle-3d/PROJECT/Requirements.md +16 -0
  44. package/templates-app/beacon-isle-3d/PROJECT/Status.md +38 -0
  45. package/templates-app/beacon-isle-3d/PROJECT/Structure.md +24 -0
  46. package/templates-app/beacon-isle-3d/docs/project-3d-rules.md +38 -0
  47. package/templates-app/beacon-isle-3d/generate-world.ts +812 -0
  48. package/templates-app/beacon-isle-3d/index.html +68 -0
  49. package/templates-app/beacon-isle-3d/package.json +26 -0
  50. package/templates-app/beacon-isle-3d/src/behaviors.ts +570 -0
  51. package/templates-app/beacon-isle-3d/src/game.scene.json +2969 -0
  52. package/templates-app/beacon-isle-3d/src/main.ts +33 -0
  53. package/templates-app/beacon-isle-3d/tsconfig.json +13 -0
  54. package/templates-app/beacon-isle-3d/verify.ts +285 -0
  55. package/templates-app/beacon-isle-3d/vite.config.ts +5 -0
  56. package/templates-app/tps-3d/PROJECT/Context.md +49 -0
  57. package/templates-app/tps-3d/PROJECT/Requirements.md +38 -0
  58. package/templates-app/tps-3d/PROJECT/Status.md +41 -0
  59. package/templates-app/tps-3d/PROJECT/Structure.md +44 -0
  60. package/templates-app/tps-3d/docs/project-3d-rules.md +38 -0
  61. package/templates-app/tps-3d/index.html +244 -0
  62. package/templates-app/tps-3d/package.json +25 -0
  63. package/templates-app/tps-3d/src/behaviors.ts +405 -0
  64. package/templates-app/tps-3d/src/game.scene.json +677 -0
  65. package/templates-app/tps-3d/src/main.ts +64 -0
  66. package/templates-app/tps-3d/tsconfig.json +13 -0
  67. package/templates-app/tps-3d/verify.ts +167 -0
  68. package/templates-app/tps-3d/vite.config.ts +5 -0
  69. package/templates-app/village-quest-3d/PROJECT/Context.md +39 -0
  70. package/templates-app/village-quest-3d/PROJECT/Requirements.md +36 -0
  71. package/templates-app/village-quest-3d/PROJECT/Status.md +26 -0
  72. package/templates-app/village-quest-3d/PROJECT/Structure.md +30 -0
  73. package/templates-app/village-quest-3d/docs/project-3d-rules.md +38 -0
  74. package/templates-app/village-quest-3d/index.html +68 -0
  75. package/templates-app/village-quest-3d/package.json +25 -0
  76. package/templates-app/village-quest-3d/src/behaviors.ts +529 -0
  77. package/templates-app/village-quest-3d/src/grove.scene.json +826 -0
  78. package/templates-app/village-quest-3d/src/main.ts +35 -0
  79. package/templates-app/village-quest-3d/src/quest.ts +18 -0
  80. package/templates-app/village-quest-3d/src/village.scene.json +680 -0
  81. package/templates-app/village-quest-3d/tsconfig.json +13 -0
  82. package/templates-app/village-quest-3d/verify.ts +254 -0
  83. package/templates-app/village-quest-3d/vite.config.ts +5 -0
@@ -0,0 +1,680 @@
1
+ {
2
+ "format": 1,
3
+ "type": "scene",
4
+ "dimension": "3d",
5
+ "name": "EmberwoodVillage",
6
+ "environment": {
7
+ "sky": {
8
+ "type": "atmosphere",
9
+ "elevationDeg": 16,
10
+ "azimuthDeg": 205,
11
+ "turbidity": 4.5,
12
+ "rayleigh": 2.6
13
+ },
14
+ "fog": {
15
+ "near": 45,
16
+ "far": 160
17
+ },
18
+ "shadows": {
19
+ "mapSize": 2048
20
+ },
21
+ "exposure": 1.0,
22
+ "ambient": {
23
+ "color": "#e8d5c0",
24
+ "intensity": 0.3
25
+ },
26
+ "iblIntensity": 0.75,
27
+ "background": "#2c2436",
28
+ "post": {
29
+ "vignette": 0.22,
30
+ "saturation": 1.08,
31
+ "contrast": 1.03
32
+ }
33
+ },
34
+ "physics": {
35
+ "gravity": [0, -9.81, 0]
36
+ },
37
+ "input": {
38
+ "move": {
39
+ "type": "vector2",
40
+ "keys": {
41
+ "up": ["KeyW", "ArrowUp"],
42
+ "down": ["KeyS", "ArrowDown"],
43
+ "left": ["KeyA", "ArrowLeft"],
44
+ "right": ["KeyD", "ArrowRight"]
45
+ }
46
+ },
47
+ "jump": {
48
+ "type": "button",
49
+ "keys": ["Space"]
50
+ },
51
+ "sprint": {
52
+ "type": "button",
53
+ "keys": ["ShiftLeft", "ShiftRight"]
54
+ },
55
+ "interact": {
56
+ "type": "button",
57
+ "keys": ["KeyE"]
58
+ },
59
+ "attack": {
60
+ "type": "button",
61
+ "keys": ["Mouse0", "KeyF"]
62
+ },
63
+ "restart": {
64
+ "type": "button",
65
+ "keys": ["KeyR"]
66
+ }
67
+ },
68
+ "assets": {
69
+ "characters/base": {
70
+ "type": "model",
71
+ "url": "https://agent8-games.verse8.io/assets/3d/characters/realistic style/base-model.glb"
72
+ },
73
+ "anims/idle": {
74
+ "type": "animation",
75
+ "url": "https://agent8-games.verse8.io/assets/3d/animations/mixamorig/idle-00.glb"
76
+ },
77
+ "anims/walk": {
78
+ "type": "animation",
79
+ "url": "https://agent8-games.verse8.io/assets/3d/animations/mixamorig/walk.glb"
80
+ },
81
+ "anims/run": {
82
+ "type": "animation",
83
+ "url": "https://agent8-games.verse8.io/assets/3d/animations/mixamorig/run-medium.glb"
84
+ },
85
+ "anims/runFast": {
86
+ "type": "animation",
87
+ "url": "https://agent8-games.verse8.io/assets/3d/animations/mixamorig/run-fast.glb"
88
+ },
89
+ "anims/jump": {
90
+ "type": "animation",
91
+ "url": "https://agent8-games.verse8.io/assets/3d/animations/mixamorig/jump.glb"
92
+ },
93
+ "anims/attack": {
94
+ "type": "animation",
95
+ "url": "https://agent8-games.verse8.io/assets/3d/animations/mixamorig/melee-attack.glb"
96
+ }
97
+ },
98
+ "root": {
99
+ "name": "Game",
100
+ "type": "Node",
101
+ "script": {
102
+ "name": "VillageDirector"
103
+ },
104
+ "children": [
105
+ {
106
+ "name": "Village",
107
+ "type": "Node3D",
108
+ "props": {
109
+ "static": true
110
+ },
111
+ "children": [
112
+ {
113
+ "name": "Floor",
114
+ "type": "StaticBody3D",
115
+ "props": {
116
+ "collider": {
117
+ "shape": "box",
118
+ "size": [64, 0.1, 64]
119
+ },
120
+ "position": [0, -0.05, 0]
121
+ },
122
+ "children": [
123
+ {
124
+ "name": "Grass",
125
+ "type": "MeshInstance3D",
126
+ "props": {
127
+ "mesh": "box",
128
+ "size": [64, 0.1, 64],
129
+ "material": {
130
+ "color": "#4a6b3a",
131
+ "roughness": 1
132
+ },
133
+ "receiveShadow": true
134
+ }
135
+ }
136
+ ]
137
+ },
138
+ {
139
+ "name": "Path",
140
+ "type": "MeshInstance3D",
141
+ "props": {
142
+ "mesh": "box",
143
+ "size": [3, 0.12, 40],
144
+ "position": [0, 0.01, -4],
145
+ "material": {
146
+ "color": "#8a7a5c",
147
+ "roughness": 1
148
+ },
149
+ "receiveShadow": true
150
+ }
151
+ },
152
+ {
153
+ "name": "House1",
154
+ "type": "StaticBody3D",
155
+ "props": {
156
+ "collider": {
157
+ "shape": "box",
158
+ "size": [6, 3.4, 5]
159
+ },
160
+ "position": [-10, 1.7, 2]
161
+ },
162
+ "children": [
163
+ {
164
+ "name": "Walls",
165
+ "type": "MeshInstance3D",
166
+ "props": {
167
+ "mesh": "box",
168
+ "size": [6, 3.4, 5],
169
+ "material": {
170
+ "color": "#9c7d5a",
171
+ "roughness": 0.9
172
+ },
173
+ "castShadow": true,
174
+ "receiveShadow": true
175
+ }
176
+ },
177
+ {
178
+ "name": "Roof",
179
+ "type": "MeshInstance3D",
180
+ "props": {
181
+ "mesh": "gem",
182
+ "size": [4.8, 4.8, 4.8],
183
+ "position": [0, 3.1399999999999997, 0],
184
+ "material": {
185
+ "color": "#7a3b2e",
186
+ "roughness": 0.85
187
+ },
188
+ "castShadow": true
189
+ }
190
+ }
191
+ ]
192
+ },
193
+ {
194
+ "name": "House2",
195
+ "type": "StaticBody3D",
196
+ "props": {
197
+ "collider": {
198
+ "shape": "box",
199
+ "size": [5, 3, 6]
200
+ },
201
+ "position": [11, 1.5, -2]
202
+ },
203
+ "children": [
204
+ {
205
+ "name": "Walls",
206
+ "type": "MeshInstance3D",
207
+ "props": {
208
+ "mesh": "box",
209
+ "size": [5, 3, 6],
210
+ "material": {
211
+ "color": "#a8895f",
212
+ "roughness": 0.9
213
+ },
214
+ "castShadow": true,
215
+ "receiveShadow": true
216
+ }
217
+ },
218
+ {
219
+ "name": "Roof",
220
+ "type": "MeshInstance3D",
221
+ "props": {
222
+ "mesh": "gem",
223
+ "size": [4.4, 4.4, 4.4],
224
+ "position": [0, 2.8200000000000003, 0],
225
+ "material": {
226
+ "color": "#6e4634",
227
+ "roughness": 0.85
228
+ },
229
+ "castShadow": true
230
+ }
231
+ }
232
+ ]
233
+ },
234
+ {
235
+ "name": "Well",
236
+ "type": "StaticBody3D",
237
+ "props": {
238
+ "collider": {
239
+ "shape": "box",
240
+ "size": [2.2, 1, 2.2]
241
+ },
242
+ "position": [5, 0.5, 8]
243
+ },
244
+ "children": [
245
+ {
246
+ "name": "Ring",
247
+ "type": "MeshInstance3D",
248
+ "props": {
249
+ "mesh": "cylinder",
250
+ "size": [1.8, 1, 1.8],
251
+ "material": {
252
+ "color": "#77808c",
253
+ "roughness": 0.95
254
+ },
255
+ "castShadow": true,
256
+ "receiveShadow": true
257
+ }
258
+ }
259
+ ]
260
+ },
261
+ {
262
+ "name": "Oak1",
263
+ "type": "Tree3D",
264
+ "props": {
265
+ "position": [-16, 0, -10],
266
+ "seed": 11,
267
+ "scale": [1.2, 1.2, 1.2]
268
+ }
269
+ },
270
+ {
271
+ "name": "Oak2",
272
+ "type": "Tree3D",
273
+ "props": {
274
+ "position": [17, 0, 6],
275
+ "seed": 23
276
+ }
277
+ },
278
+ {
279
+ "name": "Oak3",
280
+ "type": "Tree3D",
281
+ "props": {
282
+ "position": [-14, 0, 14],
283
+ "seed": 31
284
+ }
285
+ },
286
+ {
287
+ "name": "Oak4",
288
+ "type": "Tree3D",
289
+ "props": {
290
+ "position": [14, 0, -14],
291
+ "seed": 47,
292
+ "scale": [1.35, 1.35, 1.35]
293
+ }
294
+ },
295
+ {
296
+ "name": "GatePostL",
297
+ "type": "StaticBody3D",
298
+ "props": {
299
+ "collider": {
300
+ "shape": "box",
301
+ "size": [0.8, 4, 0.8]
302
+ },
303
+ "position": [-2.4, 2, -26]
304
+ },
305
+ "children": [
306
+ {
307
+ "name": "Post",
308
+ "type": "MeshInstance3D",
309
+ "props": {
310
+ "mesh": "box",
311
+ "size": [0.8, 4, 0.8],
312
+ "material": {
313
+ "color": "#5c4632",
314
+ "roughness": 0.9
315
+ },
316
+ "castShadow": true
317
+ }
318
+ }
319
+ ]
320
+ },
321
+ {
322
+ "name": "GatePostR",
323
+ "type": "StaticBody3D",
324
+ "props": {
325
+ "collider": {
326
+ "shape": "box",
327
+ "size": [0.8, 4, 0.8]
328
+ },
329
+ "position": [2.4, 2, -26]
330
+ },
331
+ "children": [
332
+ {
333
+ "name": "Post",
334
+ "type": "MeshInstance3D",
335
+ "props": {
336
+ "mesh": "box",
337
+ "size": [0.8, 4, 0.8],
338
+ "material": {
339
+ "color": "#5c4632",
340
+ "roughness": 0.9
341
+ },
342
+ "castShadow": true
343
+ }
344
+ }
345
+ ]
346
+ },
347
+ {
348
+ "name": "GateBeam",
349
+ "type": "MeshInstance3D",
350
+ "props": {
351
+ "mesh": "box",
352
+ "size": [6.4, 0.7, 0.9],
353
+ "position": [0, 4.1, -26],
354
+ "material": {
355
+ "color": "#5c4632",
356
+ "roughness": 0.9
357
+ },
358
+ "castShadow": true
359
+ }
360
+ },
361
+ {
362
+ "name": "Sun",
363
+ "type": "DirectionalLight3D",
364
+ "props": {
365
+ "position": [18, 26, 12],
366
+ "intensity": 2.4,
367
+ "color": "#ffd9a8",
368
+ "castShadow": true,
369
+ "shadowArea": 40
370
+ }
371
+ }
372
+ ]
373
+ },
374
+ {
375
+ "name": "Elder",
376
+ "type": "Node3D",
377
+ "props": {
378
+ "position": [3, 0, -2]
379
+ },
380
+ "script": {
381
+ "name": "Interactable",
382
+ "props": {
383
+ "action": "interact",
384
+ "range": 2.8
385
+ }
386
+ },
387
+ "children": [
388
+ {
389
+ "name": "Body",
390
+ "type": "ModelInstance3D",
391
+ "props": {
392
+ "model": "$characters/base",
393
+ "targetHeight": 1.65,
394
+ "animation": "$anims/idle",
395
+ "tint": "#b9a6e8",
396
+ "castShadow": true,
397
+ "rotation": [0, 0, 0]
398
+ }
399
+ },
400
+ {
401
+ "name": "Marker",
402
+ "type": "Billboard3D",
403
+ "props": {
404
+ "position": [0, 2.15, 0],
405
+ "mode": "y"
406
+ },
407
+ "children": [
408
+ {
409
+ "name": "Bang",
410
+ "type": "MeshInstance3D",
411
+ "props": {
412
+ "mesh": "box",
413
+ "size": [0.14, 0.5, 0.14],
414
+ "material": {
415
+ "color": "#ffd166",
416
+ "emissive": "#ffd166",
417
+ "emissiveIntensity": 1.6
418
+ }
419
+ }
420
+ }
421
+ ]
422
+ },
423
+ {
424
+ "name": "TalkSfx",
425
+ "type": "AudioPlayer",
426
+ "props": {
427
+ "preset": "blip",
428
+ "volume": 0.5,
429
+ "pitch": 0.9
430
+ }
431
+ },
432
+ {
433
+ "name": "AcceptSfx",
434
+ "type": "AudioPlayer",
435
+ "props": {
436
+ "preset": "coin",
437
+ "volume": 0.5
438
+ }
439
+ }
440
+ ]
441
+ },
442
+ {
443
+ "name": "GroveGate",
444
+ "type": "Area3D",
445
+ "props": {
446
+ "position": [0, 1.5, -26.5],
447
+ "collider": {
448
+ "shape": "box",
449
+ "size": [4, 3, 1.6]
450
+ }
451
+ }
452
+ },
453
+ {
454
+ "name": "Player",
455
+ "type": "RigidBody3D",
456
+ "groups": ["player"],
457
+ "props": {
458
+ "position": [0, 1.4, 10],
459
+ "fixedRotation": true,
460
+ "friction": 0,
461
+ "collider": {
462
+ "shape": "capsule",
463
+ "radius": 0.34,
464
+ "height": 1
465
+ }
466
+ },
467
+ "children": [
468
+ {
469
+ "name": "Controller",
470
+ "type": "CharacterController3D",
471
+ "props": {
472
+ "view": "free",
473
+ "camDistance": 4.6,
474
+ "eyeHeight": 1.1,
475
+ "maxSpeed": 4.0,
476
+ "sprintMultiplier": 1.8,
477
+ "pitchMin": -0.5,
478
+ "pitchMax": 1.1,
479
+ "animations": {
480
+ "idle": "$anims/idle",
481
+ "walk": "$anims/walk",
482
+ "run": "$anims/run",
483
+ "fastRun": "$anims/runFast",
484
+ "airborne": "$anims/jump"
485
+ }
486
+ },
487
+ "script": {
488
+ "name": "SwordStrike"
489
+ }
490
+ },
491
+ {
492
+ "name": "Skin",
493
+ "type": "ModelInstance3D",
494
+ "props": {
495
+ "model": "$characters/base",
496
+ "targetHeight": 1.7,
497
+ "animation": "$anims/idle",
498
+ "castShadow": true,
499
+ "position": [0, -0.85, 0]
500
+ }
501
+ },
502
+ {
503
+ "name": "SwordMount",
504
+ "type": "BoneAttachment3D",
505
+ "props": {
506
+ "target": "../Skin",
507
+ "bone": "RightHand"
508
+ },
509
+ "children": [
510
+ {
511
+ "name": "Blade",
512
+ "type": "MeshInstance3D",
513
+ "props": {
514
+ "mesh": "box",
515
+ "size": [0.045, 0.7, 0.045],
516
+ "position": [0, 0.42, 0],
517
+ "material": {
518
+ "color": "#d8dde8",
519
+ "metalness": 0.9,
520
+ "roughness": 0.25
521
+ },
522
+ "castShadow": true
523
+ }
524
+ },
525
+ {
526
+ "name": "Guard",
527
+ "type": "MeshInstance3D",
528
+ "props": {
529
+ "mesh": "box",
530
+ "size": [0.16, 0.04, 0.06],
531
+ "position": [0, 0.09, 0],
532
+ "material": {
533
+ "color": "#8a6d3a",
534
+ "metalness": 0.7,
535
+ "roughness": 0.4
536
+ }
537
+ }
538
+ },
539
+ {
540
+ "name": "SwordTip",
541
+ "type": "Node3D",
542
+ "props": {
543
+ "position": [0, 0.78, 0]
544
+ },
545
+ "children": [
546
+ {
547
+ "name": "SwingTrail",
548
+ "type": "Trail3D",
549
+ "props": {
550
+ "width": 0.26,
551
+ "color": "#cfe8ff",
552
+ "opacity": 0.9,
553
+ "seconds": 0.25,
554
+ "additive": true,
555
+ "emitting": false,
556
+ "minDistance": 0.02
557
+ }
558
+ }
559
+ ]
560
+ }
561
+ ]
562
+ },
563
+ {
564
+ "name": "DashTrail",
565
+ "type": "Trail3D",
566
+ "props": {
567
+ "width": 0.5,
568
+ "color": "#ffffff",
569
+ "opacity": 0.3,
570
+ "seconds": 0.45,
571
+ "emitting": false,
572
+ "position": [0, -0.4, 0]
573
+ }
574
+ },
575
+ {
576
+ "name": "SwingSfx",
577
+ "type": "AudioPlayer",
578
+ "props": {
579
+ "preset": "shoot",
580
+ "volume": 0.35,
581
+ "pitch": 0.55
582
+ }
583
+ },
584
+ {
585
+ "name": "HitSfx",
586
+ "type": "AudioPlayer",
587
+ "props": {
588
+ "preset": "hit",
589
+ "volume": 0.6
590
+ }
591
+ }
592
+ ]
593
+ },
594
+ {
595
+ "name": "Camera",
596
+ "type": "Camera3D",
597
+ "props": {
598
+ "current": true,
599
+ "position": [0, 4, 16]
600
+ }
601
+ },
602
+ {
603
+ "name": "HUD",
604
+ "type": "HudLayer",
605
+ "children": [
606
+ {
607
+ "name": "Quest",
608
+ "type": "UiText",
609
+ "uid": "n_vq_quest",
610
+ "props": {
611
+ "text": "Talk to the Elder [E]",
612
+ "size": 16,
613
+ "anchor": "topLeft",
614
+ "shadow": true
615
+ }
616
+ },
617
+ {
618
+ "name": "Banner",
619
+ "type": "UiBanner",
620
+ "uid": "n_vq_banner",
621
+ "props": {
622
+ "anchor": "center"
623
+ }
624
+ },
625
+ {
626
+ "name": "Dialogue",
627
+ "type": "UiDialogue",
628
+ "uid": "n_vq_dialogue",
629
+ "props": {
630
+ "anchor": "bottom",
631
+ "charsPerSecond": 45
632
+ }
633
+ },
634
+ {
635
+ "name": "RestartBtn",
636
+ "type": "UiButton",
637
+ "uid": "n_vq_restart",
638
+ "props": {
639
+ "text": "Play again",
640
+ "anchor": "bottom",
641
+ "visible": false
642
+ }
643
+ },
644
+ {
645
+ "name": "Hint",
646
+ "type": "UiText",
647
+ "uid": "n_vq_hint",
648
+ "props": {
649
+ "text": "WASD move \u00b7 Shift sprint \u00b7 E talk \u00b7 click/F strike",
650
+ "size": 12,
651
+ "color": "#cccccc",
652
+ "anchor": "bottomRight",
653
+ "shadow": true
654
+ }
655
+ }
656
+ ]
657
+ }
658
+ ]
659
+ },
660
+ "connections": [
661
+ {
662
+ "signal": "interacted",
663
+ "from": "Elder",
664
+ "to": "/root",
665
+ "handler": "onTalk"
666
+ },
667
+ {
668
+ "signal": "triggerEnter",
669
+ "from": "GroveGate",
670
+ "to": "/root",
671
+ "handler": "onGateEnter"
672
+ },
673
+ {
674
+ "signal": "pressed",
675
+ "from": "HUD/RestartBtn",
676
+ "to": "/root",
677
+ "handler": "onRestart"
678
+ }
679
+ ]
680
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "compilerOptions": {
3
+ "target": "ES2022",
4
+ "module": "ESNext",
5
+ "moduleResolution": "bundler",
6
+ "strict": true,
7
+ "noEmit": true,
8
+ "skipLibCheck": true,
9
+ "resolveJsonModule": true,
10
+ "types": ["vite/client", "node"]
11
+ },
12
+ "include": ["src", "verify.ts"]
13
+ }