Skip to content

Close the gap along Sunset's Mid shack ridge - #239

Open
SunkenInTime wants to merge 1 commit into
mainfrom
t3code/sunset-shack-ridge
Open

SunkenInTime wants to merge 1 commit into
mainfrom
t3code/sunset-shack-ridge

Conversation

@SunkenInTime

@SunkenInTime SunkenInTime commented Oct 2, 2026 •

Copy link
Copy Markdown
Owner

What was wrong

Sunset's Mid shack roof is modelled as two slopes that meet at a 5 m ridge. The two slopes stopped 0.71 SVG units short of each other. An agent dragged across the roof fell to the 2 m ground in that strip, and its cone came out empty because the eye was inside the shack's walls. A decoded replay shows a player standing on the ridge, and the source roof (Juliett_Art_Mid/Shell_5_MidShackATop) runs straight through at 4.98–5.00 m.

The fix

Each slope now extends over the strip up to the line where the two planes meet, at 5.0 m. The roof is continuous, and every point takes the lower of the two planes, which is what a ridge is. Planes, heights and support ids are unchanged. Both sides are fixed. The script, scripts/fill_sunset_shack_ridge.py, is in the icarus-vision-pipeline archive.

How it was found

This came out of the replay check of where players actually stand. Astra matched 45 spots where held replay positions sat above every level the model offers against the 3D geometry. 44 were not data errors:

  • players standing on Sage walls or hanging on ropes
  • positions a fraction of a unit outside surfaces the model already has
  • Lotus's Mound, a slope we flattened on purpose

This ridge was the only missing surface.

I also searched every map for the same pattern. There were 880 near-gaps between opposite-facing slopes, and I asked the editor for the default level inside each gap and just outside it. Only two places drop by more than 1 m: this ridge, and two Corrode blocking-volume tops that this PR leaves alone.

Checked

  • test/sunset_shack_ridge_test.dart fails on the previous models and passes on these.
  • The svg, vision, height, standing and wall tests pass: 145 passed, 3 skipped.
  • tool/check_bundled_wall_heights.dart passes.
  • flutter analyze is clean on the new test.
  • The checksums in test/bundled_map_models_test.dart are updated for the two Sunset models.

🤖 Generated with Claude Code

RetriggerConfidence Score: 5/5

No issue was established that would prevent merging.

What we checked:

  • Decoded both Sunset height models and compared them with the previous versions; only the rings of roof supports 148 and 149 changed in each model. T-Rex
  • Compared 455 ridge-segment positions per side against both versions; the previous models lacked roof support at 355 positions per side, while the updated models had no missing supports or incorrect heights. T-Rex
  • Checked cones at 15 positions per side; the previous models gave the wrong eye elevation at all sampled positions, while the updated models gave the correct elevation and non-empty cones. T-Rex
  • Decoded assets showed changes limited to rings 148 and 149; no other model fields changed; the decoding confirmed that tracked code was not modified. T-Rex
  • Head-model validation showed zero missing supports and correct cone elevations, while base-model validation showed missing roof supports and incorrect cone elevations. T-Rex

Summary

This PR updates both Sunset height models to close the Mid shack roof gap, updates their checksums, and adds four ridge-height checks across attack and defense. A before-and-after check found continuous roof support, the expected eye height, and non-empty cones across the sampled ridge segments in both updated models. The decoded asset changes were limited to the two roof-support rings on each side. No actionable issue was established.

Reviews (1) · Last reviewed commit: "Close the gap along Sunset's Mid shack r..."

The shack roof is two automatic slopes meeting at a 5 m ridge, but they
stopped 0.71 SVG units short of each other. An agent dragged across the
roof dropped to the 2 m ground in that strip, and a replay shows a player
standing on the ridge. Each slope now reaches the line where the two planes
meet, so the roof is continuous. Planes, heights and ids are unchanged.

Found by checking replay standing positions against the height data; a
search of all 880 near-gaps between opposite-facing slopes on every map
found no other place where the editor drops a level, apart from two
Corrode blocking-volume tops left for review.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Oct 2, 2026

Copy link
Copy Markdown

Warning

Review limit reached

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Next included review available in 42 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

Learn how review limits work.

Review configuration:

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Advanced

Run ID: 47c98317-a4bb-4dd5-bc7c-3d12821da3ac

📥 Commits

Reviewing files that changed from the base of the PR and between a0dcea8 and e4ac79a.

⛔ Files ignored due to path filters (2)
  • assets/maps/sunset_svg_height_attack.json.gz is excluded by !**/*.gz
  • assets/maps/sunset_svg_height_defense.json.gz is excluded by !**/*.gz
📒 Files selected for processing (2)
  • test/bundled_map_models_test.dart
  • test/sunset_shack_ridge_test.dart
  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Autopilot is currently an internal CodeRabbit preview.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant