feat: Implement Phase 6a Airborne Mechanics and Landing Absorption
- Added new scene file `test_fall.scene` for testing airborne dynamics. - Created architecture proposal in `PHASE_6a_AIRBORNE_LANDING.md` detailing airborne momentum, procedural air pose, and landing impact absorption mechanics. - Developed specifications in `phase_6a_airborne_landing.md` outlining implementation decisions, targets, and static contracts for the airborne system. - Introduced focused regression tests in `test_phase6a_airborne_landing.gd` to validate airborne pose, momentum, landing timeline, and queue behavior. - Ensured all tests pass with 100% assertion success.
This commit is contained in:
+540
-8
@@ -3,10 +3,10 @@
|
||||
"scene_name": "Untitled",
|
||||
"camera": {
|
||||
"position": {
|
||||
"x": 1070.22937011719,
|
||||
"y": -54.6092796325684
|
||||
"x": 1074.43005371094,
|
||||
"y": 2419.70385742188
|
||||
},
|
||||
"zoom": 0.375657439231873
|
||||
"zoom": 0.17715610563755
|
||||
},
|
||||
"objects": [
|
||||
{
|
||||
@@ -205,8 +205,8 @@
|
||||
{
|
||||
"type": "walk_to",
|
||||
"target": {
|
||||
"x": 3112.55639648438,
|
||||
"y": 493.14306640625
|
||||
"x": -1861.99194335938,
|
||||
"y": 434.2099609375
|
||||
}
|
||||
}
|
||||
]
|
||||
@@ -439,8 +439,8 @@
|
||||
"file_id": "area_1",
|
||||
"type": "area",
|
||||
"position": {
|
||||
"x": 1650.52270507813,
|
||||
"y": -186.824584960938
|
||||
"x": 3245.060546875,
|
||||
"y": -1320.83642578125
|
||||
},
|
||||
"rotation": 0.0,
|
||||
"scale": {
|
||||
@@ -451,6 +451,538 @@
|
||||
"x": 96.0,
|
||||
"y": 96.0
|
||||
}
|
||||
},
|
||||
{
|
||||
"file_id": "terrain_30",
|
||||
"type": "terrain",
|
||||
"position": {
|
||||
"x": -488.163452148438,
|
||||
"y": -1807.93115234375
|
||||
},
|
||||
"rotation": 0.0,
|
||||
"asset_id": "ramp",
|
||||
"scale": {
|
||||
"x": 1.0,
|
||||
"y": 1.0
|
||||
}
|
||||
},
|
||||
{
|
||||
"file_id": "terrain_31",
|
||||
"type": "terrain",
|
||||
"position": {
|
||||
"x": 204.134155273438,
|
||||
"y": -1419.78088378906
|
||||
},
|
||||
"rotation": 0.0,
|
||||
"asset_id": "ramp",
|
||||
"scale": {
|
||||
"x": 1.0,
|
||||
"y": 1.0
|
||||
}
|
||||
},
|
||||
{
|
||||
"file_id": "terrain_32",
|
||||
"type": "terrain",
|
||||
"position": {
|
||||
"x": 340.276489257813,
|
||||
"y": -1889.03723144531
|
||||
},
|
||||
"rotation": 0.0,
|
||||
"asset_id": "ramp",
|
||||
"scale": {
|
||||
"x": 1.0,
|
||||
"y": 1.0
|
||||
}
|
||||
},
|
||||
{
|
||||
"file_id": "terrain_33",
|
||||
"type": "terrain",
|
||||
"position": {
|
||||
"x": 1620.59313964844,
|
||||
"y": -130.774658203125
|
||||
},
|
||||
"rotation": 74.9999986719706,
|
||||
"asset_id": "ramp",
|
||||
"scale": {
|
||||
"x": 1.0,
|
||||
"y": 1.0
|
||||
}
|
||||
},
|
||||
{
|
||||
"file_id": "terrain_34",
|
||||
"type": "terrain",
|
||||
"position": {
|
||||
"x": 1753.83874511719,
|
||||
"y": -12.01220703125
|
||||
},
|
||||
"rotation": 74.9999986719706,
|
||||
"asset_id": "ramp",
|
||||
"scale": {
|
||||
"x": 1.0,
|
||||
"y": 1.0
|
||||
}
|
||||
},
|
||||
{
|
||||
"file_id": "terrain_35",
|
||||
"type": "terrain",
|
||||
"position": {
|
||||
"x": 1910.25769042969,
|
||||
"y": 118.336669921875
|
||||
},
|
||||
"rotation": 74.9999986719706,
|
||||
"asset_id": "ramp",
|
||||
"scale": {
|
||||
"x": 1.0,
|
||||
"y": 1.0
|
||||
}
|
||||
},
|
||||
{
|
||||
"file_id": "terrain_36",
|
||||
"type": "terrain",
|
||||
"position": {
|
||||
"x": -5376.0,
|
||||
"y": 5600.0
|
||||
},
|
||||
"rotation": 0.0,
|
||||
"asset_id": "ground",
|
||||
"scale": {
|
||||
"x": 1.0,
|
||||
"y": 1.0
|
||||
}
|
||||
},
|
||||
{
|
||||
"file_id": "terrain_37",
|
||||
"type": "terrain",
|
||||
"position": {
|
||||
"x": -5184.0,
|
||||
"y": 5600.0
|
||||
},
|
||||
"rotation": 0.0,
|
||||
"asset_id": "ground",
|
||||
"scale": {
|
||||
"x": 1.0,
|
||||
"y": 1.0
|
||||
}
|
||||
},
|
||||
{
|
||||
"file_id": "terrain_38",
|
||||
"type": "terrain",
|
||||
"position": {
|
||||
"x": -4992.0,
|
||||
"y": 5600.0
|
||||
},
|
||||
"rotation": 0.0,
|
||||
"asset_id": "ground",
|
||||
"scale": {
|
||||
"x": 1.0,
|
||||
"y": 1.0
|
||||
}
|
||||
},
|
||||
{
|
||||
"file_id": "terrain_39",
|
||||
"type": "terrain",
|
||||
"position": {
|
||||
"x": -4800.0,
|
||||
"y": 5600.0
|
||||
},
|
||||
"rotation": 0.0,
|
||||
"asset_id": "ground",
|
||||
"scale": {
|
||||
"x": 1.0,
|
||||
"y": 1.0
|
||||
}
|
||||
},
|
||||
{
|
||||
"file_id": "terrain_40",
|
||||
"type": "terrain",
|
||||
"position": {
|
||||
"x": -4608.0,
|
||||
"y": 5600.0
|
||||
},
|
||||
"rotation": 0.0,
|
||||
"asset_id": "ground",
|
||||
"scale": {
|
||||
"x": 1.0,
|
||||
"y": 1.0
|
||||
}
|
||||
},
|
||||
{
|
||||
"file_id": "terrain_41",
|
||||
"type": "terrain",
|
||||
"position": {
|
||||
"x": -4416.0,
|
||||
"y": 5600.0
|
||||
},
|
||||
"rotation": 0.0,
|
||||
"asset_id": "ground",
|
||||
"scale": {
|
||||
"x": 1.0,
|
||||
"y": 1.0
|
||||
}
|
||||
},
|
||||
{
|
||||
"file_id": "terrain_42",
|
||||
"type": "terrain",
|
||||
"position": {
|
||||
"x": -4224.0,
|
||||
"y": 5600.0
|
||||
},
|
||||
"rotation": 0.0,
|
||||
"asset_id": "ground",
|
||||
"scale": {
|
||||
"x": 1.0,
|
||||
"y": 1.0
|
||||
}
|
||||
},
|
||||
{
|
||||
"file_id": "terrain_43",
|
||||
"type": "terrain",
|
||||
"position": {
|
||||
"x": -4032.0,
|
||||
"y": 5600.0
|
||||
},
|
||||
"rotation": 0.0,
|
||||
"asset_id": "ground",
|
||||
"scale": {
|
||||
"x": 1.0,
|
||||
"y": 1.0
|
||||
}
|
||||
},
|
||||
{
|
||||
"file_id": "terrain_44",
|
||||
"type": "terrain",
|
||||
"position": {
|
||||
"x": -3840.0,
|
||||
"y": 5600.0
|
||||
},
|
||||
"rotation": 0.0,
|
||||
"asset_id": "ground",
|
||||
"scale": {
|
||||
"x": 1.0,
|
||||
"y": 1.0
|
||||
}
|
||||
},
|
||||
{
|
||||
"file_id": "terrain_45",
|
||||
"type": "terrain",
|
||||
"position": {
|
||||
"x": -3648.0,
|
||||
"y": 5600.0
|
||||
},
|
||||
"rotation": 0.0,
|
||||
"asset_id": "ground",
|
||||
"scale": {
|
||||
"x": 1.0,
|
||||
"y": 1.0
|
||||
}
|
||||
},
|
||||
{
|
||||
"file_id": "terrain_46",
|
||||
"type": "terrain",
|
||||
"position": {
|
||||
"x": -3456.0,
|
||||
"y": 5600.0
|
||||
},
|
||||
"rotation": 0.0,
|
||||
"asset_id": "ground",
|
||||
"scale": {
|
||||
"x": 1.0,
|
||||
"y": 1.0
|
||||
}
|
||||
},
|
||||
{
|
||||
"file_id": "terrain_47",
|
||||
"type": "terrain",
|
||||
"position": {
|
||||
"x": -3264.0,
|
||||
"y": 5600.0
|
||||
},
|
||||
"rotation": 0.0,
|
||||
"asset_id": "ground",
|
||||
"scale": {
|
||||
"x": 1.0,
|
||||
"y": 1.0
|
||||
}
|
||||
},
|
||||
{
|
||||
"file_id": "terrain_48",
|
||||
"type": "terrain",
|
||||
"position": {
|
||||
"x": -3072.0,
|
||||
"y": 5600.0
|
||||
},
|
||||
"rotation": 0.0,
|
||||
"asset_id": "ground",
|
||||
"scale": {
|
||||
"x": 1.0,
|
||||
"y": 1.0
|
||||
}
|
||||
},
|
||||
{
|
||||
"file_id": "terrain_49",
|
||||
"type": "terrain",
|
||||
"position": {
|
||||
"x": -2880.0,
|
||||
"y": 5600.0
|
||||
},
|
||||
"rotation": 0.0,
|
||||
"asset_id": "ground",
|
||||
"scale": {
|
||||
"x": 1.0,
|
||||
"y": 1.0
|
||||
}
|
||||
},
|
||||
{
|
||||
"file_id": "terrain_50",
|
||||
"type": "terrain",
|
||||
"position": {
|
||||
"x": -4054.02685546875,
|
||||
"y": 1123.7216796875
|
||||
},
|
||||
"rotation": 0.0,
|
||||
"asset_id": "ground",
|
||||
"scale": {
|
||||
"x": 1.0,
|
||||
"y": 1.0
|
||||
}
|
||||
},
|
||||
{
|
||||
"file_id": "terrain_51",
|
||||
"type": "terrain",
|
||||
"position": {
|
||||
"x": -3862.02685546875,
|
||||
"y": 1123.7216796875
|
||||
},
|
||||
"rotation": 0.0,
|
||||
"asset_id": "ground",
|
||||
"scale": {
|
||||
"x": 1.0,
|
||||
"y": 1.0
|
||||
}
|
||||
},
|
||||
{
|
||||
"file_id": "terrain_52",
|
||||
"type": "terrain",
|
||||
"position": {
|
||||
"x": -3670.02685546875,
|
||||
"y": 1091.7216796875
|
||||
},
|
||||
"rotation": 0.0,
|
||||
"asset_id": "ground",
|
||||
"scale": {
|
||||
"x": 1.0,
|
||||
"y": 1.0
|
||||
}
|
||||
},
|
||||
{
|
||||
"file_id": "terrain_53",
|
||||
"type": "terrain",
|
||||
"position": {
|
||||
"x": -3478.02685546875,
|
||||
"y": 1091.7216796875
|
||||
},
|
||||
"rotation": 0.0,
|
||||
"asset_id": "ground",
|
||||
"scale": {
|
||||
"x": 1.0,
|
||||
"y": 1.0
|
||||
}
|
||||
},
|
||||
{
|
||||
"file_id": "terrain_54",
|
||||
"type": "terrain",
|
||||
"position": {
|
||||
"x": -3286.02685546875,
|
||||
"y": 1091.7216796875
|
||||
},
|
||||
"rotation": 0.0,
|
||||
"asset_id": "ground",
|
||||
"scale": {
|
||||
"x": 1.0,
|
||||
"y": 1.0
|
||||
}
|
||||
},
|
||||
{
|
||||
"file_id": "terrain_55",
|
||||
"type": "terrain",
|
||||
"position": {
|
||||
"x": -3094.02685546875,
|
||||
"y": 1091.7216796875
|
||||
},
|
||||
"rotation": 0.0,
|
||||
"asset_id": "ground",
|
||||
"scale": {
|
||||
"x": 1.0,
|
||||
"y": 1.0
|
||||
}
|
||||
},
|
||||
{
|
||||
"file_id": "terrain_56",
|
||||
"type": "terrain",
|
||||
"position": {
|
||||
"x": -2902.02685546875,
|
||||
"y": 1091.7216796875
|
||||
},
|
||||
"rotation": 0.0,
|
||||
"asset_id": "ground",
|
||||
"scale": {
|
||||
"x": 1.0,
|
||||
"y": 1.0
|
||||
}
|
||||
},
|
||||
{
|
||||
"file_id": "terrain_57",
|
||||
"type": "terrain",
|
||||
"position": {
|
||||
"x": -2710.02685546875,
|
||||
"y": 1091.7216796875
|
||||
},
|
||||
"rotation": 0.0,
|
||||
"asset_id": "ground",
|
||||
"scale": {
|
||||
"x": 1.0,
|
||||
"y": 1.0
|
||||
}
|
||||
},
|
||||
{
|
||||
"file_id": "terrain_58",
|
||||
"type": "terrain",
|
||||
"position": {
|
||||
"x": -2518.02685546875,
|
||||
"y": 1091.7216796875
|
||||
},
|
||||
"rotation": 0.0,
|
||||
"asset_id": "ground",
|
||||
"scale": {
|
||||
"x": 1.0,
|
||||
"y": 1.0
|
||||
}
|
||||
},
|
||||
{
|
||||
"file_id": "terrain_59",
|
||||
"type": "terrain",
|
||||
"position": {
|
||||
"x": -2326.02685546875,
|
||||
"y": 1091.7216796875
|
||||
},
|
||||
"rotation": 0.0,
|
||||
"asset_id": "ground",
|
||||
"scale": {
|
||||
"x": 1.0,
|
||||
"y": 1.0
|
||||
}
|
||||
},
|
||||
{
|
||||
"file_id": "terrain_60",
|
||||
"type": "terrain",
|
||||
"position": {
|
||||
"x": -2134.02685546875,
|
||||
"y": 1091.7216796875
|
||||
},
|
||||
"rotation": 0.0,
|
||||
"asset_id": "ground",
|
||||
"scale": {
|
||||
"x": 1.0,
|
||||
"y": 1.0
|
||||
}
|
||||
},
|
||||
{
|
||||
"file_id": "terrain_61",
|
||||
"type": "terrain",
|
||||
"position": {
|
||||
"x": -1942.02685546875,
|
||||
"y": 1091.7216796875
|
||||
},
|
||||
"rotation": 0.0,
|
||||
"asset_id": "ground",
|
||||
"scale": {
|
||||
"x": 1.0,
|
||||
"y": 1.0
|
||||
}
|
||||
},
|
||||
{
|
||||
"file_id": "terrain_62",
|
||||
"type": "terrain",
|
||||
"position": {
|
||||
"x": -1750.02685546875,
|
||||
"y": 1091.7216796875
|
||||
},
|
||||
"rotation": 0.0,
|
||||
"asset_id": "ground",
|
||||
"scale": {
|
||||
"x": 1.0,
|
||||
"y": 1.0
|
||||
}
|
||||
},
|
||||
{
|
||||
"file_id": "terrain_63",
|
||||
"type": "terrain",
|
||||
"position": {
|
||||
"x": -1558.02685546875,
|
||||
"y": 1091.7216796875
|
||||
},
|
||||
"rotation": 0.0,
|
||||
"asset_id": "ground",
|
||||
"scale": {
|
||||
"x": 1.0,
|
||||
"y": 1.0
|
||||
}
|
||||
},
|
||||
{
|
||||
"file_id": "terrain_64",
|
||||
"type": "terrain",
|
||||
"position": {
|
||||
"x": -1366.02685546875,
|
||||
"y": 1091.7216796875
|
||||
},
|
||||
"rotation": 0.0,
|
||||
"asset_id": "ground",
|
||||
"scale": {
|
||||
"x": 1.0,
|
||||
"y": 1.0
|
||||
}
|
||||
},
|
||||
{
|
||||
"file_id": "terrain_65",
|
||||
"type": "terrain",
|
||||
"position": {
|
||||
"x": -1174.02685546875,
|
||||
"y": 1091.7216796875
|
||||
},
|
||||
"rotation": 0.0,
|
||||
"asset_id": "ground",
|
||||
"scale": {
|
||||
"x": 1.0,
|
||||
"y": 1.0
|
||||
}
|
||||
},
|
||||
{
|
||||
"file_id": "terrain_66",
|
||||
"type": "terrain",
|
||||
"position": {
|
||||
"x": -982.02685546875,
|
||||
"y": 1091.7216796875
|
||||
},
|
||||
"rotation": 0.0,
|
||||
"asset_id": "ground",
|
||||
"scale": {
|
||||
"x": 1.0,
|
||||
"y": 1.0
|
||||
}
|
||||
},
|
||||
{
|
||||
"file_id": "terrain_67",
|
||||
"type": "terrain",
|
||||
"position": {
|
||||
"x": -790.02685546875,
|
||||
"y": 1091.7216796875
|
||||
},
|
||||
"rotation": 0.0,
|
||||
"asset_id": "ground",
|
||||
"scale": {
|
||||
"x": 1.0,
|
||||
"y": 1.0
|
||||
}
|
||||
}
|
||||
],
|
||||
"event_rules": [
|
||||
@@ -485,7 +1017,7 @@
|
||||
],
|
||||
"metadata": {
|
||||
"created_unix": 1789479607,
|
||||
"modified_unix": 1789529735.774,
|
||||
"modified_unix": 1789616216.822,
|
||||
"autosave": false,
|
||||
"source_path": ""
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user