incanto 0.69.0 → 0.71.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 (147) hide show
  1. package/bin/_behaviors-loader.mjs +22 -0
  2. package/bin/_read-json.mjs +28 -0
  3. package/bin/incanto-assets.mjs +5 -4
  4. package/bin/incanto-check.mjs +58 -31
  5. package/bin/incanto-editor.mjs +128 -5
  6. package/bin/incanto-env.mjs +3 -2
  7. package/bin/incanto-feel.mjs +24 -13
  8. package/bin/incanto-frame.mjs +8 -1
  9. package/bin/incanto-multiplay.mjs +11 -9
  10. package/bin/incanto-new.mjs +105 -10
  11. package/bin/incanto-play.mjs +158 -16
  12. package/bin/incanto-playtest.mjs +66 -23
  13. package/bin/incanto-skills.mjs +14 -2
  14. package/bin/incanto-verify.mjs +121 -102
  15. package/bin/incanto.mjs +3 -2
  16. package/dist/2d.d.ts +296 -34
  17. package/dist/2d.js +4 -4
  18. package/dist/3d.d.ts +157 -9
  19. package/dist/3d.js +8 -8
  20. package/dist/{agent8-CvsfVskX.js → agent8-Cfmd3ar_.js} +61 -8
  21. package/dist/{audio-player-C0j2k-yB.d.ts → audio-player-L8yccdMP.d.ts} +2 -2
  22. package/dist/{behavior-rm8vVzu_.d.ts → behavior-Dcz0fr1S.d.ts} +755 -46
  23. package/dist/{create-game-CwxEDlCm.js → create-game-CH4kt78v.js} +143 -60
  24. package/dist/{create-game-CvJ1wSRP.js → create-game-LCHBLfA4.js} +98 -48
  25. package/dist/debug.d.ts +1 -1
  26. package/dist/debug.js +2 -3
  27. package/dist/diagnostics-Cu85N3tL.d.ts +12 -0
  28. package/dist/{editor-switch-CnIOiyNJ.d.ts → editor-switch-CFU9mCec.d.ts} +22 -13
  29. package/dist/editor.js +1088 -882
  30. package/dist/env.d.ts +1 -1
  31. package/dist/env.js +5 -3
  32. package/dist/{environment-presets-BO-7XoFV.js → environment-presets-99BzP_L-.js} +298 -45
  33. package/dist/{frame-report-Dlq13Gyj.js → frame-report-D-_7YF2G.js} +1 -1
  34. package/dist/{gameplay-D1KixWK8.js → gameplay-CNULJvwh.js} +914 -214
  35. package/dist/gameplay.d.ts +254 -10
  36. package/dist/gameplay.js +2 -2
  37. package/dist/{heightmap-CRK0M4jT.js → heightmap-BYgD5Edk.js} +1 -1
  38. package/dist/index.d.ts +179 -13
  39. package/dist/index.js +10 -12
  40. package/dist/json-CfTjpvW8.js +67 -0
  41. package/dist/{loader-DadV2QCT.d.ts → loader-8-IHvbKD.d.ts} +2 -2
  42. package/dist/net.d.ts +27 -3
  43. package/dist/net.js +2 -2
  44. package/dist/{noise-CGUMx44x.js → noise-D3nPpmFg.js} +1 -1
  45. package/dist/{physics-2d-CF5yyjbj.js → physics-2d-FhrXUc6B.js} +136 -11
  46. package/dist/{physics-3d-DbYaEcZy.js → physics-3d-CFEGxBXZ.js} +104 -23
  47. package/dist/{teardown-CMqFVxO9.js → picking-DVo7fI13.js} +104 -13
  48. package/dist/react.d.ts +2 -2
  49. package/dist/react.js +2 -2
  50. package/dist/{register-DbVArsns.js → register-BYQCBySi.js} +429 -28
  51. package/dist/{register-mmfugpaQ.js → register-DuVdzxbq.js} +594 -831
  52. package/dist/{replay-BEHLDcQV.js → replay-DEvp3kyV.js} +224 -14
  53. package/dist/{replay-BQfkX4x7.d.ts → replay-F7IZHdFR.d.ts} +20 -3
  54. package/dist/{schema-B6ugCV1Q.d.ts → rng-Bb-IutXB.d.ts} +38 -21
  55. package/dist/{rng-DP-SR7eg.js → rng-CDOMybym.js} +22 -0
  56. package/dist/{loader-DZE7B07H.js → save-slots-Bvuh2p_r.js} +4619 -2318
  57. package/dist/{split-screen-Cg76MCV5.d.ts → split-screen-CIYf1zSf.d.ts} +36 -4
  58. package/dist/{split-screen-CauMwu6y.js → split-screen-eULetcg-.js} +159 -26
  59. package/dist/{sprite-animation-CY-mrr1L.js → sprite-animation-CqR2o3SA.js} +39 -8
  60. package/dist/{src-CYEu-_S9.js → src-_jk0qLsS.js} +2 -17
  61. package/dist/test-CmN54kWv.js +4264 -0
  62. package/dist/test.d.ts +639 -30
  63. package/dist/test.js +3 -3
  64. package/dist/touch-BnCyPA0G.js +519 -0
  65. package/dist/vite.d.ts +20 -37
  66. package/dist/vite.js +177 -7
  67. package/dist/{webgl-unavailable-Z5_g8x9H.js → webgl-unavailable-C8aDbGmR.js} +44 -0
  68. package/editor/assets/agent8-yLIEYHbd.js +1 -0
  69. package/editor/assets/{debug-CMULinBW.js → debug-u31w_yhq.js} +2 -2
  70. package/editor/assets/index-DK9xMGpW.js +11046 -0
  71. package/editor/index.html +1 -1
  72. package/package.json +4 -14
  73. package/schemas/scene.schema.json +34 -3
  74. package/skills/incanto-3d-character.md +14 -1
  75. package/skills/incanto-3d-models.md +12 -0
  76. package/skills/incanto-assets.md +9 -1
  77. package/skills/incanto-audio.md +8 -2
  78. package/skills/incanto-behaviors-and-scripts.md +105 -7
  79. package/skills/incanto-building-2d-games.md +97 -10
  80. package/skills/incanto-building-3d-games.md +58 -4
  81. package/skills/incanto-editor.md +46 -7
  82. package/skills/incanto-environment.md +19 -1
  83. package/skills/incanto-game-feel.md +70 -0
  84. package/skills/incanto-gameplay-behaviors.md +172 -20
  85. package/skills/incanto-hud.md +142 -7
  86. package/skills/incanto-localization.md +13 -5
  87. package/skills/incanto-multiplayer.md +83 -3
  88. package/skills/incanto-node-reference.md +239 -59
  89. package/skills/incanto-performance.md +52 -0
  90. package/skills/incanto-physics-and-input.md +123 -24
  91. package/skills/incanto-playtesting.md +112 -2
  92. package/skills/incanto-save-slots.md +217 -7
  93. package/skills/incanto-scene-json-authoring.md +69 -12
  94. package/skills/incanto-verifying-your-game.md +207 -10
  95. package/skills/incanto-web-integration.md +28 -0
  96. package/skills/incanto-your-first-game.md +3 -1
  97. package/templates-app/beacon-isle-3d/generate-world.ts +77 -9
  98. package/templates-app/beacon-isle-3d/package.json +2 -2
  99. package/templates-app/beacon-isle-3d/src/behaviors.ts +22 -0
  100. package/templates-app/beacon-isle-3d/src/game.scene.json +143 -600
  101. package/templates-app/beacon-isle-3d/src/main.ts +11 -1
  102. package/templates-app/beacon-isle-3d/tsconfig.json +1 -1
  103. package/templates-app/beacon-isle-3d/verify.ts +3 -1
  104. package/templates-app/molehill-2d/.incanto/playtest/lost-seed1.json +4277 -0
  105. package/templates-app/molehill-2d/PROJECT/Context.md +58 -0
  106. package/templates-app/molehill-2d/PROJECT/Requirements.md +39 -0
  107. package/templates-app/molehill-2d/PROJECT/Status.md +27 -0
  108. package/templates-app/molehill-2d/PROJECT/Structure.md +48 -0
  109. package/templates-app/molehill-2d/docs/project-2d-rules.md +44 -0
  110. package/templates-app/molehill-2d/index.html +73 -0
  111. package/templates-app/molehill-2d/package.json +23 -0
  112. package/templates-app/molehill-2d/src/behaviors.ts +198 -0
  113. package/templates-app/molehill-2d/src/game.scene.json +1205 -0
  114. package/templates-app/molehill-2d/src/main.ts +41 -0
  115. package/templates-app/molehill-2d/tsconfig.json +13 -0
  116. package/templates-app/molehill-2d/verify.ts +247 -0
  117. package/templates-app/molehill-2d/vite.config.ts +12 -0
  118. package/templates-app/platformer-2d/package.json +2 -2
  119. package/templates-app/platformer-2d/src/game.scene.json +178 -986
  120. package/templates-app/platformer-2d/src/main.ts +11 -1
  121. package/templates-app/platformer-2d/tsconfig.json +1 -1
  122. package/templates-app/star-survivor/package.json +2 -2
  123. package/templates-app/star-survivor/src/game.scene.json +43 -216
  124. package/templates-app/star-survivor/src/main.ts +11 -1
  125. package/templates-app/star-survivor/tsconfig.json +1 -1
  126. package/templates-app/tps-3d/PROJECT/Context.md +1 -1
  127. package/templates-app/tps-3d/package.json +2 -2
  128. package/templates-app/tps-3d/src/behaviors.ts +19 -1
  129. package/templates-app/tps-3d/src/game.scene.json +66 -263
  130. package/templates-app/tps-3d/src/main.ts +13 -2
  131. package/templates-app/tps-3d/tsconfig.json +1 -1
  132. package/templates-app/village-quest-3d/.incanto/playtest/swapped-seed1.json +1735 -0
  133. package/templates-app/village-quest-3d/package.json +2 -2
  134. package/templates-app/village-quest-3d/src/behaviors.ts +42 -4
  135. package/templates-app/village-quest-3d/src/grove.scene.json +68 -306
  136. package/templates-app/village-quest-3d/src/main.ts +11 -1
  137. package/templates-app/village-quest-3d/src/village.scene.json +202 -863
  138. package/templates-app/village-quest-3d/tsconfig.json +1 -1
  139. package/templates-app/village-quest-3d/verify.ts +14 -1
  140. package/dist/duplicate-Dj4L-5AA.js +0 -22
  141. package/dist/json-CwwhxQgb.js +0 -36
  142. package/dist/registry-CF70EArN.js +0 -212
  143. package/dist/rolldown-runtime-D7D4PA-g.js +0 -13
  144. package/dist/test-D6ISmuFE.js +0 -2383
  145. package/dist/touch-DEAmqGdf.js +0 -225
  146. package/editor/assets/agent8-BDvaZMQJ.js +0 -1
  147. package/editor/assets/index-CZIRr5EL.js +0 -10958
@@ -11,33 +11,15 @@
11
11
  "turbidity": 3.2,
12
12
  "rayleigh": 2.1
13
13
  },
14
- "fog": {
15
- "near": 110,
16
- "far": 560
17
- },
18
- "shadows": {
19
- "mapSize": 2048,
20
- "radius": 1.2
21
- },
14
+ "fog": { "near": 110, "far": 560 },
15
+ "shadows": { "mapSize": 2048, "radius": 1.2 },
22
16
  "exposure": 1.12,
23
- "ambient": {
24
- "color": "#ffe8d4",
25
- "intensity": 0.85
26
- },
17
+ "ambient": { "color": "#ffe8d4", "intensity": 0.85 },
27
18
  "iblIntensity": 0.9,
28
- "bloom": {
29
- "threshold": 1.2,
30
- "strength": 0.55
31
- },
32
- "post": {
33
- "vignette": 0.28,
34
- "saturation": 1.12,
35
- "contrast": 1.02
36
- }
37
- },
38
- "physics": {
39
- "gravity": [0, -9.81, 0]
19
+ "bloom": { "threshold": 1.2, "strength": 0.55 },
20
+ "post": { "vignette": 0.28, "saturation": 1.12, "contrast": 1.02 }
40
21
  },
22
+ "physics": { "gravity": [0, -9.81, 0] },
41
23
  "input": {
42
24
  "move": {
43
25
  "type": "vector2",
@@ -49,33 +31,10 @@
49
31
  },
50
32
  "touch": "joystick"
51
33
  },
52
- "jump": {
53
- "type": "button",
54
- "keys": ["Space"],
55
- "touch": "button"
56
- },
57
- "sprint": {
58
- "type": "button",
59
- "keys": ["ShiftLeft", "ShiftRight"]
60
- },
61
- "interact": {
62
- "type": "button",
63
- "keys": ["KeyE"],
64
- "touch": "button"
65
- },
66
- "attack": {
67
- "type": "button",
68
- "keys": ["Mouse0", "KeyF"],
69
- "touch": "button"
70
- },
71
- "pause": {
72
- "type": "button",
73
- "keys": ["Escape"]
74
- },
75
- "restart": {
76
- "type": "button",
77
- "keys": ["KeyR"]
78
- }
34
+ "jump": { "type": "button", "keys": ["Space"], "touch": "button" },
35
+ "sprint": { "type": "button", "keys": ["ShiftLeft", "ShiftRight"] },
36
+ "interact": { "type": "button", "keys": ["KeyE"], "touch": "button" },
37
+ "attack": { "type": "button", "keys": ["Mouse0", "KeyF"], "touch": "button" }
79
38
  },
