9 junction events across 6 levels, auto-generated from real OSM intersections (tools/osm_junction.py): each crossing street's ways become lane-offset convoy streams, deterministic speeds/intervals/models -- learnable puzzles, not dice. Menu lists CRASH JCT entries; crash -> 9s settle with camera-relative aftertouch on the wreck and a one-shot crashbreaker shockwave (blast() on traffic, radial impulse on debris, orange boom). Damage tally vs bronze/silver/gold targets. Fixed zero-normal UV projection that striped roads. Smoke test drives a full junction run to tally (k, gold). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
198 lines
2.9 KiB
JSON
198 lines
2.9 KiB
JSON
[
|
|
{
|
|
"name": "Bridge Approach",
|
|
"spawn": {
|
|
"x": 8.830464544568363,
|
|
"z": 869.4323045999147,
|
|
"dx": 0.07444215026982055,
|
|
"dz": -0.9972253337451898
|
|
},
|
|
"streams": [
|
|
{
|
|
"pts": [
|
|
[
|
|
6.138933818706997,
|
|
869.2186170903494
|
|
],
|
|
[
|
|
7.71576357448385,
|
|
849.3684911078449
|
|
],
|
|
[
|
|
10.638374835867648,
|
|
826.3950177708408
|
|
],
|
|
[
|
|
13.290793665081416,
|
|
807.4161707785927
|
|
],
|
|
[
|
|
16.464164221809273,
|
|
786.8204240256596
|
|
]
|
|
],
|
|
"speed": 12.0,
|
|
"interval": 2.2
|
|
},
|
|
{
|
|
"pts": [
|
|
[
|
|
21.80118214360166,
|
|
787.6427619747212
|
|
],
|
|
[
|
|
18.633212388594718,
|
|
808.2026580211177
|
|
],
|
|
[
|
|
15.991303480558578,
|
|
827.1064634292346
|
|
],
|
|
[
|
|
13.086203238107553,
|
|
849.932740892406
|
|
],
|
|
[
|
|
11.521995270429729,
|
|
869.64599210948
|
|
]
|
|
],
|
|
"speed": 11.0,
|
|
"interval": 2.6
|
|
},
|
|
{
|
|
"pts": [
|
|
[
|
|
18.99248078399424,
|
|
762.39669386784
|
|
],
|
|
[
|
|
25.743285889885765,
|
|
718.3587501785464
|
|
],
|
|
[
|
|
28.769387854660618,
|
|
692.1866319902829
|
|
],
|
|
[
|
|
30.0890967826306,
|
|
666.9831668179552
|
|
],
|
|
[
|
|
31.42169559470248,
|
|
651.6049662957291
|
|
],
|
|
[
|
|
31.81270185839052,
|
|
638.4108005958807
|
|
],
|
|
[
|
|
32.07909068323288,
|
|
624.4813765582306
|
|
]
|
|
],
|
|
"speed": 12.0,
|
|
"interval": 2.2
|
|
},
|
|
{
|
|
"pts": [
|
|
[
|
|
37.478103203918025,
|
|
624.5846422421965
|
|
],
|
|
[
|
|
37.211108262175465,
|
|
638.5419810043787
|
|
],
|
|
[
|
|
36.81191635813593,
|
|
651.9298049040424
|
|
],
|
|
[
|
|
35.47759634851261,
|
|
667.3354059817195
|
|
],
|
|
[
|
|
34.150141407857646,
|
|
692.6421440096167
|
|
],
|
|
[
|
|
31.09171746204034,
|
|
719.1032498212462
|
|
],
|
|
[
|
|
24.33013387059421,
|
|
763.2148989320567
|
|
]
|
|
],
|
|
"speed": 11.0,
|
|
"interval": 2.6
|
|
},
|
|
{
|
|
"pts": [
|
|
[
|
|
46.61372413580953,
|
|
629.091352780875
|
|
],
|
|
[
|
|
46.0791068558773,
|
|
644.9124964101077
|
|
],
|
|
[
|
|
45.148393336775854,
|
|
661.3968152993656
|
|
],
|
|
[
|
|
43.42646160590967,
|
|
688.423534995915
|
|
],
|
|
[
|
|
41.167633319989406,
|
|
712.1819019166054
|
|
],
|
|
[
|
|
39.13812925040989,
|
|
728.9192605875077
|
|
]
|
|
],
|
|
"speed": 12.0,
|
|
"interval": 2.2
|
|
},
|
|
{
|
|
"pts": [
|
|
[
|
|
33.77740686081252,
|
|
728.2691410126066
|
|
],
|
|
[
|
|
35.797668406451436,
|
|
711.6131516837517
|
|
],
|
|
[
|
|
38.04296969005352,
|
|
688.0016170039884
|
|
],
|
|
[
|
|
39.75839999553985,
|
|
661.068224700852
|
|
],
|
|
[
|
|
40.68465217733579,
|
|
644.6678359900116
|
|
],
|
|
[
|
|
41.21680242495871,
|
|
628.9090452194655
|
|
]
|
|
],
|
|
"speed": 11.0,
|
|
"interval": 2.6
|
|
}
|
|
],
|
|
"targets": [
|
|
15000,
|
|
35000,
|
|
60000
|
|
]
|
|
}
|
|
] |