chore: rename app from Solitaire Quest to Ferrous Solitaire
Replace all display-name occurrences across web pages, Rust source, docs, and Cargo metadata. Update localStorage token key from sq_token to fs_token. Tagline "Klondike Solitaire" retained as genre descriptor. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
//! SVG builder for the Solitaire Quest application icon.
|
||||
//! SVG builder for the Ferrous Solitaire application icon.
|
||||
//!
|
||||
//! Renders the project's signature `▌RS` Terminal mark (the same
|
||||
//! cursor-block + monogram pair used on the splash boot-screen and
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
//! Bevy integration layer for Solitaire Quest.
|
||||
//! Bevy integration layer for Ferrous Solitaire.
|
||||
|
||||
#[cfg(target_os = "android")]
|
||||
pub mod android_clipboard;
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
//!
|
||||
//! Slides:
|
||||
//!
|
||||
//! 1. **Welcome** — brief introduction to Solitaire Quest.
|
||||
//! 1. **Welcome** — brief introduction to Ferrous Solitaire.
|
||||
//! 2. **How to play** — drag-and-drop, double-click, and right-click hints.
|
||||
//! 3. **Keyboard shortcuts** — a summary pulled from the same canonical list
|
||||
//! used in `HelpScreen`. Accelerators: `Esc` anywhere in the flow skips
|
||||
@@ -292,10 +292,10 @@ fn spawn_slide(commands: &mut Commands, index: u8, font_res: Option<&FontResourc
|
||||
/// Slide 1 — Welcome.
|
||||
fn spawn_slide_welcome(commands: &mut Commands, font_res: Option<&FontResource>) {
|
||||
spawn_modal(commands, OnboardingScreen, Z_ONBOARDING, |card| {
|
||||
spawn_modal_header(card, "Welcome to Solitaire Quest", font_res);
|
||||
spawn_modal_header(card, "Welcome to Ferrous Solitaire", font_res);
|
||||
spawn_modal_body_text(
|
||||
card,
|
||||
"Solitaire Quest is a free, offline-first Klondike Solitaire game. \
|
||||
"Ferrous Solitaire is a free, offline-first Klondike Solitaire game. \
|
||||
Play classic draw-1 or draw-3 Klondike, earn XP, unlock achievements, \
|
||||
and compete on the leaderboard. Your progress is saved locally — \
|
||||
optional sync to your own server keeps it in step across all your devices.",
|
||||
|
||||
@@ -2343,7 +2343,7 @@ fn sync_row(
|
||||
row,
|
||||
SettingsButton::ConnectSync,
|
||||
"Connect",
|
||||
"Connect to a self-hosted Solitaire Quest sync server.".to_string(),
|
||||
"Connect to a self-hosted Ferrous Solitaire sync server.".to_string(),
|
||||
button_font,
|
||||
);
|
||||
}
|
||||
@@ -2920,7 +2920,7 @@ mod tests {
|
||||
.expect("Connect button should spawn with a Tooltip when backend is Local");
|
||||
assert_eq!(
|
||||
connect_tip.as_ref(),
|
||||
"Connect to a self-hosted Solitaire Quest sync server.",
|
||||
"Connect to a self-hosted Ferrous Solitaire sync server.",
|
||||
"ConnectSync tooltip must use the canonical microcopy"
|
||||
);
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
//!
|
||||
//! On app start the engine spawns a fullscreen, high-Z overlay that
|
||||
//! reads the Terminal-style "boot screen" — an accent-coloured cursor block, the
|
||||
//! "Solitaire Quest" wordmark, a short fixture boot log, a progress
|
||||
//! "Ferrous Solitaire" wordmark, a short fixture boot log, a progress
|
||||
//! bar, and a footer with the design-system palette swatches and the
|
||||
//! build version. The overlay fades in over 300 ms, holds for ~1 s,
|
||||
//! then fades out for 300 ms before despawning. The deal animation
|
||||
@@ -383,7 +383,7 @@ fn spawn_header_section(parent: &mut ChildSpawnerCommands, font_handle: &Handle<
|
||||
));
|
||||
hdr.spawn((
|
||||
SplashFadable { base_color: TEXT_PRIMARY },
|
||||
Text::new("Solitaire Quest"),
|
||||
Text::new("Ferrous Solitaire"),
|
||||
title_font,
|
||||
TextColor(transparent(TEXT_PRIMARY)),
|
||||
));
|
||||
@@ -1170,7 +1170,7 @@ mod tests {
|
||||
"expected the cursor block (▌) on the splash, got: {texts:?}"
|
||||
);
|
||||
assert!(
|
||||
texts.iter().any(|t| t == "Solitaire Quest"),
|
||||
texts.iter().any(|t| t == "Ferrous Solitaire"),
|
||||
"expected the wordmark on the splash, got: {texts:?}"
|
||||
);
|
||||
assert!(
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
//! Backend-agnostic sync plugin for Solitaire Quest.
|
||||
//! Backend-agnostic sync plugin for Ferrous Solitaire.
|
||||
//!
|
||||
//! On startup, the plugin spawns an async pull task on [`AsyncComputeTaskPool`]
|
||||
//! that fetches the remote payload from the active [`SyncProvider`]. Once the
|
||||
|
||||
@@ -84,7 +84,7 @@ mod tests {
|
||||
ThemeMeta {
|
||||
id: "default".into(),
|
||||
name: "Default".into(),
|
||||
author: "Solitaire Quest".into(),
|
||||
author: "Ferrous Solitaire".into(),
|
||||
version: "1.0.0".into(),
|
||||
card_aspect: (2, 3),
|
||||
}
|
||||
|
||||
@@ -268,7 +268,7 @@ mod tests {
|
||||
let meta = ThemeMeta {
|
||||
id: "default".into(),
|
||||
name: "Default".into(),
|
||||
author: "Solitaire Quest".into(),
|
||||
author: "Ferrous Solitaire".into(),
|
||||
version: "1.0.0".into(),
|
||||
card_aspect: (2, 3),
|
||||
};
|
||||
|
||||
@@ -115,7 +115,7 @@ fn default_entry() -> ThemeEntry {
|
||||
meta: ThemeMeta {
|
||||
id: "default".to_string(),
|
||||
name: "Default".to_string(),
|
||||
author: "Solitaire Quest".to_string(),
|
||||
author: "Ferrous Solitaire".to_string(),
|
||||
version: "1.0".to_string(),
|
||||
card_aspect: (2, 3),
|
||||
},
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
//! Keyboard focus ring for modal buttons (Phase 1).
|
||||
//!
|
||||
//! Solitaire Quest's 11 modals (Help, Stats, Achievements, Settings,
|
||||
//! Ferrous Solitaire's 11 modals (Help, Stats, Achievements, Settings,
|
||||
//! Profile, Leaderboard, Pause, Forfeit confirm, GameOver, Confirm new
|
||||
//! game, Onboarding) ship without any keyboard focus support. Phase 1
|
||||
//! gives every button spawned via [`crate::ui_modal::spawn_modal_button`]
|
||||
|
||||
Reference in New Issue
Block a user