-
Notifications
You must be signed in to change notification settings - Fork 339
Implements the Prosthetic Wings (Glider) #7860
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
Adds full implementation of Prosthetic Wings, Glider cybernetic implant: - Infantry can dismount from VTOLs/DropShips as jump infantry (canAssaultDrop) - Cannot be used in vacuum or trace (very thin) atmospheres - Protects against fall damage from walking off 2+ levels or displacement - Conventional infantry only (not battle armor) - No BV impact (documented in BV calculator) Files changed: - Infantry.java: Added canUseGliderWings(), isProtectedFromFallDamage(), updated canAssaultDrop() with named booleans for clarity - TWGameManager.java: Added fall damage protection check in doEntityFall() - InfantryBVCalculator.java: Added BV comment (no impact per IO p.85) - messages.properties: Updated display name and description 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Construction restrictions implemented: - Glider wings and powered flight wings are mutually exclusive - Glider wings limit extraneous limb pairs to 1 (normally 2) Added methods: - hasInvalidWingsConfiguration(): Checks mutual exclusivity - getMaxExtraneousLimbPairs(): Returns 1 with glider, 2 otherwise - hasExcessiveExtraneousLimbs(): Validates limb pair count Added 7 new unit tests for construction rule validation. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR implements the Prosthetic Wings (Glider) cybernetic implant for conventional infantry per Interstellar Operations p.85. The implementation adds assault drop capability for leg/motorized infantry with glider wings, fall damage protection in suitable atmospheres, and construction rule validation for wing compatibility.
- Added
canUseGliderWings(),isProtectedFromFallDamage(), and related validation methods to Infantry class - Modified
canAssaultDrop()to grant assault drop capability when glider wings are usable - Integrated fall damage protection into the game manager's fall damage calculation
- Comprehensive test suite with 28 unit tests covering all gameplay rules and edge cases
Reviewed changes
Copilot reviewed 5 out of 5 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
Infantry.java |
Implements core glider wings functionality including atmosphere checks, fall damage protection, assault drop capability, and construction rule validation methods |
TWGameManager.java |
Adds fall damage protection check for conventional infantry with glider wings in the entity fall damage calculation |
InfantryBVCalculator.java |
Documents that glider wings have no BV impact per rulebook |
messages.properties |
Updates display name and description to reflect implementation status (removes "Not Implemented" tag) |
InfantryGliderWingsTest.java |
Comprehensive test suite covering atmosphere restrictions, fall damage protection, assault drop capability, and construction rules |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- Added DropShips to dismount capability - Added fall damage protection mention 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Infantry.java:1289 - Renamed method to hasGliderWingsOnInvalidInfantryType() - Added check (getMount() != null) to detect beast-mounted infantry - Updated javadoc to mention all three excluded types - TestInfantry.java:237-239 - Updated method call and error message to include beast-mounted
…r' into Implement-Prosthetic-Wings-Glider
- Enable VTOL dismount for glider wing infantry (treated as jump infantry) - Allow unlimited terrain descent with glider wings - Add game reports for gliding (VTOL dismount and terrain) - Skip zipline PSR when glider wings provide safer option - Add UI enforcement in CustomMekDialog to disable extraneous pair 2 - Add unit tests for infantry type validation
Sleet01
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
Implements the Prosthetic Wings, Glider cybernetic implant for conventional infantry per Interstellar Operations p.85.
Rules implemented:
Construction rules:
Changes
Infantry.javacanUseGliderWings(),isProtectedFromFallDamage(),hasInvalidWingsConfiguration(),getMaxExtraneousLimbPairs(),hasExcessiveExtraneousLimbs(), updatedcanAssaultDrop()TWGameManager.javadoEntityFall()InfantryBVCalculator.javamessages.propertiesInfantryGliderWingsTest.javaIn-Game Testing Checklist
Setup
VTOL Dismount (Assault Drop)
Fall Damage Protection
Negative Tests
BV Verification
Construction Rule Validation (Future UI Implementation)
hasInvalidWingsConfiguration()detects glider + powered flight conflicthasExcessiveExtraneousLimbs()detects too many extraneous pairs with glider wings