Skip to content

bug: CupLoader always creates STANDARD rings — portal type is ignored #103

@TheMeinerLP

Description

@TheMeinerLP

Description

`CupLoader` converts `PortalDTO` objects to `Ring` domain objects but hardcodes `RingType.STANDARD` regardless of the portal's actual type field. BOOST, SLOW, CHECKPOINT, and BONUS rings are never created, so those mechanics can never be tested even when the collision system supports them.

Acceptance Criteria

  • `CupLoader` maps each `PortalDTO.type` to the corresponding `RingType` enum value
  • An unknown/null portal type falls back to `RingType.STANDARD` with a warning log
  • Integration test: load a cup with mixed ring types and verify the domain objects have correct types
  • Existing ring effect system (BOOST velocity multiplier, SLOW multiplier) is exercised in tests

Technical Details

  • Fix is in `CupLoader` in the `server` module
  • `PortalDTO.type` is a string from JSON — map via `RingType.valueOf()` with try/catch fallback
  • Check that `RingEffectSystem`'s velocity multipliers match the intended design values

Dependencies

  • Ring pass feedback issue (RingEffectComponent must be on player entities)

Estimate

S

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions