Repository navigation
Conversation
Add the Classic chroma control as a separate plugin that consumes the ClassicWheel carousel movement API. Keep parent-card control stable while opening, previewing, selecting, or dismissing a chroma so the native carousel cannot fall back to a stale card. The picker uses only chromas exposed by the current Classic catalog and publishes the selected resource ID through the existing backend selection path. Regular-mode ChromaWheel behavior is unchanged. Source commit consolidated: f7f87916. Verification: the plugin passed node --check; parent-card fallback was previously exercised during live Classic selection.
Translate Classic chroma messages into the validated wheel selection pipeline, preserve owned chroma selection in LCU, and resolve chroma names correctly for history, random, and protected-target injection. Validation: covered by final branch syntax and git diff checks. No separate live-client run is claimed for this commit.
Read variants and project selection through the shared Classic wheel API so the picker works with both native-carrier and Skin0 resource policies without maintaining a second catalog. Validation: covered by final branch syntax and git diff checks. No separate live-client run is claimed for this commit.
Anchor the color button and picker to the selected native card and keep the panel open through wheel refreshes, preventing cropped buttons and immediate close/reopen flicker. Validation: covered by final branch syntax and git diff checks. No separate live-client run is claimed for this commit.
Ignore Classic chroma messages until the shared wheel selection pipeline and catalog are available. This keeps the chroma PR independently mergeable without affecting regular ChromaWheel behavior. Validation: covered by final branch syntax and git diff checks. No separate live-client run is claimed for this commit.
Mount the Classic chroma control in the wheel-owned stable host instead of a reused native card. Preserve explicit positioning inside that host so the button does not flash, move to a side card, or appear half-clipped during carousel transitions. The plugin consumes only the carrier-independent ClassicWheel API and therefore supports both the upstream Skin0 policy and the optional native-carrier policy. Validation: - JavaScript syntax and git diff checks passed. - Integrated live testing confirmed the surrounding chroma flow; the final host-follow correction addresses the observed transition artifact.
Publish the Classic chroma owner after the dedicated selector has initialized its bridge subscriptions and Classic wheel integration. The regular ChromaWheel now stops its JADE scanner and removes its controls only when both a Classic session and the matching chroma owner are present. It remains unchanged in ordinary modes and remains the JADE fallback if the dedicated selector is unavailable. FormsWheel is intentionally untouched because this PR does not provide a Classic replacement for form selection. Validation: covered by final branch syntax and git diff checks. No separate live-client run is claimed for this commit.
ccccxp
force-pushed
the
pr/classic-chroma
branch
from
October 18, 2026 14:43
73017c9 to
a8e1bea
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
What this adds
This adds a Rift Classic chroma button and picker using variants exposed by the current Classic catalog.
Selecting a chroma keeps its parent card centered, updates the control color and full-screen artwork, and sends the resource chroma ID through Rose's existing selection path. The control uses ClassicWheel's stable center-card host, preventing it from flashing on a side card, closing during unrelated refreshes, or appearing half-clipped.
Why a separate plugin
The regular ChromaWheel expects ordinary champion IDs and the regular card lifecycle. Classic variants come from the JADE catalog and must keep a separate carrier while their parent card moves through the fixed carousel.
ROSE-ClassicChromaowns only the Classic picker. It reuses ClassicWheel's catalog and navigation API instead of maintaining another list or navigator. The regular ChromaWheel remains unchanged outside Rift Classic and stays available as a fallback if the Classic plugin is unavailable. FormsWheel is untouched.Carrier and resource compatibility
The picker stores resource chroma IDs and does not assume a carrier slot. With #344 alone it uses upstream's Skin0 +
classic/path. If #318 is present, the same selection follows Rose's automatic choice between native default +classic-native/and Skin0 +classic/. This PR does not choose or mix carrier package families.Validation
Changed files
Pengu Loader/plugins/ROSE-ClassicChroma/index.jsPengu Loader/plugins/ROSE-ChromaWheel/index.jsui/chroma/classic_integration.py