Make Space Villain LMTR
wire remove HP and MP limits and skip game end checks
#40961
+46
−14
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
About the PR
This PR adds functionality to the
LMTR
wire of the Space Villain arcade machine.Specifically, cutting or pulsing it removes HP and MP limits from the game, and makes it ignore victory conditions until the wire is mended or pulsed again.
Why / Balance
I stumbled upon the unused
OverflowFlag
ofSpaceVillainArcadeComponent
while looking at the possible hacking interactions with Space Villain and figured I could add some behavior to it.I figure it could prove to be a silly interaction: somebody cutting the wire of the arcade machine, closing the panel again, and challenging players to beat that game, or calling engineering and complaining that the game is glitched and demanding that they fix it...
It behaves a bit differently from the existing invincibility-toggling cables, as their state is reset once a new game is started on the machine, and therefore are not a persistent change.
To indicate that the wire behavior has changed, the
LMTR
LED color has been changed fromRed
toOrangeRed
, and made it turn off instead of blinking when its state is altered.Technical details
I renamed the unused
SpaceVillainArcadeComponent.OverflowFlag
toSpaceVillainArcadeComponent.UncappedFlag
to better represent its effect.I added a new public field to
SpaceVillainGame.Fighter
namedUncapped
that makes theHp
andMp
properties ignore their bound between 0 andMaxHp
/MaxMp
.I made
SpaceVillainGame
set theUncapped
field on both fighters to the value of itsUncappedFlag
when a new game is started.Finally, I made the
ArcadeOverflowWireAction.ToggleValue
method also set theUncapped
field on both fighters if a game is already in progress.(I believe the existing code can be cleaned up a bit, but I wanted to change as little of it as possible for this pull request.)
Media
2025-10-18.18-44-00.mp4
2025-10-18.18-44-13.mp4
Requirements
Breaking changes
The unused flag
SpaceVillainArcadeComponent.OverflowFlag
is now used, and namedSpaceVillainArcadeComponent.UncappedFlag
.Changelog
🆑