diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 18b5b31..fd7f21f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -15,7 +15,7 @@ jobs: name: Check runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 - name: Install Rust toolchain uses: dtolnay/rust-toolchain@stable @@ -24,7 +24,7 @@ jobs: run: sudo apt-get update && sudo apt-get install -y libasound2-dev libudev-dev - name: Cache cargo registry - uses: actions/cache@v4 + uses: actions/cache@v5 with: path: | ~/.cargo/registry @@ -40,7 +40,7 @@ jobs: name: Clippy runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 - name: Install Rust toolchain uses: dtolnay/rust-toolchain@stable @@ -51,7 +51,7 @@ jobs: run: sudo apt-get update && sudo apt-get install -y libasound2-dev libudev-dev - name: Cache cargo registry - uses: actions/cache@v4 + uses: actions/cache@v5 with: path: | ~/.cargo/registry @@ -67,7 +67,7 @@ jobs: name: Format runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 - name: Install Rust toolchain uses: dtolnay/rust-toolchain@stable @@ -85,7 +85,7 @@ jobs: matrix: os: [ubuntu-latest, macos-latest, windows-latest] steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 - name: Install Rust toolchain uses: dtolnay/rust-toolchain@stable @@ -95,7 +95,7 @@ jobs: run: sudo apt-get update && sudo apt-get install -y libasound2-dev libudev-dev - name: Cache cargo registry - uses: actions/cache@v4 + uses: actions/cache@v5 with: path: | ~/.cargo/registry @@ -114,7 +114,7 @@ jobs: name: Security Audit runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 - name: Install cargo-audit run: cargo install cargo-audit diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index fe106ab..e3d1f59 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -30,7 +30,7 @@ jobs: artifact: press-your-luck-windows-x86_64 steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 - name: Install Rust toolchain uses: dtolnay/rust-toolchain@stable @@ -62,7 +62,7 @@ jobs: Compress-Archive -Path dist/* -DestinationPath ${{ matrix.artifact }}.zip - name: Upload artifact - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v6 with: name: ${{ matrix.artifact }} path: | @@ -73,7 +73,7 @@ jobs: name: Build AppImage runs-on: ubuntu-22.04 steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 - name: Install Rust toolchain uses: dtolnay/rust-toolchain@stable @@ -129,7 +129,7 @@ jobs: mv *.AppImage press-your-luck-x86_64.AppImage - name: Upload AppImage artifact - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v6 with: name: press-your-luck-appimage path: press-your-luck-x86_64.AppImage @@ -141,15 +141,15 @@ jobs: permissions: contents: write steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 - name: Download all artifacts - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v7 with: path: artifacts - name: Create GitHub Release - uses: softprops/action-gh-release@v1 + uses: softprops/action-gh-release@v2 with: draft: false prerelease: false diff --git a/Cargo.lock b/Cargo.lock index fc73232..d3ac1b7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1832,7 +1832,7 @@ version = "2.0.1" dependencies = [ "fastrand", "ggez", - "rand 0.8.5", + "rand", "serde", "serde_json", ] @@ -1897,35 +1897,14 @@ version = "5.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" -[[package]] -name = "rand" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" -dependencies = [ - "libc", - "rand_chacha 0.3.1", - "rand_core 0.6.4", -] - [[package]] name = "rand" version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1" dependencies = [ - "rand_chacha 0.9.0", - "rand_core 0.9.5", -] - -[[package]] -name = "rand_chacha" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" -dependencies = [ - "ppv-lite86", - "rand_core 0.6.4", + "rand_chacha", + "rand_core", ] [[package]] @@ -1935,16 +1914,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" dependencies = [ "ppv-lite86", - "rand_core 0.9.5", -] - -[[package]] -name = "rand_core" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" -dependencies = [ - "getrandom 0.2.17", + "rand_core", ] [[package]] @@ -2524,7 +2494,7 @@ version = "2.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ea3136b675547379c4bd395ca6b938e5ad3c3d20fad76e7fe85f9e0d011419c" dependencies = [ - "rand 0.9.2", + "rand", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index 4a80717..9bd5ea9 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -37,7 +37,7 @@ rust-version = "1.70" ggez = "0.9" # Random number generation for board patterns and trivia -rand = "0.8" +rand = "0.9" fastrand = "2.0" # Serialization for save/load functionality diff --git a/src/game/mod.rs b/src/game/mod.rs index 41a67a9..37deee4 100644 --- a/src/game/mod.rs +++ b/src/game/mod.rs @@ -33,8 +33,7 @@ //! - **Special**: Add-A-One, Double Your Money, Pick a Corner, etc. //! - **Whammy**: Lose all money and prizes -use rand::seq::SliceRandom; -use rand::Rng; +use rand::prelude::*; use serde::{Deserialize, Serialize}; // ═══════════════════════════════════════════════════════════════════════════ @@ -678,7 +677,7 @@ impl WhammyAnimationType { pub fn random_whammy_out() -> Self { let animations = [Self::GrimReaper, Self::FiringSquad, Self::AngelWhammy]; *animations - .choose(&mut rand::thread_rng()) + .choose(&mut rand::rng()) .unwrap_or(&Self::GrimReaper) } @@ -754,7 +753,7 @@ impl WhammyAnimationType { Self::Judge, Self::ClownCar, ]; - *animations.choose(&mut rand::thread_rng()).unwrap() + *animations.choose(&mut rand::rng()).unwrap() } } @@ -841,7 +840,7 @@ impl TriviaQuestion { choices.push(self.correct_answer.clone()); // Shuffle and find correct index - let mut rng = rand::thread_rng(); + let mut rng = rand::rng(); choices.shuffle(&mut rng); let correct_index = choices @@ -1219,9 +1218,9 @@ impl GameState { }; // Initialize random prize indices - let mut rng = rand::thread_rng(); + let mut rng = rand::rng(); for square in &mut state.board { - square.current_index = rng.gen_range(0..3); + square.current_index = rng.random_range(0..3); } state @@ -1794,7 +1793,7 @@ impl GameState { available = (0..all_questions.len()).collect(); } - let idx = *available.choose(&mut rand::thread_rng()).unwrap(); + let idx = *available.choose(&mut rand::rng()).unwrap(); qs.used_questions.push(idx); let question = all_questions[idx].clone(); @@ -1956,7 +1955,7 @@ impl GameState { self.spin_speed = 1.0; // Full speed self.spin_decelerating = false; self.spin_target_square = None; - self.light_speed = 15.0 + rand::thread_rng().gen_range(0.0..5.0); + self.light_speed = 15.0 + rand::rng().random_range(0.0..5.0); self.message = "Press SPACE to stop!".to_string(); }