refactor(engine): final hint-highlight + replay-overlay token cleanup
- input_plugin's hint-source card tint moves from raw bright-yellow `srgba(1.0, 1.0, 0.4, 1.0)` to the design-system STATE_WARNING token, so the source card and the destination pile (which already uses STATE_WARNING via HINT_PILE_HIGHLIGHT_COLOUR) wear the same attention colour as a coherent pair. - replay_overlay had two stale doc comments referencing the old "loud yellow accent" — Primary is now cyan (ACCENT_PRIMARY). Comments updated; no behaviour change. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -35,7 +35,7 @@ use crate::card_plugin::{
|
||||
CardEntity, HintHighlight, HintHighlightTimer, STACK_FAN_FRAC, TABLEAU_FACEDOWN_FAN_FRAC,
|
||||
TABLEAU_FAN_FRAC,
|
||||
};
|
||||
use crate::ui_theme::MOTION_DRAG_REJECT_SECS;
|
||||
use crate::ui_theme::{MOTION_DRAG_REJECT_SECS, STATE_WARNING};
|
||||
use solitaire_core::game_state::DrawMode;
|
||||
use crate::challenge_plugin::CHALLENGE_UNLOCK_LEVEL;
|
||||
use crate::events::{
|
||||
@@ -335,8 +335,11 @@ pub fn emit_hint_visuals(
|
||||
for (entity, card_entity, mut sprite) in card_entities.iter_mut() {
|
||||
if card_entity.card_id == card_id {
|
||||
// Tint the card gold without replacing the Sprite (which would
|
||||
// discard the image handle set by CardImageSet).
|
||||
sprite.color = Color::srgba(1.0, 1.0, 0.4, 1.0);
|
||||
// discard the image handle set by CardImageSet). Uses the
|
||||
// design-system `STATE_WARNING` token so the source-card
|
||||
// tint matches the destination pile highlight, both of
|
||||
// which signal "look here" for the hint.
|
||||
sprite.color = STATE_WARNING;
|
||||
commands.entity(entity)
|
||||
.insert(HintHighlight { remaining: 2.0 })
|
||||
.insert(HintHighlightTimer(2.0));
|
||||
|
||||
@@ -208,8 +208,9 @@ fn spawn_overlay(
|
||||
GlobalZIndex(Z_REPLAY_OVERLAY),
|
||||
))
|
||||
.with_children(|banner| {
|
||||
// Left: "Replay" label in the loud yellow accent so it reads
|
||||
// unmistakably as a non-gameplay surface.
|
||||
// Left: "Replay" label in the cyan primary accent
|
||||
// (`ACCENT_PRIMARY`) so it reads unmistakably as a
|
||||
// non-gameplay surface.
|
||||
banner.spawn((
|
||||
ReplayOverlayBannerText,
|
||||
Text::new(banner_label),
|
||||
@@ -236,7 +237,7 @@ fn spawn_overlay(
|
||||
|
||||
// Right: Stop button. Tertiary variant — the action is
|
||||
// available but not the loudest element in the banner; the
|
||||
// "Replay" yellow accent owns that slot. `spawn_modal_button`
|
||||
// "Replay" cyan accent owns that slot. `spawn_modal_button`
|
||||
// gives us hover / press paint and focus rings for free via
|
||||
// the existing `UiModalPlugin` paint system.
|
||||
banner
|
||||
|
||||
Reference in New Issue
Block a user