80
39
  "assets": {
81
40
  "characters/base": {
@@ -110,21 +69,8 @@
110
69
  "root": {
111
70
  "name": "Game",
112
71
  "type": "Node",
113
- "script": {
114
- "name": "IsleDirector"
115
- },
72
+ "script": { "name": "IsleDirector" },
116
73
  "children": [
117
- {
118
- "name": "Flow",
119
- "type": "Node",
120
- "script": {
121
- "name": "GameFlow",
122
- "props": {
123
- "pausePanelPath": "%PauseMenu"
124
- }
125
- },
126
- "uid": "n_59r4gykhbcuemdgu"
127
- },
128
74
  {
129
75
  "name": "Terrain",
130
76
  "type": "Node3D",
@@ -132,22 +78,12 @@
132
78
  {
133
79
  "name": "Ground",
134
80
  "type": "StaticBody3D",
135
- "props": {
136
- "collider": {
137
- "shape": "heightfield"
138
- },
139
- "static": true
140
- },
81
+ "props": { "collider": { "shape": "heightfield" }, "static": true },
141
82
  "children": [
142
83
  {
143
84
  "name": "Surface",
144
85
  "type": "Terrain3D",
145
- "props": {
146
- "size": [240, 240],
147
- "maxHeight": 2.66,
148
- "seed": 7411,
149
- "theme": "island"
150
- }
86
+ "props": { "size": [240, 240], "maxHeight": 2.66, "seed": 7411, "theme": "island" }
151
87
  }
152
88
  ]
153
89
  },
@@ -164,11 +100,7 @@
164
100
  "whitecaps": 0.45,
165
101
  "absorption": 0.28,
166
102
  "reflectionInterval": 400,
167
- "colors": {
168
- "trough": "#0c3d58",
169
- "surface": "#1a7d9c",
170
- "peak": "#9adfe0"
171
- }
103
+ "colors": { "trough": "#0c3d58", "surface": "#1a7d9c", "peak": "#9adfe0" }
172
104
  }
173
105
  },
174
106
  {
@@ -265,13 +197,12 @@
265
197
  {
266
198
  "name": "Clouds",
267
199
  "type": "Node3D",
200
+ "props": { "snapToGround": false },
268
201
  "children": [
269
202
  {
270
203
  "name": "Cloud1",
271
204
  "type": "Node3D",
272
- "props": {
273
- "position": [35.79, 42.95, -79.59]
274
- },
205
+ "props": { "position": [35.79, 42.95, -79.59] },
275
206
  "children": [
276
207
  {
277
208
  "name": "Puff1",
@@ -358,9 +289,7 @@
358
289
  {
359
290
  "name": "Cloud2",
360
291
  "type": "Node3D",
361
- "props": {
362
- "position": [90.37, 42.03, -102.39]
363
- },
292
+ "props": { "position": [90.37, 42.03, -102.39] },
364
293
  "children": [
365
294
  {
366
295
  "name": "Puff1",
@@ -431,9 +360,7 @@
431
360
  {
432
361
  "name": "Cloud3",
433
362
  "type": "Node3D",
434
- "props": {
435
- "position": [-80.57, 38.87, 103.61]
436
- },
363
+ "props": { "position": [-80.57, 38.87, 103.61] },
437
364
  "children": [
438
365
  {
439
366
  "name": "Puff1",
@@ -504,9 +431,7 @@
504
431
  {
505
432
  "name": "Cloud4",
506
433
  "type": "Node3D",
507
- "props": {
508
- "position": [-62.49, 40.25, -67.89]
509
- },
434
+ "props": { "position": [-62.49, 40.25, -67.89] },
510
435
  "children": [
511
436
  {
512
437
  "name": "Puff1",
@@ -593,9 +518,7 @@
593
518
  {
594
519
  "name": "Cloud5",
595
520
  "type": "Node3D",
596
- "props": {
597
- "position": [53.64, 42.45, 30.66]
598
- },
521
+ "props": { "position": [53.64, 42.45, 30.66] },
599
522
  "children": [
600
523
  {
601
524
  "name": "Puff1",
@@ -682,9 +605,7 @@
682
605
  {
683
606
  "name": "Cloud6",
684
607
  "type": "Node3D",
685
- "props": {
686
- "position": [-28.53, 42.22, 34.77]
687
- },
608
+ "props": { "position": [-28.53, 42.22, 34.77] },
688
609
  "children": [
689
610
  {
690
611
  "name": "Puff1",
@@ -797,9 +718,7 @@
797
718
  {
798
719
  "name": "Dressing",
799
720
  "type": "Node3D",
800
- "props": {
801
- "static": true
802
- },
721
+ "props": { "static": true },
803
722
  "children": [
804
723
  {
805
724
  "name": "Grove1",
@@ -1310,95 +1229,56 @@
1310
1229
  {
1311
1230
  "name": "Flowers1",
1312
1231
  "type": "Flowers3D",
1313
- "props": {
1314
- "position": [33.23, 14.62, 36.95],
1315
- "area": [12, 12],
1316
- "seed": 357653252
1317
- }
1232
+ "props": { "position": [33.23, 14.62, 36.95], "area": [12, 12], "seed": 357653252 }
1318
1233
  },
1319
1234
  {
1320
1235
  "name": "Flowers2",
1321
1236
  "type": "Flowers3D",
1322
- "props": {
1323
- "position": [-82.3, 19.31, -38.23],
1324
- "area": [12, 12],
1325
- "seed": 398696966
1326
- }
1237
+ "props": { "position": [-82.3, 19.31, -38.23], "area": [12, 12], "seed": 398696966 }
1327
1238
  },
1328
1239
  {
1329
1240
  "name": "Flowers3",
1330
1241
  "type": "Flowers3D",
1331
- "props": {
1332
- "position": [-33.36, 18.6, 50.95],
1333
- "area": [12, 12],
1334
- "seed": 400708434
1335
- }
1242
+ "props": { "position": [-33.36, 18.6, 50.95], "area": [12, 12], "seed": 400708434 }
1336
1243
  },
1337
1244
  {
1338
1245
  "name": "Flowers4",
1339
1246
  "type": "Flowers3D",
1340
- "props": {
1341
- "position": [-9.78, 17.14, 45.89],
1342
- "area": [12, 12],
1343
- "seed": 575315232
1344
- }
1247
+ "props": { "position": [-9.78, 17.14, 45.89], "area": [12, 12], "seed": 575315232 }
1345
1248
  },
1346
1249
  {
1347
1250
  "name": "Flowers5",
1348
1251
  "type": "Flowers3D",
1349
- "props": {
1350
- "position": [55.02, 13.26, 39.6],
1351
- "area": [12, 12],
1352
- "seed": 73428741
1353
- }
1252
+ "props": { "position": [55.02, 13.26, 39.6], "area": [12, 12], "seed": 73428741 }
1354
1253
  },
1355
1254
  {
1356
1255
  "name": "Flowers6",
1357
1256
  "type": "Flowers3D",
1358
- "props": {
1359
- "position": [-49.05, 16.91, -30.14],
1360
- "area": [12, 12],
1361
- "seed": 258165764
1362
- }
1257
+ "props": { "position": [-49.05, 16.91, -30.14], "area": [12, 12], "seed": 258165764 }
1363
1258
  },
1364
1259
  {
1365
1260
  "name": "Flowers7",
1366
1261
  "type": "Flowers3D",
1367
- "props": {
1368
- "position": [17.86, 16.44, 76.99],
1369
- "area": [12, 12],
1370
- "seed": 22178236
1371
- }
1262
+ "props": { "position": [17.86, 16.44, 76.99], "area": [12, 12], "seed": 22178236 }
1372
1263
  },
1373
1264
  {
1374
1265
  "name": "Flowers8",
1375
1266
  "type": "Flowers3D",
1376
- "props": {
1377
- "position": [-5.95, 13.7, -35.97],
1378
- "area": [12, 12],
1379
- "seed": 359604670
1380
- }
1267
+ "props": { "position": [-5.95, 13.7, -35.97], "area": [12, 12], "seed": 359604670 }
1381
1268
  },
1382
1269
  {
1383
1270
  "name": "Flowers9",
1384
1271
  "type": "Flowers3D",
1385
- "props": {
1386
- "position": [-51.11, 18.29, -4.34],
1387
- "area": [12, 12],
1388
- "seed": 723951523
1389
- }
1272
+ "props": { "position": [-51.11, 18.29, -4.34], "area": [12, 12], "seed": 723951523 }
1390
1273
  },
1391
1274
  {
1392
1275
  "name": "ShoreRocks",
1393
1276
  "type": "InstancedMesh3D",
1394
1277
  "props": {
1278
+ "snapToGround": false,
1395
1279
  "mesh": "gem",
1396
1280
  "size": [0.6, 0.45, 0.6],
1397
- "material": {
1398
- "color": "#7e8590",
1399
- "roughness": 0.95,
1400
- "flatShading": true
1401
- },
1281
+ "material": { "color": "#7e8590", "roughness": 0.95, "flatShading": true },
1402
1282
  "transforms": [
1403
1283
  [65.87, 9.27, -76.93, 166, 0.53],
1404
1284
  [101.47, 9.37, -83.3, 302, 1.6],
@@ -1460,19 +1340,13 @@
1460
1340
  {
1461
1341
  "name": "Lighthouse",
1462
1342
  "type": "Node3D",
1463
- "props": {
1464
- "position": [-21.5, 18, 57.5],
1465
- "static": true
1466
- },
1343
+ "props": { "position": [-21.5, 18, 57.5], "snapToGround": false, "static": true },
1467
1344
  "children": [
1468
1345
  {
1469
1346
  "name": "Tower",
1470
1347
  "type": "StaticBody3D",
1471
1348
  "props": {
1472
- "collider": {
1473
- "shape": "box",
1474
- "size": [3, 11, 3]
1475
- },
1349
+ "collider": { "shape": "box", "size": [3, 11, 3] },
1476
1350
  "position": [0, 5.5, 0]
1477
1351
  },
1478
1352
  "children": [
@@ -1482,10 +1356,7 @@
1482
1356
  "props": {
1483
1357
  "mesh": "cylinder",
1484
1358
  "size": [1.5, 11, 1.5],
1485
- "material": {
1486
- "color": "#e8e2d4",
1487
- "roughness": 0.8
1488
- },
1359
+ "material": { "color": "#e8e2d4", "roughness": 0.8 },
1489
1360
  "castShadow": true,
1490
1361
  "receiveShadow": true
1491
1362
  }
@@ -1497,10 +1368,7 @@
1497
1368
  "mesh": "cylinder",
1498
1369
  "size": [1.56, 1.6, 1.56],
1499
1370
  "position": [0, 1.2, 0],
1500
- "material": {
1501
- "color": "#b8452e",
1502
- "roughness": 0.8
1503
- }
1371
+ "material": { "color": "#b8452e", "roughness": 0.8 }
1504
1372
  }
1505
1373
  }
1506
1374
  ]
@@ -1512,11 +1380,7 @@
1512
1380
  "mesh": "gem",
1513
1381
  "size": [0.9, 1.4, 0.9],
1514
1382
  "position": [0, 11.6, 0],
1515
- "material": {
1516
- "color": "#fff2c4",
1517
- "emissive": "#ffd982",
1518
- "emissiveIntensity": 2.2
1519
- }
1383
+ "material": { "color": "#fff2c4", "emissive": "#ffd982", "emissiveIntensity": 2.2 }
1520
1384
  }
1521
1385
  },
1522
1386
  {
@@ -1534,16 +1398,8 @@
1534
1398
  {
1535
1399
  "name": "Keeper",
1536
1400
  "type": "Node3D",
1537
- "props": {
1538
- "position": [-16.5, 17.85, 61.5]
1539
- },
1540
- "script": {
1541
- "name": "Interactable",
1542
- "props": {
1543
- "action": "interact",
1544
- "range": 3
1545
- }
1546
- },
1401
+ "props": { "position": [-16.5, 17.85, 61.5], "snapToGround": false },
1402
+ "script": { "name": "Interactable", "props": { "action": "interact", "range": 3 } },
1547
1403
  "children": [
1548
1404
  {
1549
1405
  "name": "Body",
@@ -1559,10 +1415,7 @@
1559
1415
  {
1560
1416
  "name": "Marker",
1561
1417
  "type": "Billboard3D",
1562
- "props": {
1563
- "position": [0, 2.2, 0],
1564
- "mode": "y"
1565
- },
1418
+ "props": { "position": [0, 2.2, 0], "mode": "y" },
1566
1419
  "children": [
1567
1420
  {
1568
1421
  "name": "Bang",
@@ -1592,39 +1445,27 @@
1592
1445
  {
1593
1446
  "name": "TalkSfx",
1594
1447
  "type": "AudioPlayer",
1595
- "props": {
1596
- "preset": "blip",
1597
- "volume": 0.5,
1598
- "pitch": 0.9
1599
- }
1448
+ "props": { "preset": "blip", "volume": 0.5, "pitch": 0.9 }
1600
1449
  },
1601
1450
  {
1602
1451
  "name": "AcceptSfx",
1603
1452
  "type": "AudioPlayer",
1604
- "props": {
1605
- "preset": "coin",
1606
- "volume": 0.5
1607
- }
1453
+ "props": { "preset": "coin", "volume": 0.5 }
1608
1454
  }
1609
1455
  ],
1610
- "uid": "n_z47j96sgcxut952d"
1456
+ "uid": "n_mul5jcl9bm2xb99j"
1611
1457
  },
1612
1458
  {
1613
1459
  "name": "Ward1",
1614
1460
  "type": "Node3D",
1615
1461
  "groups": ["ward"],
1616
- "props": {
1617
- "position": [-61.5, 17.27, -37.5]
1618
- },
1462
+ "props": { "position": [-61.5, 17.27, -37.5], "snapToGround": false },
1619
1463
  "children": [
1620
1464
  {
1621
1465
  "name": "Plinth",
1622
1466
  "type": "StaticBody3D",
1623
1467
  "props": {
1624
- "collider": {
1625
- "shape": "box",
1626
- "size": [1.6, 1.2, 1.6]
1627
- },
1468
+ "collider": { "shape": "box", "size": [1.6, 1.2, 1.6] },
1628
1469
  "position": [0, 0.6, 0]
1629
1470
  },
1630
1471
  "children": [
@@ -1634,10 +1475,7 @@
1634
1475
  "props": {
1635
1476
  "mesh": "cylinder",
1636
1477
  "size": [0.8, 1.2, 0.8],
1637
- "material": {
1638
- "color": "#7d8494",
1639
- "roughness": 0.9
1640
- },
1478
+ "material": { "color": "#7d8494", "roughness": 0.9 },
1641
1479
  "castShadow": true,
1642
1480
  "receiveShadow": true
1643
1481
  }
@@ -1663,12 +1501,7 @@
1663
1501
  {
1664
1502
  "name": "Glow",
1665
1503
  "type": "OmniLight3D",
1666
- "props": {
1667
- "position": [0, 2, 0],
1668
- "color": "#7fe3ff",
1669
- "intensity": 0,
1670
- "range": 16
1671
- }
1504
+ "props": { "position": [0, 2, 0], "color": "#7fe3ff", "intensity": 0, "range": 16 }
1672
1505
  },
1673
1506
  {
1674
1507
  "name": "LitFx",
@@ -1701,18 +1534,13 @@
1701
1534
  "name": "Ward2",
1702
1535
  "type": "Node3D",
1703
1536
  "groups": ["ward"],
1704
- "props": {
1705
- "position": [58.5, 10.2, -52.5]
1706
- },
1537
+ "props": { "position": [58.5, 10.2, -52.5], "snapToGround": false },
1707
1538
  "children": [
1708
1539
  {
1709
1540
  "name": "Plinth",
1710
1541
  "type": "StaticBody3D",
1711
1542
  "props": {
1712
- "collider": {
1713
- "shape": "box",
1714
- "size": [1.6, 1.2, 1.6]
1715
- },
1543
+ "collider": { "shape": "box", "size": [1.6, 1.2, 1.6] },
1716
1544
  "position": [0, 0.6, 0]
1717
1545
  },
1718
1546
  "children": [
@@ -1722,10 +1550,7 @@
1722
1550
  "props": {
1723
1551
  "mesh": "cylinder",
1724
1552
  "size": [0.8, 1.2, 0.8],
1725
- "material": {
1726
- "color": "#7d8494",
1727
- "roughness": 0.9
1728
- },
1553
+ "material": { "color": "#7d8494", "roughness": 0.9 },
1729
1554
  "castShadow": true,
1730
1555
  "receiveShadow": true
1731
1556
  }
@@ -1751,12 +1576,7 @@
1751
1576
  {
1752
1577
  "name": "Glow",
1753
1578
  "type": "OmniLight3D",
1754
- "props": {
1755
- "position": [0, 2, 0],
1756
- "color": "#7fe3ff",
1757
- "intensity": 0,
1758
- "range": 16
1759
- }
1579
+ "props": { "position": [0, 2, 0], "color": "#7fe3ff", "intensity": 0, "range": 16 }
1760
1580
  },
1761
1581
  {
1762
1582
  "name": "LitFx",
@@ -1789,18 +1609,13 @@
1789
1609
  "name": "Ward3",
1790
1610
  "type": "Node3D",
1791
1611
  "groups": ["ward"],
1792
- "props": {
1793
- "position": [67.5, 13.07, 43.5]
1794
- },
1612
+ "props": { "position": [67.5, 13.07, 43.5], "snapToGround": false },
1795
1613
  "children": [
1796
1614
  {
1797
1615
  "name": "Plinth",
1798
1616
  "type": "StaticBody3D",
1799
1617
  "props": {
1800
- "collider": {
1801
- "shape": "box",
1802
- "size": [1.6, 1.2, 1.6]
1803
- },
1618
+ "collider": { "shape": "box", "size": [1.6, 1.2, 1.6] },
1804
1619
  "position": [0, 0.6, 0]
1805
1620
  },
1806
1621
  "children": [
@@ -1810,10 +1625,7 @@
1810
1625
  "props": {
1811
1626
  "mesh": "cylinder",
1812
1627
  "size": [0.8, 1.2, 0.8],
1813
- "material": {
1814
- "color": "#7d8494",
1815
- "roughness": 0.9
1816
- },
1628
+ "material": { "color": "#7d8494", "roughness": 0.9 },
1817
1629
  "castShadow": true,
1818
1630
  "receiveShadow": true
1819
1631
  }
@@ -1839,12 +1651,7 @@
1839
1651
  {
1840
1652
  "name": "Glow",
1841
1653
  "type": "OmniLight3D",
1842
- "props": {
1843
- "position": [0, 2, 0],
1844
- "color": "#7fe3ff",
1845
- "intensity": 0,
1846
- "range": 16
1847
- }
1654
+ "props": { "position": [0, 2, 0], "color": "#7fe3ff", "intensity": 0, "range": 16 }
1848
1655
  },
1849
1656
  {
1850
1657
  "name": "LitFx",
@@ -1877,16 +1684,8 @@
1877
1684
  "name": "Shade1_1",
1878
1685
  "type": "Node3D",
1879
1686
  "groups": ["shade", "shade-ward1"],
1880
- "props": {
1881
- "position": [-52.5, 17.71, -34.5]
1882
- },
1883
- "script": {
1884
- "name": "PathFollow",
1885
- "props": {
1886
- "speed": 2.6,
1887
- "loop": true
1888
- }
1889
- },
1687
+ "props": { "position": [-52.5, 17.71, -34.5], "snapToGround": false },
1688
+ "script": { "name": "PathFollow", "props": { "speed": 2.6, "loop": true } },
1890
1689
  "children": [
1891
1690
  {
1892
1691
  "name": "Body",
@@ -1910,11 +1709,7 @@
1910
1709
  "mesh": "gem",
1911
1710
  "size": [0.3, 0.46, 0.3],
1912
1711
  "position": [0, 0.58, 0],
1913
- "material": {
1914
- "color": "#0e0e1e",
1915
- "emissive": "#241a5e",
1916
- "emissiveIntensity": 0.4
1917
- }
1712
+ "material": { "color": "#0e0e1e", "emissive": "#241a5e", "emissiveIntensity": 0.4 }
1918
1713
  }
1919
1714
  },
1920
1715
  {
@@ -1924,11 +1719,7 @@
1924
1719
  "mesh": "sphere",
1925
1720
  "size": [0.05, 0.05, 0.05],
1926
1721
  "position": [-0.09, 0.6, 0.24],
1927
- "material": {
1928
- "color": "#ff4466",
1929
- "emissive": "#ff4466",
1930
- "emissiveIntensity": 2.4
1931
- }
1722
+ "material": { "color": "#ff4466", "emissive": "#ff4466", "emissiveIntensity": 2.4 }
1932
1723
  }
1933
1724
  },
1934
1725
  {
@@ -1938,11 +1729,7 @@
1938
1729
  "mesh": "sphere",
1939
1730
  "size": [0.05, 0.05, 0.05],
1940
1731
  "position": [0.09, 0.6, 0.24],
1941
- "material": {
1942
- "color": "#ff4466",
1943
- "emissive": "#ff4466",
1944
- "emissiveIntensity": 2.4
1945
- }
1732
+ "material": { "color": "#ff4466", "emissive": "#ff4466", "emissiveIntensity": 2.4 }
1946
1733
  }
1947
1734
  },
1948
1735
  {
@@ -1962,10 +1749,7 @@
1962
1749
  "type": "Area3D",
1963
1750
  "props": {
1964
1751
  "position": [0, 0, 0.4],
1965
- "collider": {
1966
- "shape": "box",
1967
- "size": [0.7, 1.2, 0.8]
1968
- }
1752
+ "collider": { "shape": "box", "size": [0.7, 1.2, 0.8] }
1969
1753
  },
1970
1754
  "script": {
1971
1755
  "name": "DamageOnContact",
@@ -1976,7 +1760,7 @@
1976
1760
  "repeatEvery": 1.2
1977
1761
  }
1978
1762
  },
1979
- "uid": "n_z8vhukdcirpi88je"
1763
+ "uid": "n_36cm25pm1yqfxvdp"
1980
1764
  },
1981
1765
  {
1982
1766
  "name": "HissSfx",
@@ -1991,22 +1775,14 @@
1991
1775
  }
1992
1776
  }
1993
1777
  ],
1994
- "uid": "n_n468rqi1ozzm61uu"
1778
+ "uid": "n_vtxsvhcb38lu8jxr"
1995
1779
  },
1996
1780
  {
1997
1781
  "name": "Shade1_2",
1998
1782
  "type": "Node3D",
1999
1783
  "groups": ["shade", "shade-ward1"],
2000
- "props": {
2001
- "position": [-67.5, 18.16, -46.5]
2002
- },
2003
- "script": {
2004
- "name": "PathFollow",
2005
- "props": {
2006
- "speed": 2.6,
2007
- "loop": true
2008
- }
2009
- },
1784
+ "props": { "position": [-67.5, 18.16, -46.5], "snapToGround": false },
1785
+ "script": { "name": "PathFollow", "props": { "speed": 2.6, "loop": true } },
2010
1786
  "children": [
2011
1787
  {
2012
1788
  "name": "Body",
@@ -2030,11 +1806,7 @@
2030
1806
  "mesh": "gem",
2031
1807
  "size": [0.3, 0.46, 0.3],
2032
1808
  "position": [0, 0.58, 0],
2033
- "material": {
2034
- "color": "#0e0e1e",
2035
- "emissive": "#241a5e",
2036
- "emissiveIntensity": 0.4
2037
- }
1809
+ "material": { "color": "#0e0e1e", "emissive": "#241a5e", "emissiveIntensity": 0.4 }
2038
1810
  }
2039
1811
  },
2040
1812
  {
@@ -2044,11 +1816,7 @@
2044
1816
  "mesh": "sphere",
2045
1817
  "size": [0.05, 0.05, 0.05],
2046
1818
  "position": [-0.09, 0.6, 0.24],
2047
- "material": {
2048
- "color": "#ff4466",
2049
- "emissive": "#ff4466",
2050
- "emissiveIntensity": 2.4
2051
- }
1819
+ "material": { "color": "#ff4466", "emissive": "#ff4466", "emissiveIntensity": 2.4 }
2052
1820
  }
2053
1821
  },
2054
1822
  {
@@ -2058,11 +1826,7 @@
2058
1826
  "mesh": "sphere",
2059
1827
  "size": [0.05, 0.05, 0.05],
2060
1828
  "position": [0.09, 0.6, 0.24],
2061
- "material": {
2062
- "color": "#ff4466",
2063
- "emissive": "#ff4466",
2064
- "emissiveIntensity": 2.4
2065
- }
1829
+ "material": { "color": "#ff4466", "emissive": "#ff4466", "emissiveIntensity": 2.4 }
2066
1830
  }
2067
1831
  },
2068
1832
  {
@@ -2082,10 +1846,7 @@
2082
1846
  "type": "Area3D",
2083
1847
  "props": {
2084
1848
  "position": [0, 0, 0.4],
2085
- "collider": {
2086
- "shape": "box",
2087
- "size": [0.7, 1.2, 0.8]
2088
- }
1849
+ "collider": { "shape": "box", "size": [0.7, 1.2, 0.8] }
2089
1850
  },
2090
1851
  "script": {
2091
1852
  "name": "DamageOnContact",
@@ -2096,7 +1857,7 @@
2096
1857
  "repeatEvery": 1.2
2097
1858
  }
2098
1859
  },
2099
- "uid": "n_bq1hz55sxw1i1im1"
1860
+ "uid": "n_6vg1jdq39hynvurc"
2100
1861
  },
2101
1862
  {
2102
1863
  "name": "HissSfx",
@@ -2111,22 +1872,14 @@
2111
1872
  }
2112
1873
  }
2113
1874
  ],
2114
- "uid": "n_ny13372zziqzgpom"
1875
+ "uid": "n_r5vg5y04gzy6jesl"
2115
1876
  },
2116
1877
  {
2117
1878
  "name": "Shade2_1",
2118
1879
  "type": "Node3D",
2119
1880
  "groups": ["shade", "shade-ward2"],
2120
- "props": {
2121
- "position": [67.5, 11.46, -49.5]
2122
- },
2123
- "script": {
2124
- "name": "PathFollow",
2125
- "props": {
2126
- "speed": 2.6,
2127
- "loop": true
2128
- }
2129
- },
1881
+ "props": { "position": [67.5, 11.46, -49.5], "snapToGround": false },
1882
+ "script": { "name": "PathFollow", "props": { "speed": 2.6, "loop": true } },
2130
1883
  "children": [
2131
1884
  {
2132
1885
  "name": "Body",
@@ -2150,11 +1903,7 @@
2150
1903
  "mesh": "gem",
2151
1904
  "size": [0.3, 0.46, 0.3],
2152
1905
  "position": [0, 0.58, 0],
2153
- "material": {
2154
- "color": "#0e0e1e",
2155
- "emissive": "#241a5e",
2156
- "emissiveIntensity": 0.4
2157
- }
1906
+ "material": { "color": "#0e0e1e", "emissive": "#241a5e", "emissiveIntensity": 0.4 }
2158
1907
  }
2159
1908
  },
2160
1909
  {
@@ -2164,11 +1913,7 @@
2164
1913
  "mesh": "sphere",
2165
1914
  "size": [0.05, 0.05, 0.05],
2166
1915
  "position": [-0.09, 0.6, 0.24],
2167
- "material": {
2168
- "color": "#ff4466",
2169
- "emissive": "#ff4466",
2170
- "emissiveIntensity": 2.4
2171
- }
1916
+ "material": { "color": "#ff4466", "emissive": "#ff4466", "emissiveIntensity": 2.4 }
2172
1917
  }
2173
1918
  },
2174
1919
  {
@@ -2178,11 +1923,7 @@
2178
1923
  "mesh": "sphere",
2179
1924
  "size": [0.05, 0.05, 0.05],
2180
1925
  "position": [0.09, 0.6, 0.24],
2181
- "material": {
2182
- "color": "#ff4466",
2183
- "emissive": "#ff4466",
2184
- "emissiveIntensity": 2.4
2185
- }
1926
+ "material": { "color": "#ff4466", "emissive": "#ff4466", "emissiveIntensity": 2.4 }
2186
1927
  }
2187
1928
  },
2188
1929
  {
@@ -2202,10 +1943,7 @@
2202
1943
  "type": "Area3D",
2203
1944
  "props": {
2204
1945
  "position": [0, 0, 0.4],
2205
- "collider": {
2206
- "shape": "box",
2207
- "size": [0.7, 1.2, 0.8]
2208
- }
1946
+ "collider": { "shape": "box", "size": [0.7, 1.2, 0.8] }
2209
1947
  },
2210
1948
  "script": {
2211
1949
  "name": "DamageOnContact",
@@ -2216,7 +1954,7 @@
2216
1954
  "repeatEvery": 1.2
2217
1955
  }
2218
1956
  },
2219
- "uid": "n_y9jsyb615rpdggas"
1957
+ "uid": "n_f09g1ssdolxxejia"
2220
1958
  },
2221
1959
  {
2222
1960
  "name": "HissSfx",
@@ -2231,22 +1969,14 @@
2231
1969
  }
2232
1970
  }
2233
1971
  ],
2234
- "uid": "n_r53mg0r2ctvvkvjj"
1972
+ "uid": "n_6wwlu8sbcnvshg3k"
2235
1973
  },
2236
1974
  {
2237
1975
  "name": "Shade2_2",
2238
1976
  "type": "Node3D",
2239
1977
  "groups": ["shade", "shade-ward2"],
2240
- "props": {
2241
- "position": [52.5, 10.73, -61.5]
2242
- },
2243
- "script": {
2244
- "name": "PathFollow",
2245
- "props": {
2246
- "speed": 2.6,
2247
- "loop": true
2248
- }
2249
- },
1978
+ "props": { "position": [52.5, 10.73, -61.5], "snapToGround": false },
1979
+ "script": { "name": "PathFollow", "props": { "speed": 2.6, "loop": true } },
2250
1980
  "children": [
2251
1981
  {
2252
1982
  "name": "Body",
@@ -2270,11 +2000,7 @@
2270
2000
  "mesh": "gem",
2271
2001
  "size": [0.3, 0.46, 0.3],
2272
2002
  "position": [0, 0.58, 0],
2273
- "material": {
2274
- "color": "#0e0e1e",
2275
- "emissive": "#241a5e",
2276
- "emissiveIntensity": 0.4
2277
- }
2003
+ "material": { "color": "#0e0e1e", "emissive": "#241a5e", "emissiveIntensity": 0.4 }
2278
2004
  }
2279
2005
  },
2280
2006
  {
@@ -2284,11 +2010,7 @@
2284
2010
  "mesh": "sphere",
2285
2011
  "size": [0.05, 0.05, 0.05],
2286
2012
  "position": [-0.09, 0.6, 0.24],
2287
- "material": {
2288
- "color": "#ff4466",
2289
- "emissive": "#ff4466",
2290
- "emissiveIntensity": 2.4
2291
- }
2013
+ "material": { "color": "#ff4466", "emissive": "#ff4466", "emissiveIntensity": 2.4 }
2292
2014
  }
2293
2015
  },
2294
2016
  {
@@ -2298,11 +2020,7 @@
2298
2020
  "mesh": "sphere",
2299
2021
  "size": [0.05, 0.05, 0.05],
2300
2022
  "position": [0.09, 0.6, 0.24],
2301
- "material": {
2302
- "color": "#ff4466",
2303
- "emissive": "#ff4466",
2304
- "emissiveIntensity": 2.4
2305
- }
2023
+ "material": { "color": "#ff4466", "emissive": "#ff4466", "emissiveIntensity": 2.4 }
2306
2024
  }
2307
2025
  },
2308
2026
  {
@@ -2322,10 +2040,7 @@
2322
2040
  "type": "Area3D",
2323
2041
  "props": {
2324
2042
  "position": [0, 0, 0.4],
2325
- "collider": {
2326
- "shape": "box",
2327
- "size": [0.7, 1.2, 0.8]
2328
- }
2043
+ "collider": { "shape": "box", "size": [0.7, 1.2, 0.8] }
2329
2044
  },
2330
2045
  "script": {
2331
2046
  "name": "DamageOnContact",
@@ -2336,7 +2051,7 @@
2336
2051
  "repeatEvery": 1.2
2337
2052
  }
2338
2053
  },
2339
- "uid": "n_fg4pcm0kcpbzpqui"
2054
+ "uid": "n_v57yy55e166ta3wz"
2340
2055
  },
2341
2056
  {
2342
2057
  "name": "HissSfx",
@@ -2351,22 +2066,14 @@
2351
2066
  }
2352
2067
  }
2353
2068
  ],
2354
- "uid": "n_y5kshgw9213y7eeo"
2069
+ "uid": "n_l4nnh74z3m6e6iiu"
2355
2070
  },
2356
2071
  {
2357
2072
  "name": "Shade3_1",
2358
2073
  "type": "Node3D",
2359
2074
  "groups": ["shade", "shade-ward3"],
2360
- "props": {
2361
- "position": [76.5, 14.09, 46.5]
2362
- },
2363
- "script": {
2364
- "name": "PathFollow",
2365
- "props": {
2366
- "speed": 2.6,
2367
- "loop": true
2368
- }
2369
- },
2075
+ "props": { "position": [76.5, 14.09, 46.5], "snapToGround": false },
2076
+ "script": { "name": "PathFollow", "props": { "speed": 2.6, "loop": true } },
2370
2077
  "children": [
2371
2078
  {
2372
2079
  "name": "Body",
@@ -2390,11 +2097,7 @@
2390
2097
  "mesh": "gem",
2391
2098
  "size": [0.3, 0.46, 0.3],
2392
2099
  "position": [0, 0.58, 0],
2393
- "material": {
2394
- "color": "#0e0e1e",
2395
- "emissive": "#241a5e",
2396
- "emissiveIntensity": 0.4
2397
- }
2100
+ "material": { "color": "#0e0e1e", "emissive": "#241a5e", "emissiveIntensity": 0.4 }
2398
2101
  }
2399
2102
  },
2400
2103
  {
@@ -2404,11 +2107,7 @@
2404
2107
  "mesh": "sphere",
2405
2108
  "size": [0.05, 0.05, 0.05],
2406
2109
  "position": [-0.09, 0.6, 0.24],
2407
- "material": {
2408
- "color": "#ff4466",
2409
- "emissive": "#ff4466",
2410
- "emissiveIntensity": 2.4
2411
- }
2110
+ "material": { "color": "#ff4466", "emissive": "#ff4466", "emissiveIntensity": 2.4 }
2412
2111
  }
2413
2112
  },
2414
2113
  {
@@ -2418,11 +2117,7 @@
2418
2117
  "mesh": "sphere",
2419
2118
  "size": [0.05, 0.05, 0.05],
2420
2119
  "position": [0.09, 0.6, 0.24],
2421
- "material": {
2422
- "color": "#ff4466",
2423
- "emissive": "#ff4466",
2424
- "emissiveIntensity": 2.4
2425
- }
2120
+ "material": { "color": "#ff4466", "emissive": "#ff4466", "emissiveIntensity": 2.4 }
2426
2121
  }
2427
2122
  },
2428
2123
  {
@@ -2442,10 +2137,7 @@
2442
2137
  "type": "Area3D",
2443
2138
  "props": {
2444
2139
  "position": [0, 0, 0.4],
2445
- "collider": {
2446
- "shape": "box",
2447
- "size": [0.7, 1.2, 0.8]
2448
- }
2140
+ "collider": { "shape": "box", "size": [0.7, 1.2, 0.8] }
2449
2141
  },
2450
2142
  "script": {
2451
2143
  "name": "DamageOnContact",
@@ -2456,7 +2148,7 @@
2456
2148
  "repeatEvery": 1.2
2457
2149
  }
2458
2150
  },
2459
- "uid": "n_l9e6uonnlyg7m16w"
2151
+ "uid": "n_eum2htm836mblcpf"
2460
2152
  },
2461
2153
  {
2462
2154
  "name": "HissSfx",
@@ -2471,22 +2163,14 @@
2471
2163
  }
2472
2164
  }
2473
2165
  ],
2474
- "uid": "n_ojzy1ypkshyepyvy"
2166
+ "uid": "n_h36jra1obrmdpot0"
2475
2167
  },
2476
2168
  {
2477
2169
  "name": "Shade3_2",
2478
2170
  "type": "Node3D",
2479
2171
  "groups": ["shade", "shade-ward3"],
2480
- "props": {
2481
- "position": [61.5, 13.7, 34.5]
2482
- },
2483
- "script": {
2484
- "name": "PathFollow",
2485
- "props": {
2486
- "speed": 2.6,
2487
- "loop": true
2488
- }
2489
- },
2172
+ "props": { "position": [61.5, 13.7, 34.5], "snapToGround": false },
2173
+ "script": { "name": "PathFollow", "props": { "speed": 2.6, "loop": true } },
2490
2174
  "children": [
2491
2175
  {
2492
2176
  "name": "Body",
@@ -2510,11 +2194,7 @@
2510
2194
  "mesh": "gem",
2511
2195
  "size": [0.3, 0.46, 0.3],
2512
2196
  "position": [0, 0.58, 0],
2513
- "material": {
2514
- "color": "#0e0e1e",
2515
- "emissive": "#241a5e",
2516
- "emissiveIntensity": 0.4
2517
- }
2197
+ "material": { "color": "#0e0e1e", "emissive": "#241a5e", "emissiveIntensity": 0.4 }
2518
2198
  }
2519
2199
  },
2520
2200
  {
@@ -2524,11 +2204,7 @@
2524
2204
  "mesh": "sphere",
2525
2205
  "size": [0.05, 0.05, 0.05],
2526
2206
  "position": [-0.09, 0.6, 0.24],
2527
- "material": {
2528
- "color": "#ff4466",
2529
- "emissive": "#ff4466",
2530
- "emissiveIntensity": 2.4
2531
- }
2207
+ "material": { "color": "#ff4466", "emissive": "#ff4466", "emissiveIntensity": 2.4 }
2532
2208
  }
2533
2209
  },
2534
2210
  {
@@ -2538,11 +2214,7 @@
2538
2214
  "mesh": "sphere",
2539
2215
  "size": [0.05, 0.05, 0.05],
2540
2216
  "position": [0.09, 0.6, 0.24],
2541
- "material": {
2542
- "color": "#ff4466",
2543
- "emissive": "#ff4466",
2544
- "emissiveIntensity": 2.4
2545
- }
2217
+ "material": { "color": "#ff4466", "emissive": "#ff4466", "emissiveIntensity": 2.4 }
2546
2218
  }
2547
2219
  },
2548
2220
  {
@@ -2562,10 +2234,7 @@
2562
2234
  "type": "Area3D",
2563
2235
  "props": {
2564
2236
  "position": [0, 0, 0.4],
2565
- "collider": {
2566
- "shape": "box",
2567
- "size": [0.7, 1.2, 0.8]
2568
- }
2237
+ "collider": { "shape": "box", "size": [0.7, 1.2, 0.8] }
2569
2238
  },
2570
2239
  "script": {
2571
2240
  "name": "DamageOnContact",
@@ -2576,7 +2245,7 @@
2576
2245
  "repeatEvery": 1.2
2577
2246
  }
2578
2247
  },
2579
- "uid": "n_7xn82zimw6skfh3j"
2248
+ "uid": "n_8vrqyycre1jy3qfc"
2580
2249
  },
2581
2250
  {
2582
2251
  "name": "HissSfx",
@@ -2591,35 +2260,29 @@
2591
2260
  }
2592
2261
  }
2593
2262
  ],
2594
- "uid": "n_l5g65a25w1r2yvby"
2263
+ "uid": "n_wl3i254fiub3uwkz"
2595
2264
  },
2596
2265
  {
2597
2266
  "name": "Player",
2598
2267
  "type": "RigidBody3D",
2599
2268
  "groups": ["player"],
2600
- "script": {
2601
- "name": "Health",
2602
- "props": {
2603
- "max": 100,
2604
- "invulnerableFor": 0.8
2605
- }
2606
- },
2269
+ "uid": "n_3cqocoi9v0cvoxdv",
2270
+ "script": { "name": "Health", "props": { "max": 100, "invulnerableFor": 0.8 } },
2607
2271
  "props": {
2608
2272
  "position": [-4.5, 18.73, 70.5],
2609
2273
  "fixedRotation": true,
2610
2274
  "friction": 0,
2611
- "collider": {
2612
- "shape": "capsule",
2613
- "radius": 0.34,
2614
- "height": 1
2615
- }
2275
+ "collider": { "shape": "capsule", "radius": 0.34, "height": 1 }
2616
2276
  },
2617
2277
  "children": [
2278
+ { "name": "Catch", "type": "Respawn" },
2618
2279
  {
2619
2280
  "name": "Controller",
2620
2281
  "type": "CharacterController3D",
2621
2282
  "props": {
2622
2283
  "view": "free",
2284
+ "coyoteSeconds": 0.12,
2285
+ "jumpBufferSeconds": 0.15,
2623
2286
  "camDistance": 5.2,
2624
2287
  "eyeHeight": 1.1,
2625
2288
  "maxSpeed": 4.4,
@@ -2634,10 +2297,8 @@
2634
2297
  "airborne": "$anims/jump"
2635
2298
  }
2636
2299
  },
2637
- "script": {
2638
- "name": "SwordStrike"
2639
- },
2640
- "uid": "n_cyhj8t0qy5t3k94v"
2300
+ "script": { "name": "SwordStrike" },
2301
+ "uid": "n_wwj03pq43zanstwu"
2641
2302
  },
2642
2303
  {
2643
2304
  "name": "Skin",
@@ -2653,10 +2314,7 @@
2653
2314
  {
2654
2315
  "name": "SwordMount",
2655
2316
  "type": "BoneAttachment3D",
2656
- "props": {
2657
- "target": "../Skin",
2658
- "bone": "RightHand"
2659
- },
2317
+ "props": { "target": "../Skin", "bone": "RightHand" },
2660
2318
  "children": [
2661
2319
  {
2662
2320
  "name": "Blade",
@@ -2665,11 +2323,7 @@
2665
2323
  "mesh": "box",
2666
2324
  "size": [0.045, 0.7, 0.045],
2667
2325
  "position": [0, 0.42, 0],
2668
- "material": {
2669
- "color": "#d8dde8",
2670
- "metalness": 0.9,
2671
- "roughness": 0.25
2672
- },
2326
+ "material": { "color": "#d8dde8", "metalness": 0.9, "roughness": 0.25 },
2673
2327
  "castShadow": true
2674
2328
  }
2675
2329
  },
@@ -2680,19 +2334,13 @@
2680
2334
  "mesh": "box",
2681
2335
  "size": [0.16, 0.04, 0.06],
2682
2336
  "position": [0, 0.09, 0],
2683
- "material": {
2684
- "color": "#8a6d3a",
2685
- "metalness": 0.7,
2686
- "roughness": 0.4
2687
- }
2337
+ "material": { "color": "#8a6d3a", "metalness": 0.7, "roughness": 0.4 }
2688
2338
  }
2689
2339
  },
2690
2340
  {
2691
2341
  "name": "SwordTip",
2692
2342
  "type": "Node3D",
2693
- "props": {
2694
- "position": [0, 0.78, 0]
2695
- },
2343
+ "props": { "position": [0, 0.78, 0] },
2696
2344
  "children": [
2697
2345
  {
2698
2346
  "name": "SwingTrail",
@@ -2714,22 +2362,10 @@
2714
2362
  {
2715
2363
  "name": "SwingSfx",
2716
2364
  "type": "AudioPlayer",
2717
- "props": {
2718
- "preset": "shoot",
2719
- "volume": 0.35,
2720
- "pitch": 0.55
2721
- }
2365
+ "props": { "preset": "shoot", "volume": 0.35, "pitch": 0.55 }
2722
2366
  },
2723
- {
2724
- "name": "HitSfx",
2725
- "type": "AudioPlayer",
2726
- "props": {
2727
- "preset": "hit",
2728
- "volume": 0.6
2729
- }
2730
- }
2731
- ],
2732
- "uid": "n_klf0y16b0ct0deyk"
2367
+ { "name": "HitSfx", "type": "AudioPlayer", "props": { "preset": "hit", "volume": 0.6 } }
2368
+ ]
2733
2369
  },
2734
2370
  {
2735
2371
  "name": "Sky",
@@ -2743,23 +2379,14 @@
2743
2379
  "maxSunElevationDeg": 48
2744
2380
  }
2745
2381
  },
2746
- "uid": "n_v447j9q4dnw2gwtj"
2382
+ "uid": "n_ewmqe9qbcu5taq30"
2747
2383
  },
2748
2384
  {
2749
2385
  "name": "Boss",
2750
2386
  "type": "Node3D",
2751
2387
  "groups": ["boss"],
2752
- "props": {
2753
- "visible": false,
2754
- "position": [-0.5, 16.87, 47.5]
2755
- },
2756
- "script": {
2757
- "name": "PathFollow",
2758
- "props": {
2759
- "speed": 2,
2760
- "loop": false
2761
- }
2762
- },
2388
+ "props": { "visible": false, "snapToGround": false, "position": [-0.5, 16.87, 47.5] },
2389
+ "script": { "name": "PathFollow", "props": { "speed": 2, "loop": false } },
2763
2390
  "children": [
2764
2391
  {
2765
2392
  "name": "Body",
@@ -2800,11 +2427,7 @@
2800
2427
  "mesh": "sphere",
2801
2428
  "size": [0.16, 0.16, 0.16],
2802
2429
  "position": [-0.34, 4.4, 0.8],
2803
- "material": {
2804
- "color": "#ff2f6b",
2805
- "emissive": "#ff2f6b",
2806
- "emissiveIntensity": 4
2807
- }
2430
+ "material": { "color": "#ff2f6b", "emissive": "#ff2f6b", "emissiveIntensity": 4 }
2808
2431
  }
2809
2432
  },
2810
2433
  {
@@ -2814,11 +2437,7 @@
2814
2437
  "mesh": "sphere",
2815
2438
  "size": [0.16, 0.16, 0.16],
2816
2439
  "position": [0.34, 4.4, 0.8],
2817
- "material": {
2818
- "color": "#ff2f6b",
2819
- "emissive": "#ff2f6b",
2820
- "emissiveIntensity": 4
2821
- }
2440
+ "material": { "color": "#ff2f6b", "emissive": "#ff2f6b", "emissiveIntensity": 4 }
2822
2441
  }
2823
2442
  },
2824
2443
  {
@@ -2829,11 +2448,7 @@
2829
2448
  "size": [0.4, 2, 0.4],
2830
2449
  "position": [-1.5, 2.6, 0],
2831
2450
  "rotation": [0, 0, 18],
2832
- "material": {
2833
- "color": "#171130",
2834
- "emissive": "#41288f",
2835
- "emissiveIntensity": 0.5
2836
- },
2451
+ "material": { "color": "#171130", "emissive": "#41288f", "emissiveIntensity": 0.5 },
2837
2452
  "castShadow": true
2838
2453
  }
2839
2454
  },
@@ -2845,23 +2460,14 @@
2845
2460
  "size": [0.4, 2, 0.4],
2846
2461
  "position": [1.5, 2.6, 0],
2847
2462
  "rotation": [0, 0, -18],
2848
- "material": {
2849
- "color": "#171130",
2850
- "emissive": "#41288f",
2851
- "emissiveIntensity": 0.5
2852
- },
2463
+ "material": { "color": "#171130", "emissive": "#41288f", "emissiveIntensity": 0.5 },
2853
2464
  "castShadow": true
2854
2465
  }
2855
2466
  },
2856
2467
  {
2857
2468
  "name": "EyeGlow",
2858
2469
  "type": "OmniLight3D",
2859
- "props": {
2860
- "position": [0, 4.2, 0.6],
2861
- "color": "#b46bff",
2862
- "intensity": 0,
2863
- "range": 26
2864
- }
2470
+ "props": { "position": [0, 4.2, 0.6], "color": "#b46bff", "intensity": 0, "range": 26 }
2865
2471
  },
2866
2472
  {
2867
2473
  "name": "Dread",
@@ -2881,10 +2487,7 @@
2881
2487
  "type": "Area3D",
2882
2488
  "props": {
2883
2489
  "position": [0, 1.2, 0.8],
2884
- "collider": {
2885
- "shape": "box",
2886
- "size": [2.4, 3.2, 2.2]
2887
- }
2490
+ "collider": { "shape": "box", "size": [2.4, 3.2, 2.2] }
2888
2491
  },
2889
2492
  "script": {
2890
2493
  "name": "DamageOnContact",
@@ -2895,7 +2498,7 @@
2895
2498
  "repeatEvery": 1.5
2896
2499
  }
2897
2500
  },
2898
- "uid": "n_sfo65nky8me2m1lr"
2501
+ "uid": "n_z4n0p976sp0mwr8m"
2899
2502
  },
2900
2503
  {
2901
2504
  "name": "RoarSfx",
@@ -2910,25 +2513,14 @@
2910
2513
  }
2911
2514
  }
2912
2515
  ],
2913
- "uid": "n_er3epyju7e5xopzg"
2516
+ "uid": "n_d8cl5voz3mjr266t"
2914
2517
  },
2915
2518
  {
2916
2519
  "name": "Camera",
2917
2520
  "type": "Camera3D",
2918
- "props": {
2919
- "current": true,
2920
- "far": 900,
2921
- "position": [-16.5, 23.85266860961914, 75.5]
2922
- }
2923
- },
2924
- {
2925
- "name": "WinSfx",
2926
- "type": "AudioPlayer",
2927
- "props": {
2928
- "preset": "win",
2929
- "volume": 0.7
2930
- }
2521
+ "props": { "current": true, "far": 900, "position": [-16.5, 23.85266860961914, 75.5] }
2931
2522
  },
2523
+ { "name": "WinSfx", "type": "AudioPlayer", "props": { "preset": "win", "volume": 0.7 } },
2932
2524
  {
2933
2525
  "name": "HUD",
2934
2526
  "type": "HudLayer",
@@ -2936,7 +2528,7 @@
2936
2528
  {
2937
2529
  "name": "Quest",
2938
2530
  "type": "UiText",
2939
- "uid": "n_ysul3v903v7r9bqw",
2531
+ "uid": "n_3txwnq8m201xbwoz",
2940
2532
  "props": {
2941
2533
  "text": "Find the lighthouse keeper [E]",
2942
2534
  "size": 16,
@@ -2947,35 +2539,25 @@
2947
2539
  {
2948
2540
  "name": "HP",
2949
2541
  "type": "UiBar",
2950
- "uid": "n_x49lxq49wej0w332",
2951
- "props": {
2952
- "anchor": "topRight",
2953
- "value": 100,
2954
- "max": 100,
2955
- "width": 170
2956
- }
2542
+ "uid": "n_vp09cmk3syxo2lcz",
2543
+ "props": { "anchor": "topRight", "value": 100, "max": 100, "width": 170 }
2957
2544
  },
2958
2545
  {
2959
2546
  "name": "Banner",
2960
2547
  "type": "UiBanner",
2961
- "uid": "n_7kqv8wsefrki826x",
2962
- "props": {
2963
- "anchor": "center"
2964
- }
2548
+ "uid": "n_xwkphpoa7ac9w451",
2549
+ "props": { "anchor": "center" }
2965
2550
  },
2966
2551
  {
2967
2552
  "name": "Dialogue",
2968
2553
  "type": "UiDialogue",
2969
- "uid": "n_y0bq7vt5tewf88ny",
2970
- "props": {
2971
- "anchor": "bottom",
2972
- "charsPerSecond": 45
2973
- }
2554
+ "uid": "n_7wosfkulqmue3jpv",
2555
+ "props": { "anchor": "bottom", "charsPerSecond": 45 }
2974
2556
  },
2975
2557
  {
2976
2558
  "name": "Hint",
2977
2559
  "type": "UiText",
2978
- "uid": "n_osy8mwjnmfp9zicd",
2560
+ "uid": "n_x3funbse7a8nkfnu",
2979
2561
  "props": {
2980
2562
  "text": "WASD move · Shift sprint · E interact · click/F strike",
2981
2563
  "size": 12,
@@ -2983,53 +2565,14 @@
2983
2565
  "anchor": "bottomRight",
2984
2566
  "shadow": true
2985
2567
  }
2986
- },
2987
- {
2988
- "name": "PauseMenu",
2989
- "type": "UiPanel",
2990
- "props": {
2991
- "anchor": "center",
2992
- "layout": "column",
2993
- "gap": 10,
2994
- "padding": 18
2995
- },
2996
- "children": [
2997
- {
2998
- "name": "PausedTitle",
2999
- "type": "UiText",
3000
- "props": {
3001
- "text": "Paused",
3002
- "size": 24
3003
- }
3004
- },
3005
- {
3006
- "name": "ResumeHint",
3007
- "type": "UiText",
3008
- "props": {
3009
- "text": "Esc to resume · R to restart",
3010
- "size": 13,
3011
- "color": "#c9d2dd"
3012
- }
3013
- }
3014
- ]
3015
2568
  }
3016
2569
  ]
3017
2570
  }
3018
2571
  ],
3019
- "uid": "n_ndhsdrkhi26aksvr"
2572
+ "uid": "n_nxftk1ep8wbi1bn9"
3020
2573
  },
3021
2574
  "connections": [
3022
- {
3023
- "signal": "interacted",
3024
- "from": "Keeper",
3025
- "to": "/root",
3026
- "handler": "onTalk"
3027
- },
3028
- {
3029
- "signal": "died",
3030
- "from": "Player",
3031
- "to": "/root",
3032
- "handler": "onPlayerDown"
3033
- }
2575
+ { "signal": "interacted", "from": "Keeper", "to": "/root", "handler": "onTalk" },
2576
+ { "signal": "died", "from": "Player", "to": "/root", "handler": "onPlayerDown" }
3034
2577
  ]
3035
2578
  }