ShitboxInfinity/levels/kangaroo_point/junctions.json
m3ultra aac4384c05 Per-junction medal targets, measured; fix the last unplayable junction
Medal targets are no longer one uniform 15/35/60k guess across every event.
tools/tune_junctions.gd plays each junction 12 times with varied launches and
sets bronze/silver/gold at the 35th/65th/88th percentile of actual damage, so
they now range from $4k at Cliffs Corner to $73k gold at Melbourne x Merivale.
The old numbers made half the events impossible and the other half trivial.

Grey x Glenelg scored $0 in 12/12 runs and took three fixes, each found by
measuring rather than reading:
- The launch sat on the street centreline, so the car drove cleanly BETWEEN the
  two convoy lanes -- closest pass 2.9 m, almost exactly the 2.7 m lane offset.
  It now launches in a lane. (The first attempt offset the wrong way and widened
  the pass to 5.5 m, which is how the sign error announced itself.)
- int(L / headway) floors to one car on a short clipped stream, so that junction
  fielded 9 convoy cars against the usual 20-25. Minimum 3 per stream, evenly
  spaced to fit.
Result: $0 -> $91k, convoy 9 -> 18, and 0 of 9 junctions now unplayable.

The tuner has turned out to be the event validator as much as a balance tool --
"scores nothing in every run" is an unplayable event, not a tuning problem.

Also from the review: the deformer no longer crumples det_* panels after they've
been shed onto their own body, and notes that rebuilding an ArrayMesh drops any
imported LODs.

Honest gap: Cliffs Corner and Bridge Approach show median == max at ~$4.7k --
winnable and correctly tuned, but the run ends on scenery before the convoy is
reached. Both are curved approaches; they want better crossings picked by hand.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-29 00:15:05 +10:00

151 lines
2.1 KiB
JSON

[
{
"name": "Cliffs Corner",
"spawn": {
"dx": 0.711628947630267,
"dz": -0.702555507340622,
"x": 21.7260085314512,
"z": -89.9672382353956
},
"streams": [
{
"interval": 1.5,
"pts": [
[
63.9261938834286,
-109.989375180132
],
[
78.3750416498091,
-148.834021380346
]
],
"speed": 12.0
},
{
"interval": 1.5,
"pts": [
[
106.136602457004,
-179.682190508149
],
[
105.148984701035,
-213.871671308174
]
],
"speed": 12.0
},
{
"interval": 1.8,
"pts": [
[
83.4362514359038,
-146.951428620045
],
[
68.9874036695233,
-108.10678241983
]
],
"speed": 11.0
},
{
"interval": 1.8,
"pts": [
[
110.546733134203,
-214.027593892259
],
[
111.534350890173,
-179.838113092233
]
],
"speed": 11.0
},
{
"interval": 1.5,
"pts": [
[
110.037936896846,
-168.495835638497
],
[
105.077018158356,
-166.641057207958
],
[
102.766219089942,
-165.688685229298
],
[
100.056232383348,
-163.762330372999
],
[
96.9873892973125,
-160.786566032783
],
[
94.5049985015079,
-158.034131644146
],
[
91.4342291831665,
-153.718055174129
],
[
82.7084835068341,
-145.882804882052
]
],
"speed": 12.0
},
{
"interval": 1.8,
"pts": [
[
79.1028095788788,
-149.902645118338
],
[
87.5616128524851,
-157.481410426472
],
[
90.2585312272088,
-161.369924756482
],
[
93.1092763097095,
-164.544256767181
],
[
96.5784627653289,
-167.893325227024
],
[
100.07071556656,
-170.367815571085
],
[
103.112804730391,
-171.671153192072
],
[
108.146577680852,
-173.553775961996
]
],
"speed": 11.0
}
],
"targets": [
4000,
6500,
10500
]
}
]