ShitboxInfinity/levels/story_bridge/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

187 lines
2.7 KiB
JSON

[
{
"name": "Bridge Approach",
"spawn": {
"dx": -0.114095858645717,
"dz": -0.993469745407426,
"x": 35.5160890575852,
"z": -118.596483088614
},
"streams": [
{
"interval": 1.5,
"pts": [
[
21.8244656781075,
-237.813875098783
],
[
23.1457200273832,
-226.455207706528
],
[
24.7882096121438,
-213.848153713549
],
[
26.1455691749522,
-200.297419769933
]
],
"speed": 12.0
},
{
"interval": 1.5,
"pts": [
[
2.19994158852704,
-240.327171190027
],
[
-2.52481722237557,
-243.919505367749
],
[
-6.32534953080772,
-247.60965512377
],
[
-15.1839832375373,
-255.261358332787
],
[
-19.8227220865701,
-258.67299529667
],
[
-24.2795153329838,
-261.703355786389
],
[
-29.0114379744006,
-263.890761064968
]
],
"speed": 12.0
},
{
"interval": 1.8,
"pts": [
[
20.7724471517801,
-199.7593122304
],
[
19.4233779811381,
-213.232863886751
],
[
17.786545159723,
-225.792452293243
],
[
16.4606356403737,
-237.18991410136
]
],
"speed": 11.0
},
{
"interval": 1.8,
"pts": [
[
-26.7370429025148,
-268.788426535065
],
[
-21.6112433779486,
-266.398068213575
],
[
-16.704188313209,
-263.081481102976
],
[
-11.7617743504717,
-259.438496866914
],
[
-2.72241951437748,
-251.63195487599
],
[
0.983930787446262,
-248.024220632365
],
[
5.46498065752023,
-244.628278010132
]
],
"speed": 11.0
},
{
"interval": 1.5,
"pts": [
[
11.2707008429023,
-197.847843241665
],
[
10.8961758047183,
-204.766417702285
],
[
10.4764778796752,
-211.209757888086
],
[
9.92304078347784,
-216.207006965937
],
[
8.93295830185362,
-221.625317668162
],
[
7.50873869919987,
-226.865371707994
]
],
"speed": 12.0
},
{
"interval": 1.5,
"pts": [
[
28.875188928697,
-229.492425462448
],
[
28.7254802520939,
-214.053661592775
],
[
28.1508746327618,
-209.459560296273
],
[
27.2791473530598,
-204.781298995536
],
[
26.0948795290309,
-199.443402630656
]
],
"speed": 12.0
}
],
"targets": [
5000,
7500,
11500
]
}
]