Skip to content

Conversation

@HammerGS
Copy link
Member

@HammerGS HammerGS commented Jan 3, 2026

Implements the Prosthetic Wings, Glider cybernetic implant for conventional infantry per Interstellar Operations p.85.

Rules implemented:

  • Infantry can dismount from VTOLs/DropShips as jump infantry
  • Cannot be used in vacuum or trace (very thin) atmospheres
  • Protects against fall damage (walking off 2+ levels, displacement)
  • Conventional infantry only (not battle armor)
  • No BV impact

Construction rules:

  • Glider wings and powered flight wings are mutually exclusive
  • Glider wings limit extraneous limb pairs to 1 (normally 2)

Changes

File Change
Infantry.java Added canUseGliderWings(), isProtectedFromFallDamage(), hasInvalidWingsConfiguration(), getMaxExtraneousLimbPairs(),
hasExcessiveExtraneousLimbs(), updated canAssaultDrop()
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
InfantryGliderWingsTest.java 28 unit tests covering all rules

In-Game Testing Checklist

Setup

  • Create a conventional infantry unit with Prosthetic Wings, Glider ability enabled (Pilot Augmentations > Prosthetic Limbs section)

VTOL Dismount (Assault Drop)

  • Load infantry with glider wings onto a VTOL
  • Verify infantry can dismount from VTOL in standard atmosphere
  • Verify infantry can dismount from VTOL in thin atmosphere
  • Set planetary conditions to vacuum - verify infantry CANNOT dismount (glider wings disabled)
  • Set planetary conditions to trace atmosphere - verify infantry CANNOT dismount

Fall Damage Protection

  • Place infantry with glider wings on elevated terrain (3+ levels high)
  • Walk infantry off the edge (should trigger fall)
  • Verify NO fall damage is applied in standard/thin atmosphere
  • Set planetary conditions to vacuum - verify infantry DOES take fall damage
  • Set planetary conditions to trace - verify infantry DOES take fall damage

Negative Tests

  • Verify regular infantry WITHOUT glider wings still takes fall damage
  • Verify Battle Armor with glider wings still takes fall damage (not conventional infantry)

BV Verification

  • Check unit BV with glider wings enabled vs disabled - should be identical (no BV impact)

Construction Rule Validation (Future UI Implementation)

  • Note: hasInvalidWingsConfiguration() detects glider + powered flight conflict
  • Note: hasExcessiveExtraneousLimbs() detects too many extraneous pairs with glider wings
  • These validation methods are available for UI/construction validation integration

HammerGS and others added 2 commits January 2, 2026 19:17
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>
@HammerGS HammerGS added the In Development (Draft) An additional way to mark something as a draft. Make it stand out more. label Jan 3, 2026
@HammerGS HammerGS requested a review from a team as a code owner January 3, 2026 02:25
Copilot AI review requested due to automatic review settings January 3, 2026 02:25
@HammerGS HammerGS added Draft Work in Progress AI Generated Fix AI-generated fix. Requires human testing and review before merging. labels Jan 3, 2026
Copy link
Contributor

Copilot AI left a 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>
@HammerGS HammerGS marked this pull request as draft January 3, 2026 03:08
  - 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
@HammerGS HammerGS removed In Development (Draft) An additional way to mark something as a draft. Make it stand out more. Draft Work in Progress labels Jan 5, 2026
@HammerGS HammerGS marked this pull request as ready for review January 5, 2026 23:14
@HammerGS HammerGS added the AI ready for Review Indicates that is has been in game tested and is ready for review as it can be label Jan 5, 2026
  - 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
Copy link
Collaborator

@Sleet01 Sleet01 left a comment

Choose a reason for hiding this comment

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

LGTM

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

Labels

AI Generated Fix AI-generated fix. Requires human testing and review before merging. AI ready for Review Indicates that is has been in game tested and is ready for review as it can be

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants