Skip to content

Conversation

Steffo99
Copy link
Contributor

@Steffo99 Steffo99 commented Oct 18, 2025

About the PR

I attempted to improve the UI of the Space Villain arcade machine.

Why / Balance

I wanted to experiment a bit with SS14's layout code, and figured I could try doing something useful as well.

Without this PR, some of Space Villain's messages are too long to be displayed in the game's window, and end up being clipped, looking kinda weird and unpolished as a result.

The window's rescaling functionality also was strange, so I attempted to address that by making the new layout fill any window size it's given, while making sure that the Attack / Heal / Recharge buttons do not change position during gameplay.

Technical details

Made a lot of use of GridContainers and HorizontalExpand and HAlignment.Stretch.

Used BoxContainer as spacers to shift messages to the middle of the window and buttons to the bottom.

Split the fighter info label into two separate HP and MP labels so that they could be colored appropriately.

Made use of Fluent's functionality (functions, terms, replacements) to improve the localization support of the minigame.

Media

No game in progress. Fighting. Turtling. Game ended.
2025-10-19.18-39-43.mp4

Requirements

Breaking changes

For consistency, all spacevillain-* localization keys were changed to space-villain-*.

Changelog

🆑

  • tweak: Improved the graphics of Space Villain!

@PJBot PJBot added S: Untriaged Status: Indicates an item has not been triaged and doesn't have appropriate labels. S: Needs Review Status: Requires additional reviews before being fully accepted. Not to be replaced by S: Approved. size/S Denotes a PR that changes 10-99 lines. labels Oct 18, 2025
@slarticodefast
Copy link
Member

slarticodefast commented Oct 18, 2025

This should probably just be converted to use xaml instead of defining every single element of the UI in C#.
I assume it's only this way because the code is really old.

@PJBot PJBot added size/M Denotes a PR that changes 100-999 lines. Changes: UI Changes: Might require knowledge of UI design or code. and removed size/S Denotes a PR that changes 10-99 lines. labels Oct 19, 2025
@Steffo99
Copy link
Contributor Author

@slarticodefast Rewrote the menu using XAML! It seems to work; please let me know if I should do something differently!

@Steffo99
Copy link
Contributor Author

I'll merge #40962 into this so that I can localize all strings.

@Steffo99 Steffo99 marked this pull request as draft October 19, 2025 16:27
@Steffo99 Steffo99 marked this pull request as ready for review October 19, 2025 16:53
@Steffo99
Copy link
Contributor Author

Localized and made a few more tweaks!

Copy link
Contributor

This pull request has conflicts, please resolve those before we can evaluate the pull request.

@github-actions github-actions bot added the S: Merge Conflict Status: Needs to resolve merge conflicts before it can be accepted label Oct 19, 2025
@github-actions github-actions bot removed the S: Merge Conflict Status: Needs to resolve merge conflicts before it can be accepted label Oct 20, 2025
@Steffo99
Copy link
Contributor Author

Is it me or is the notification button for this issue exceptionally broken for everyone, opening a diff between two random commits...? GitHub what are you doing?! 😆

@FairlySadPanda FairlySadPanda added P3: Standard Priority: Default priority for repository items. T: New Feature Type: New feature or content, or extending existing content D3: Low Difficulty: Some codebase knowledge required. A: General Interactions Area: General in-game interactions that don't relate to another area. T: Visual Change Type: Deals with changes to art, sprites or other visuals in the game. and removed S: Untriaged Status: Indicates an item has not been triaged and doesn't have appropriate labels. labels Oct 21, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A: General Interactions Area: General in-game interactions that don't relate to another area. Changes: UI Changes: Might require knowledge of UI design or code. D3: Low Difficulty: Some codebase knowledge required. P3: Standard Priority: Default priority for repository items. S: Needs Review Status: Requires additional reviews before being fully accepted. Not to be replaced by S: Approved. size/M Denotes a PR that changes 100-999 lines. T: New Feature Type: New feature or content, or extending existing content T: Visual Change Type: Deals with changes to art, sprites or other visuals in the game.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants