Skip to content

Implement a custom splash screen#458

Merged
ikostan merged 35 commits intomainfrom
implement-a-custom-splash-screen
Mar 9, 2026
Merged

Implement a custom splash screen#458
ikostan merged 35 commits intomainfrom
implement-a-custom-splash-screen

Conversation

@ikostan
Copy link
Copy Markdown
Owner

@ikostan ikostan commented Mar 5, 2026


name: Default Pull Request Template
about: Suggesting changes to SkyLockAssault
title: ''
labels: ''
assignees: ''

image image

Description

What does this PR do? (e.g., "Fixes player jump physics in level 2" or "Adds
new enemy AI script")

Related Issue

Closes #ISSUE_NUMBER (if applicable)

Changes

  • List key changes here (e.g., "Updated Jump.gd to use Godot 4.4's new Tween
    system")
  • Any breaking changes? (e.g., "Deprecated old signal; migrate to new one")

Testing

  • Ran the game in Godot v4.5 editor—describe what you tested (e.g., "Jump
    works on Win10 with 60 FPS")
  • Any new unit tests added? (Link to test scene if yes)
  • Screenshots/GIFs if UI-related: (Attach below)

Checklist

  • Code follows Godot style guide (e.g., snake_case for variables)
  • No console errors in editor/output
  • Ready for review!

Additional Notes

Anything else? (e.g., "Tested on Win10 64-bit; needs Linux validation")

Summary by Sourcery

Update web export splash screen styling and asset packaging.

New Features:

  • Add new logo and branding image assets for use in the web splash screen.

Enhancements:

  • Adjust custom HTML shell splash screen colors, progress bar size, and status text styling for a refreshed appearance.
  • Configure web export to include assets directory in the exported build.

Summary by Sourcery

Refresh the web export splash screen and document recent input and navigation improvements, including associated assets.

New Features:

  • Introduce new logo and branding assets for use in the web splash screen.

Enhancements:

  • Update the custom HTML shell splash screen styling, including background, progress bar, and status text for a more polished appearance.

Documentation:

  • Document Milestone 12 input, navigation, audio settings, and settings-resource improvements in the README, replacing the previous milestone plan.
  • Add Coderabbit AI to the documented list of automation bots in the README.

Chores:

  • Add import metadata for new logo image and SVG assets used by the project.

Summary by Sourcery

Refresh the web export splash experience with a new Godot-driven loading flow and align tests and documentation with recent input and navigation improvements.

New Features:

  • Introduce a dedicated Godot splash scene and script to manage threaded loading and transitions into the main menu.
  • Add new logo and gear SVG/bitmap assets for use in the custom web splash layout.

Enhancements:

  • Redesign the custom HTML shell loading screen to use branded SVG artwork, simplified loading behavior, and a lightweight error fallback.
  • Adjust web Playwright tests to wait for the new splash initialization flow and more resilient UI selectors and timeouts.
  • Document recent input, navigation, and audio settings improvements in the README, replacing the previous milestone plan.

Documentation:

  • Add a milestone section describing input, navigation, audio settings, and settings-resource improvements, and update known limitations accordingly.

Tests:

  • Harden end-to-end web tests around audio, difficulty, navigation, back-flow, and clean-load flows to account for the splash screen and timing changes.

Chores:

  • Add import metadata for new splash and branding assets used by the Godot project.

Summary by CodeRabbit

  • New Features

    • Added a splash screen with a loading UI and threaded background loader for smoother startup and progress reporting.
  • New Assets

    • Added multiple branding logo assets and optimized import configurations for compressed textures.
  • Style

    • Updated loading visuals: darker background, larger progress bar, adjusted indicator and status text styling.
  • Documentation

    • Expanded README with a Milestone 12 roadmap for Input & Navigation and added a new BOTS entry.

ikostan added 6 commits March 4, 2026 21:27
Implement a custom splash screen in SkyLockAssault using Godot 4.5, displayed at game startup before transitioning to the main menu. Include fade-in, pause, and fade-out effects for a smooth introduction, replacing the default Godot splash. For web exports, integrate with the existing custom HTML shell (custom_shell.html) to handle initial loading visuals consistently.
Add multiple branding assets (SVG, PNG, JPG) and their Godot import metadata under assets/ (godot_logo_bg_removed, ikostan_logo, ikostan_logo_bg_removed, logo_large_monochrome_light, logo_vertical_monochrome_light). Update export_presets.cfg to include assets/* in the export bundle. Update project.godot with a project description and boot splash settings (background color and boot splash image uid) while keeping the existing icon and main scene.
@ikostan ikostan self-assigned this Mar 5, 2026
@ikostan ikostan added the GUI label Mar 5, 2026
@ikostan ikostan linked an issue Mar 5, 2026 that may be closed by this pull request
@ikostan ikostan moved this to In Progress in Sky Lock Assault Project Mar 5, 2026
@sourcery-ai
Copy link
Copy Markdown
Contributor

sourcery-ai Bot commented Mar 5, 2026

Reviewer's Guide

Refreshes the web export splash screen with new branding assets and styling tweaks, and updates project documentation to describe recent and planned input/navigation work plus new automation tooling references.

File-Level Changes

Change Details Files
Update custom HTML shell loading screen styling to match new branding and improve readability.
  • Lighten loading screen background color and adjust logo max sizes for better visibility on large displays.
  • Increase progress bar height, tighten its top margin, and switch the fill to a black bar for stronger contrast.
  • Change status text color to black and add responsive font sizing via CSS clamp for better legibility across screen sizes.
custom_shell.html
Add new logo/branding assets and wire them into the Godot project configuration and web export.
  • Introduce new logo image and SVG assets under the assets directory along with their .import configurations.
  • Update Godot project settings to reference the new splash screen artwork and ensure the assets directory is packaged for web exports.
project.godot
assets/godot_logo_bg_removed.png.import
assets/ikostan_logo.jpg.import
assets/ikostan_logo_bg_removed.png.import
assets/logo_large_monochrome_light.svg
assets/logo_large_monochrome_light.svg.import
assets/logo_vertical_monochrome_light.png.import
Extend README roadmap and tooling documentation to cover input/navigation improvements and automation bots.
  • Add Coderabbit AI to the list of repository automation/bot services.
  • Document detailed upcoming work for input mappings, menu navigation, audio/key-mapping navigation, and related CI/tooling updates within the roadmap section.
  • Introduce a dedicated Milestones 12 section describing completed input & navigation improvements, including remapping, menu navigation, audio controls, resource migration, and known limitations.
README.md

Assessment against linked issues

Issue Objective Addressed Explanation
#308 Implement an in-engine custom splash screen scene in Godot (splash_screen.tscn + script) that replaces the default Godot splash, performs fade-in → pause → fade-out on a logo, then transitions to the main menu.
#308 Customize the web export splash/loading experience via custom_shell.html to use project-specific branding and improved visuals for the initial loading screen.
#317 Update README.md to comprehensively document Milestone 12, summarizing the delivered input and navigation improvements, their scope, and any known limitations so the README remains an up-to-date project hub.

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Mar 5, 2026

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

Adds Godot texture import descriptors for several assets, a new splash screen scene and threaded loader script, updates the HTML loading shell and project boot_splash settings, and expands README with a detailed Milestone 12 roadmap.

Changes

Cohort / File(s) Summary
Asset Import Configurations
assets/godot_logo_bg_removed.png.import, assets/ikostan_logo.jpg.import, assets/ikostan_logo_bg_removed.png.import, assets/logo_large_monochrome_light.svg.import, assets/logo_vertical_monochrome_light.png.import
Added Godot .import descriptors for textures: each adds a remap entry (importer=texture, type=CompressedTexture2D) with uid and .ctex destination, dependency mapping, and detailed params (compression, mipmap, channel_remap, alpha/normal/HDR/sRGB flags, size_limit, detect_3d). vram_texture set to false.
Splash screen scene & script
scenes/splash_screen.tscn, scripts/splash_screen.gd, scripts/splash_screen.gd.uid
New splash scene with logo Sprite2D, ProgressBar and Label; new GDScript implements threaded background loading via ResourceLoader.load_threaded_request, progress smoothing, min-display timing, failure fallback, and guarded scene transition. UID file added.
Shell and Project Configuration
custom_shell.html, project.godot
Presentation tweaks to custom loading HTML (background color, progress bar sizing, colors, responsive text) and added config/description, boot_splash/bg_color, boot_splash/image in project.godot; updated run/main_scene.
Documentation
README.md
Large documentation addition: new BOTS entry and a detailed Milestone 12 section covering input remapping, menu navigation, audio controls, Godot resource migration, known limitations, and roadmap updates.

Sequence Diagram(s)

sequenceDiagram
  participant Splash as SplashScreen (Control)
  participant Loader as ResourceLoader (threaded)
  participant Globals as Globals
  participant SceneTree as SceneTree

  Splash->>Globals: read Globals.next_scene
  Splash->>Loader: ResourceLoader.load_threaded_request(next_scene_path)
  Loader-->>Splash: periodic progress updates
  Splash->>Splash: smooth progress (lerp) & ensure min_display_time
  alt load success
    Loader-->>Splash: PackedScene ready
    Splash->>SceneTree: change_scene_to(packed_scene) after delay
    Splash->>Globals: clear Globals.next_scene
  else load failed
    Splash->>SceneTree: fallback change_scene(next_scene_path)
    Splash->>Globals: log error/warning
  end
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related issues

Suggested labels

enhancement, web, documentation

Poem

🐰
I hopped through pixels, stitched each hue,
A logo placed, a progress bar in view,
Threads hum softly while the world loads through,
Splash then spring — the next scene blooms anew!

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title 'Implement a custom splash screen' clearly and directly summarizes the main change—adding a splash screen feature with new assets, scenes, and scripts.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Description check ✅ Passed PR description follows the template structure with all major sections present (Description, Related Issue, Changes, Testing, Checklist, Additional Notes) and includes detailed Sourcery summaries explaining the splash screen implementation.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch implement-a-custom-splash-screen

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 and usage tips.

Copy link
Copy Markdown
Contributor

@sourcery-ai sourcery-ai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey - I've found 2 issues, and left some high level feedback:

  • Changing include_filter to assets/* in export_presets.cfg will cause only files under assets/ to be exported (despite export_filter = all_resources), which may unintentionally exclude other required resources; consider removing include_filter or making it more targeted to the new assets only if that behavior is intentional.
  • The new splash palette makes both the progress bar (#333 with a black fill) and status text (black on a dark #2e2e2e background) low contrast; consider adjusting either the background or text/progress colors to maintain clear visual separation and readability.
Prompt for AI Agents
Please address the comments from this code review:

## Overall Comments
- Changing `include_filter` to `assets/*` in `export_presets.cfg` will cause only files under `assets/` to be exported (despite `export_filter = all_resources`), which may unintentionally exclude other required resources; consider removing `include_filter` or making it more targeted to the new assets only if that behavior is intentional.
- The new splash palette makes both the progress bar (`#333` with a black fill) and status text (black on a dark `#2e2e2e` background) low contrast; consider adjusting either the background or text/progress colors to maintain clear visual separation and readability.

## Individual Comments

### Comment 1
<location path="custom_shell.html" line_range="51" />
<code_context>
             width: 100%;
             height: 100%;
-            background-color: black;
+            background-color: #2e2e2e;
             display: flex;
             flex-direction: column;
</code_context>
<issue_to_address>
**issue:** Dark background combined with new text colors may reduce accessibility contrast.

With the shell background changing to #2e2e2e and `#status` text set to black, the contrast may fall below accessibility guidelines, depending on where `#status` appears. Consider keeping `#status` light or adjusting the background(s) to maintain sufficient contrast.
</issue_to_address>

### Comment 2
<location path="custom_shell.html" line_range="74-78" />
<code_context>
         }
         #status {
-            color: white;
+            color: black;
             margin-top: 10px;
+            font-size: 30px;
         }
         /* Retry button style (visible override) */
</code_context>
<issue_to_address>
**suggestion:** Large, black status text may clash visually and reduce readability against the updated background.

On the darker shell background (`#2e2e2e`) or over translucent overlays, this styling can feel visually heavy and reduce contrast. Consider either using a lighter text color, slightly reducing the font size, or giving `#status` a lighter background to keep it readable while still emphasized.

```suggestion
        #status {
            color: #f5f5f5;
            margin-top: 10px;
            font-size: 24px;
        }
```
</issue_to_address>

Sourcery is free for open source - if you like our reviews please consider sharing them ✨
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.

Comment thread custom_shell.html Outdated
Comment thread custom_shell.html Outdated
@deepsource-io
Copy link
Copy Markdown

deepsource-io Bot commented Mar 5, 2026

DeepSource Code Review

We reviewed changes in 60273f1...d4dd13f on this pull request. Below is the summary for the review, and you can see the individual issues we found as inline review comments.

See full review on DeepSource ↗

PR Report Card

Overall Grade  

Focus Area: Hygiene
Security  

Reliability  

Complexity  

Hygiene  

Feedback

  • No automatic formatter enforced
    • The same line-length violations repeat across tests because formatting is left to individual authors; adding a code formatter with an enforceable check (pre-commit or CI) will normalize style and eliminate these one-off fixes.
  • Tests embed large inline fixtures and expectations
    • Long lines come from big JSON/strings and verbose assertions placed directly in tests; extract fixtures, use builders or fixture files, and prefer multiline assertions or snapshots to shorten individual lines.
  • Duplication and verbose test helpers
    • Copy-pasted code and overly expressive helper calls produce repeated long lines; consolidate common strings/constants and provide compact factory helpers so test code stays concise and within line limits.

Code Review Summary

Analyzer Status Updated (UTC) Details
Python Mar 9, 2026 5:01a.m. Review ↗
JavaScript Mar 9, 2026 5:01a.m. Review ↗

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
custom_shell.html (1)

51-77: ⚠️ Potential issue | 🟠 Major

Low-contrast loading UI makes progress/status hard to read.

On Line 72 and Line 75, black foreground on dark backgrounds (#333 / #2e2e2e) significantly reduces readability of progress and status/error text.

Suggested contrast-safe style fix
         `#progress` {
             width: 0%;
             height: 100%;
-            background-color: black;
+            background-color: `#4ade80`;
         }
         `#status` {
-            color: black;
+            color: `#f5f5f5`;
             margin-top: 10px;
             font-size: 30px;
         }
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@custom_shell.html` around lines 51 - 77, The loading UI uses low-contrast
black text/elements against dark backgrounds; update the CSS for the `#progress`,
`#progress-bar` and `#status` selectors (and optionally `#loading` img contrast) to
use high-contrast colors (e.g., light text like white or `#f5f5f5` for `#status`, a
clearly visible progress fill color such as a lighter/brighter tone or accent
color for `#progress`, and adjust `#progress-bar` background/border to a mid-tone)
so the progress fill and status text are readable against the `#2e2e2e/`#333
backgrounds; make sure contrast meets accessibility guidelines and test
visibility in dark-mode background.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Outside diff comments:
In `@custom_shell.html`:
- Around line 51-77: The loading UI uses low-contrast black text/elements
against dark backgrounds; update the CSS for the `#progress`, `#progress-bar` and
`#status` selectors (and optionally `#loading` img contrast) to use high-contrast
colors (e.g., light text like white or `#f5f5f5` for `#status`, a clearly visible
progress fill color such as a lighter/brighter tone or accent color for
`#progress`, and adjust `#progress-bar` background/border to a mid-tone) so the
progress fill and status text are readable against the `#2e2e2e/`#333 backgrounds;
make sure contrast meets accessibility guidelines and test visibility in
dark-mode background.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: b4dfc4f4-907c-426b-9b57-8e5eb6740aa6

📥 Commits

Reviewing files that changed from the base of the PR and between 60273f1 and bd1bd82.

⛔ Files ignored due to path filters (5)
  • assets/godot_logo_bg_removed.png is excluded by !**/*.png
  • assets/ikostan_logo.jpg is excluded by !**/*.jpg
  • assets/ikostan_logo_bg_removed.png is excluded by !**/*.png
  • assets/logo_large_monochrome_light.svg is excluded by !**/*.svg
  • assets/logo_vertical_monochrome_light.png is excluded by !**/*.png
📒 Files selected for processing (8)
  • assets/godot_logo_bg_removed.png.import
  • assets/ikostan_logo.jpg.import
  • assets/ikostan_logo_bg_removed.png.import
  • assets/logo_large_monochrome_light.svg.import
  • assets/logo_vertical_monochrome_light.png.import
  • custom_shell.html
  • export_presets.cfg
  • project.godot
📜 Review details
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: Browser Functional Tests / test
🔇 Additional comments (7)
export_presets.cfg (1)

10-10: Good export inclusion update for branding assets.

This aligns the Web preset with the newly added splash/logo resources.

project.godot (1)

14-18: Boot splash/project metadata configuration looks correct.

boot_splash/image is properly set and consistent with the imported asset UID, so startup branding should resolve as expected.

assets/godot_logo_bg_removed.png.import (1)

1-40: Import metadata looks valid and consistent.

The remap, dependency mapping, and texture params are correctly structured for Godot import processing.

assets/ikostan_logo.jpg.import (1)

1-40: JPG import descriptor is correctly configured.

Remap/deps/params blocks are coherent and match the pattern used by the other asset imports.

assets/logo_vertical_monochrome_light.png.import (1)

1-40: PNG import configuration looks good.

No issues found in remap, dependency, or parameter settings.

assets/ikostan_logo_bg_removed.png.import (1)

1-40: Boot-splash asset import file is correctly wired.

The metadata and dependency mapping are valid and align with the boot splash reference.

assets/logo_large_monochrome_light.svg.import (1)

1-43: SVG import metadata is well-formed.

The texture remap/dependency settings and SVG-specific params look correct.

Adjust loading screen visuals in custom_shell.html: set background to #3d3d3d, increase loading image max size to 60%, reduce progress bar top margin to 10px, and raise status font-size to 40px. Clear include_filter in export_presets.cfg (was "assets/*") to avoid a restrictive export filter. Update project.godot boot_splash/bg_color to Color(0.23921569...) to match the updated shell background.
@ikostan ikostan linked an issue Mar 6, 2026 that may be closed by this pull request
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@custom_shell.html`:
- Around line 74-78: The `#status` rule uses black text on a `#3d3d3d` background
which fails WCAG contrast for large text; update the `#status` color to a lighter
value (for example white or a light gray like `#f5f5f5`) so the contrast ratio
meets at least 3:1 for 40px text, and verify the chosen color against the
`#3d3d3d` background to ensure it satisfies WCAG AA contrast requirements.
- Around line 62-73: The progress indicator (`#progress`) currently uses black on
a `#333` track which has poor contrast; update the CSS for the `#progress` selector
to use a higher-contrast color (e.g., `#4CAF50`, `#2196F3`, or white) instead of
black so the indicator is clearly visible against `#progress-bar`, and ensure the
chosen color provides sufficient contrast for accessibility.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: 007d400e-69d8-48b1-b560-22ef98fc2a54

📥 Commits

Reviewing files that changed from the base of the PR and between bd1bd82 and 482c874.

📒 Files selected for processing (2)
  • custom_shell.html
  • project.godot
🚧 Files skipped from review as they are similar to previous changes (1)
  • project.godot
📜 Review details
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: Browser Functional Tests / test
🔇 Additional comments (1)
custom_shell.html (1)

45-61: LGTM!

The loading container styling changes are well-structured. The background color #3d3d3d aligns with the project's boot splash configuration, and the 60% max dimensions for the logo image provide good visual balance for the splash screen.

Comment thread custom_shell.html Outdated
Comment thread custom_shell.html Outdated
ikostan added 2 commits March 5, 2026 18:33
Perform a comprehensive review of Milestone 10 upon its completion, and update the project's README.md file to reflect the delivered content. This ensures the documentation accurately captures the progress in this Godot 4.5 learning project on Windows 10 64-bit, highlighting new features, refactors, and improvements for better readability and onboarding.
@ikostan
Copy link
Copy Markdown
Owner Author

ikostan commented Mar 6, 2026

@sourcery-ai review

Copy link
Copy Markdown
Contributor

@sourcery-ai sourcery-ai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey - I've found 3 issues, and left some high level feedback:

  • In custom_shell.html, the status text color is now black on a dark #3d3d3d background, which may be hard to read; consider using a lighter text color or adjusting the background for better contrast and readability.
  • The README bots list now includes both Coderabbitai and CodeRabbit AI entries pointing to the same repository; consider consolidating these into a single, consistently named entry to avoid confusion.
  • Several .import files were added under assets/ without the corresponding source image assets in the diff; verify that the original image files are tracked so the splash screen renders correctly in fresh clones/exports.
Prompt for AI Agents
Please address the comments from this code review:

## Overall Comments
- In `custom_shell.html`, the status text color is now black on a dark `#3d3d3d` background, which may be hard to read; consider using a lighter text color or adjusting the background for better contrast and readability.
- The README bots list now includes both `Coderabbitai` and `CodeRabbit AI` entries pointing to the same repository; consider consolidating these into a single, consistently named entry to avoid confusion.
- Several `.import` files were added under `assets/` without the corresponding source image assets in the diff; verify that the original image files are tracked so the splash screen renders correctly in fresh clones/exports.

## Individual Comments

### Comment 1
<location path="custom_shell.html" line_range="51" />
<code_context>
             width: 100%;
             height: 100%;
-            background-color: black;
+            background-color: #3d3d3d;
             display: flex;
             flex-direction: column;
</code_context>
<issue_to_address>
**issue (bug_risk):** The new background and text color combination likely reduces readability and accessibility.

With the overlay background now `#3d3d3d` and `#status` text in black, the contrast is likely too low. Please adjust either the text color (e.g., white or light gray) or the background to ensure sufficient contrast on this blocking loading screen.
</issue_to_address>

### Comment 2
<location path="custom_shell.html" line_range="74-78" />
<code_context>
-            color: white;
+            color: black;
             margin-top: 10px;
+            font-size: 40px;
         }
         /* Retry button style (visible override) */
</code_context>
<issue_to_address>
**suggestion:** A fixed 40px font size for the status text may cause layout issues on smaller screens.

Using a fixed `40px` font size for `#status` can cause the loading text to overflow or look cramped on smaller viewports. Consider using responsive units (e.g., `rem`, `vw`, `clamp`) or constraining the text container width to keep the layout usable across screen sizes.

```suggestion
        #status {
            color: black;
            margin-top: 10px;
            /* Responsive font size: min 1.5rem, prefers 4vw, max ~2.5rem (~40px on large screens) */
            font-size: clamp(1.5rem, 4vw, 2.5rem);
        }
```
</issue_to_address>

### Comment 3
<location path="README.md" line_range="72" />
<code_context>
 7. [Signing Setup for GitHub Desktop](/files/docs/Signing_Setup_GitHub_Desktop.md)
 8. BOTS:
    - [Dependabot](https://docs.github.com/en/code-security/dependabot)
+   - [Coderabbitai](https://github.com/coderabbitai)
    - [Snyk](https://docs.snyk.io/)
    - [Sourcery AI](https://docs.sourcery.ai/)
</code_context>
<issue_to_address>
**issue (typo):** Naming of "Coderabbitai" is inconsistent with "CodeRabbit AI" below and likely a typo.

Please update this entry to match the existing "CodeRabbit AI" naming or the official branding so the references are consistent.

```suggestion
   - [CodeRabbit AI](https://github.com/coderabbitai)
```
</issue_to_address>

Sourcery is free for open source - if you like our reviews please consider sharing them ✨
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.

Comment thread custom_shell.html
Comment thread custom_shell.html Outdated
Comment thread README.md Outdated
ikostan added 3 commits March 5, 2026 19:14
…ut issues on smaller screens.

Using a fixed 40px font size for #status can cause the loading text to overflow or look cramped on smaller viewports. Consider using responsive units (e.g., rem, vw, clamp) or constraining the text container width to keep the layout usable across screen sizes.
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🧹 Nitpick comments (1)
README.md (1)

234-236: Fix the heading level under Milestones.

## Milestones is immediately followed by another ## heading, so the parent section is empty. Make Input & Navigation Improvements (Milestone 12) a ### heading or merge the two titles.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@README.md` around lines 234 - 236, Under the "Milestones" section, change the
duplicated H2 by making "Input & Navigation Improvements (Milestone 12)" a H3
(i.e., convert the heading text "Input & Navigation Improvements (Milestone 12)"
from "##" to "###") or merge it into the "Milestones" line so the parent section
is not empty; update the heading token for the line containing "Input &
Navigation Improvements (Milestone 12)" accordingly to restore proper document
structure.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@README.md`:
- Around line 72-75: Remove the duplicate CodeRabbit entry in the README list:
there are two entries pointing to the same URL ("Coderabbitai" and "CodeRabbit
AI"); keep a single canonical entry (e.g., "CodeRabbit AI" linking to
https://github.com/coderabbitai) and delete the other duplicate so the
integrations list no longer repeats the same project.

---

Nitpick comments:
In `@README.md`:
- Around line 234-236: Under the "Milestones" section, change the duplicated H2
by making "Input & Navigation Improvements (Milestone 12)" a H3 (i.e., convert
the heading text "Input & Navigation Improvements (Milestone 12)" from "##" to
"###") or merge it into the "Milestones" line so the parent section is not
empty; update the heading token for the line containing "Input & Navigation
Improvements (Milestone 12)" accordingly to restore proper document structure.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: aabafe15-76ae-4015-a2b4-454d0d86d8c0

📥 Commits

Reviewing files that changed from the base of the PR and between 482c874 and db52c10.

📒 Files selected for processing (1)
  • README.md
📜 Review details
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: Browser Functional Tests / test
🔇 Additional comments (1)
README.md (1)

211-230: No action needed—the documented features are implemented.

All features described in lines 211-230 and 236-268 (input remapping with conflict detection, menu navigation bindings, audio settings keyboard/gamepad support, GameSettingsResource migration, and related tests) are fully implemented in the codebase: game_settings_resource.gd, input_remap_button.gd, key_mapping.gd, audio_settings.gd, and corresponding test files all exist with complete implementations. The README accurately reflects the actual codebase state.

Comment thread README.md Outdated
@ikostan
Copy link
Copy Markdown
Owner Author

ikostan commented Mar 6, 2026

@sourcery-ai review

Copy link
Copy Markdown
Contributor

@sourcery-ai sourcery-ai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey - I've found 4 issues, and left some high level feedback:

  • In custom_shell.html, the combination of a #3d3d3d background with black progress bar and status text may be hard to read on some displays; consider slightly lightening the text/progress color or darkening the background to improve contrast and accessibility.
  • The splash screen layout scales the logo image up to 60% of viewport width/height; you may want to add a max pixel size or media query so it doesn’t dominate smaller screens or low-resolution devices.
Prompt for AI Agents
Please address the comments from this code review:

## Overall Comments
- In `custom_shell.html`, the combination of a #3d3d3d background with black progress bar and status text may be hard to read on some displays; consider slightly lightening the text/progress color or darkening the background to improve contrast and accessibility.
- The splash screen layout scales the logo image up to 60% of viewport width/height; you may want to add a max pixel size or media query so it doesn’t dominate smaller screens or low-resolution devices.

## Individual Comments

### Comment 1
<location path="custom_shell.html" line_range="51" />
<code_context>
             width: 100%;
             height: 100%;
-            background-color: black;
+            background-color: #3d3d3d;
             display: flex;
             flex-direction: column;
</code_context>
<issue_to_address>
**suggestion:** Consider contrast between the overlay background and inner elements for accessibility.

The overlay is now `#3d3d3d` while elements like the progress bar background are `#333` with a black fill, so the differences between these dark tones are minimal. Consider lightening the overlay or progress bar background, or using a lighter/high-contrast color for the progress fill, to increase visual separation and improve accessibility.

Suggested implementation:

```
        #progress-bar {
            /* Darker than the overlay (#3d3d3d) for clearer separation */
            background-color: #1a1a1a;
            border-radius: 4px;
        }
        #progress-bar > div {
            /* High-contrast fill color for better visibility against dark background */
            background-color: #4caf50;
            border-radius: 4px;
        }

        #progress-bar-old,
        /* keep any legacy/progressive enhancement rules below if present */

```

Because I only see the start of the `#progress-bar` rule, you may need to:
1. Adjust the `<<<<<<< SEARCH` selector to match your actual `#progress-bar` rule (e.g. include width/height declarations if they exist).
2. If the inner progress element uses a different selector than `#progress-bar > div` (e.g. `.progress`, `#progress`, `.bar`), update that selector in the new rule accordingly.
3. Remove or merge the `#progress-bar-old` placeholder in the replacement block if it doesn't exist in your file; it's just a marker to ensure we don't truncate existing rules that follow.
</issue_to_address>

### Comment 2
<location path="custom_shell.html" line_range="75-77" />
<code_context>
         }
         #status {
-            color: white;
+            color: black;
             margin-top: 10px;
+            font-size: clamp(1.5rem, 4vw, 2.5rem);
         }
         /* Retry button style (visible override) */
</code_context>
<issue_to_address>
**issue:** Black status text on a darkened overlay may reduce readability and fail contrast guidelines.

With the overlay background at `#3d3d3d`, `color: black` for `#status` will likely not meet WCAG contrast requirements. Consider using a lighter text color (e.g., white or light gray), or adding a lighter background behind the status text to preserve readability and accessibility.
</issue_to_address>

### Comment 3
<location path="README.md" line_range="72-75" />
<code_context>
 7. [Signing Setup for GitHub Desktop](/files/docs/Signing_Setup_GitHub_Desktop.md)
 8. BOTS:
    - [Dependabot](https://docs.github.com/en/code-security/dependabot)
+   - [Coderabbit AI](https://github.com/coderabbitai)
    - [Snyk](https://docs.snyk.io/)
    - [Sourcery AI](https://docs.sourcery.ai/)
    - [CodeRabbit AI](https://github.com/coderabbitai)
</code_context>
<issue_to_address>
**issue:** Avoid duplicate CodeRabbit entries and inconsistent naming in the bots list.

`Coderabbit AI` and `CodeRabbit AI` both link to `https://github.com/coderabbitai`. Keep only one entry and standardize on a single name for this bot.
</issue_to_address>

### Comment 4
<location path="README.md" line_range="265-266" />
<code_context>
+
+### Known Limitations
+
+* Some complex menu flows may still rely on mouse until additional
+  focus neighbors are defined.
+* Modifier-aware remapping requires explicit key+modifier press for
</code_context>
<issue_to_address>
**issue (typo):** Missing article in “rely on mouse”.

Suggested phrasing: “may still rely on the mouse until additional focus neighbors are defined.”

```suggestion
* Some complex menu flows may still rely on the mouse until additional
  focus neighbors are defined.
```
</issue_to_address>

Sourcery is free for open source - if you like our reviews please consider sharing them ✨
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.

Comment thread custom_shell.html
Comment thread custom_shell.html Outdated
Comment thread README.md Outdated
Comment thread README.md Outdated
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🧹 Nitpick comments (1)
scripts/splash_screen.gd (1)

96-96: Lerp factor 0.01 is too slow for the given timing constraints.

With a factor of 0.01, at 60fps the progress bar needs ~7+ seconds to visually approach 100%, but min_load_time is only 1–3 seconds. This compounds the already-noted issue where the UI may not reach 100% before transitioning. Consider using a faster factor (e.g., 0.050.1 like loading_screen.gd uses) or implement the 100% snap fix.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@scripts/splash_screen.gd` at line 96, The lerp smoothing factor for the
splash progress (loader_progress = lerp(loader_progress, display_progress,
0.01)) is too small and prevents the bar reaching 100% within min_load_time;
update the third parameter to a faster value (e.g., 0.05–0.1 to match
loading_screen.gd) or add a snap-to-100%: when display_progress >= 0.999 or
elapsed_time >= min_load_time set loader_progress = 1.0; modify the expression
around loader_progress, display_progress, lerp(...) and/or add the conditional
that forces loader_progress to 1.0 to ensure the UI completes before transition.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@scripts/splash_screen.gd`:
- Line 3: The header comment at the top of the file currently reads
"splashing_screen.gd" but the actual file is named splash_screen.gd; update that
header comment to match the real filename (use "splash_screen.gd") so the header
string and file name are consistent.

---

Nitpick comments:
In `@scripts/splash_screen.gd`:
- Line 96: The lerp smoothing factor for the splash progress (loader_progress =
lerp(loader_progress, display_progress, 0.01)) is too small and prevents the bar
reaching 100% within min_load_time; update the third parameter to a faster value
(e.g., 0.05–0.1 to match loading_screen.gd) or add a snap-to-100%: when
display_progress >= 0.999 or elapsed_time >= min_load_time set loader_progress =
1.0; modify the expression around loader_progress, display_progress, lerp(...)
and/or add the conditional that forces loader_progress to 1.0 to ensure the UI
completes before transition.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: b6142060-a0a9-47a5-9a2d-3b2413e1f0a8

📥 Commits

Reviewing files that changed from the base of the PR and between 54e0448 and 92324d3.

📒 Files selected for processing (1)
  • scripts/splash_screen.gd
📜 Review details
🧰 Additional context used
🧠 Learnings (1)
📓 Common learnings
Learnt from: ikostan
Repo: ikostan/SkyLockAssault PR: 458
File: custom_shell.html:62-73
Timestamp: 2026-03-06T02:27:18.929Z
Learning: In `custom_shell.html` (SkyLockAssault project), the progress bar indicator (`#progress`) intentionally uses `background-color: black` on a `#333` track against a `#3d3d3d` loading screen background. This low-contrast, dark monochromatic aesthetic is a deliberate design choice by the author (ikostan) and should not be flagged as a contrast/accessibility issue in future reviews.
🔇 Additional comments (4)
scripts/splash_screen.gd (4)

13-26: Variable declarations look correct.

Types and default values are appropriate. The @onready bindings match the expected scene structure with $ProgressBar and $Label nodes.


36-39: Cold start handling requires a default scene fallback.

When project.godot boots directly into this splash screen, Globals.next_scene is empty (per scripts/globals.gd Line 32), causing immediate failure on every cold launch. A default startup scene constant should be introduced to resolve this.


102-106: Snap UI to 100% before the transition delay.

The UI may still show less than 100% when the transition begins due to the slow lerp. This was previously flagged.


108-122: Transition fallback logic is well structured.

The approach of caching target_path before clearing Globals.next_scene, falling back to main menu on empty path, attempting direct load on threaded failure, and using change_scene_to_packed() for success is solid defensive programming.

Comment thread scripts/splash_screen.gd Outdated
ikostan and others added 6 commits March 5, 2026 20:26
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
This commit fixes the style issues introduced in 0575e74 according to the output
from Black and isort.

Details: #458
Comment thread tests/audio_flow_test.py
Comment thread tests/audio_flow_test.py
Comment thread tests/audio_flow_test.py
Comment thread tests/audio_flow_test.py
Comment thread tests/back_flow_test.py
Comment thread tests/volume_sliders_mutes_test.py
Comment thread tests/volume_sliders_mutes_test.py
Comment thread tests/volume_sliders_mutes_test.py
Comment thread tests/volume_sliders_mutes_test.py
Comment thread tests/volume_sliders_mutes_test.py
ikostan and others added 9 commits March 6, 2026 21:02
…ures.

Because project.godot now boots straight into this scene, Globals.next_scene is still empty on a cold launch (scripts/globals.gd Line 32). The only helper that populates it, Globals.load_scene_with_loading(), runs later during in-app navigation (scripts/globals.gd Lines 280-290). So this branch fires on every startup, logs an error, and skips threaded loading of the initial menu entirely.
Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>
…the bots list.

Coderabbit AI and CodeRabbit AI both link to https://github.com/coderabbitai. Keep only one entry and standardize on a single name for this bot.
Comment thread tests/back_flow_test.py Outdated
@ikostan
Copy link
Copy Markdown
Owner Author

ikostan commented Mar 8, 2026

@sourcery-ai review

@sourcery-ai
Copy link
Copy Markdown
Contributor

sourcery-ai Bot commented Mar 8, 2026

Sorry @ikostan, your pull request is larger than the review limit of 150000 diff characters

1 similar comment
@SourceryAI
Copy link
Copy Markdown

Sorry @ikostan, your pull request is larger than the review limit of 150000 diff characters

@ikostan
Copy link
Copy Markdown
Owner Author

ikostan commented Mar 8, 2026

@sourcery-ai summary

@ikostan ikostan merged commit f76b27e into main Mar 9, 2026
12 checks passed
@github-project-automation github-project-automation Bot moved this from In Progress to Done in Sky Lock Assault Project Mar 9, 2026
@ikostan ikostan deleted the implement-a-custom-splash-screen branch March 9, 2026 05:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

[DOCUMENTATION] Milestone #12 README.md update [FEATURE] Implement a custom splash screen

2 participants