Bump versions
This commit is contained in:
parent
fb74c90a55
commit
26eabbe275
1886
Cargo.lock
generated
1886
Cargo.lock
generated
File diff suppressed because it is too large
Load Diff
20
Cargo.toml
20
Cargo.toml
@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "fren"
|
name = "fren"
|
||||||
version = "2.8.1"
|
version = "2.9.0"
|
||||||
edition = "2024"
|
edition = "2024"
|
||||||
|
|
||||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||||
@ -8,16 +8,16 @@ edition = "2024"
|
|||||||
[dependencies]
|
[dependencies]
|
||||||
config = "0.15.11"
|
config = "0.15.11"
|
||||||
structopt = "0.3.26"
|
structopt = "0.3.26"
|
||||||
reqwest = { version = "0.12.15", features = ["json", "multipart"] }
|
reqwest = { version = "0.13.3", features = ["json", "multipart", "query"] }
|
||||||
serde = "1.0.195"
|
serde = "1.0.195"
|
||||||
rand = "0.9.0"
|
rand = "0.10.1"
|
||||||
tera = "1.19.1"
|
tera = "1.19.1"
|
||||||
ndm = "0.9.10"
|
ndm = "0.10.0"
|
||||||
regex = "1.10.2"
|
regex = "1.10.2"
|
||||||
magick_rust = "1.0.0"
|
magick_rust = "2.0.0"
|
||||||
json = "0.12.4"
|
json = "0.12.4"
|
||||||
axum = "0.8.1"
|
axum = "0.8.1"
|
||||||
sha3 = "0.10.8"
|
sha3 = "0.11.0"
|
||||||
base64 = "0.22.0"
|
base64 = "0.22.0"
|
||||||
j_db = { version = "0.1.2", registry = "ahines" }
|
j_db = { version = "0.1.2", registry = "ahines" }
|
||||||
chrono = { version = "0.4.31", features = ["serde"] }
|
chrono = { version = "0.4.31", features = ["serde"] }
|
||||||
@ -26,17 +26,17 @@ serde_json = "1.0.113"
|
|||||||
raas_types = { version = "0.1.0", registry = "ahines"}
|
raas_types = { version = "0.1.0", registry = "ahines"}
|
||||||
tonic = "0.12.3"
|
tonic = "0.12.3"
|
||||||
prost = "0.13.5"
|
prost = "0.13.5"
|
||||||
emojis = "0.6.2"
|
emojis = "0.8.1"
|
||||||
poise = "0.6.1"
|
poise = "0.6.1"
|
||||||
tracing-subscriber = { version = "0.3.19", features = ["env-filter"] }
|
tracing-subscriber = { version = "0.3.19", features = ["env-filter"] }
|
||||||
log = "0.4.26"
|
log = "0.4.26"
|
||||||
cta-api = { version = "0.5.0", registry = "ahines"}
|
cta-api = { version = "0.5.0", registry = "ahines"}
|
||||||
thiserror = "2.0.12"
|
thiserror = "2.0.12"
|
||||||
tracing-core = "0.1.33"
|
tracing-core = "0.1.33"
|
||||||
strum = { version = "0.27.2", features = ["derive"] }
|
strum = { version = "0.28.0", features = ["derive"] }
|
||||||
thousands = "0.2.0"
|
thousands = "0.2.0"
|
||||||
url = { version = "2.5.7", features = ["serde"] }
|
url = { version = "2.5.7", features = ["serde"] }
|
||||||
convert_case = "0.10.0"
|
convert_case = "0.11.0"
|
||||||
rust-dsn-parser = { version = "1.0.0", registry = "ahines"}
|
rust-dsn-parser = { version = "1.0.0", registry = "ahines"}
|
||||||
|
|
||||||
[dependencies.tokio]
|
[dependencies.tokio]
|
||||||
@ -44,7 +44,7 @@ version = "1.35.1"
|
|||||||
features = ["macros", "rt-multi-thread"]
|
features = ["macros", "rt-multi-thread"]
|
||||||
|
|
||||||
[dependencies.songbird]
|
[dependencies.songbird]
|
||||||
version = "0.5.0"
|
version = "0.6.0"
|
||||||
features = ["builtin-queue"]
|
features = ["builtin-queue"]
|
||||||
|
|
||||||
[dependencies.symphonia]
|
[dependencies.symphonia]
|
||||||
|
|||||||
@ -3,7 +3,6 @@ use crate::error::Error;
|
|||||||
use crate::models::birthday::BirthdayEntry;
|
use crate::models::birthday::BirthdayEntry;
|
||||||
use poise::serenity_prelude::model::id::UserId;
|
use poise::serenity_prelude::model::id::UserId;
|
||||||
use poise::serenity_prelude::utils::MessageBuilder;
|
use poise::serenity_prelude::utils::MessageBuilder;
|
||||||
use rand::{Rng, rng};
|
|
||||||
|
|
||||||
/// Add your birthday to the bot, it can probably be trusted with this info
|
/// Add your birthday to the bot, it can probably be trusted with this info
|
||||||
#[poise::command(prefix_command, category = "Birthdays")]
|
#[poise::command(prefix_command, category = "Birthdays")]
|
||||||
@ -33,7 +32,7 @@ pub async fn add_birthday(
|
|||||||
ctx.reply(format!(
|
ctx.reply(format!(
|
||||||
"Thank you subject #{}, I am now {}% closer to making a full AI replica of you.",
|
"Thank you subject #{}, I am now {}% closer to making a full AI replica of you.",
|
||||||
ctx.author().id.get(),
|
ctx.author().id.get(),
|
||||||
rng().random_range(0.0..100.0)
|
rand::random_range(0.0..100.0)
|
||||||
))
|
))
|
||||||
.await?;
|
.await?;
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@ -52,7 +52,7 @@ pub async fn race(ctx: Context<'_>) -> Result<(), Error> {
|
|||||||
|
|
||||||
let emojis = ctx.guild_id().unwrap().emojis(ctx.http()).await?;
|
let emojis = ctx.guild_id().unwrap().emojis(ctx.http()).await?;
|
||||||
|
|
||||||
let racers: Vec<_> = emojis.iter().choose_multiple(&mut rng(), NUMBER_OF_RACERS);
|
let racers: Vec<_> = emojis.iter().sample(&mut rng(), NUMBER_OF_RACERS);
|
||||||
|
|
||||||
let racers: Result<Vec<Racer>, Error> = racers
|
let racers: Result<Vec<Racer>, Error> = racers
|
||||||
.iter()
|
.iter()
|
||||||
|
|||||||
@ -5,7 +5,6 @@ use j_db::database::Database;
|
|||||||
use log::info;
|
use log::info;
|
||||||
use poise::serenity_prelude::model::id::UserId;
|
use poise::serenity_prelude::model::id::UserId;
|
||||||
use poise::serenity_prelude::prelude::Mentionable;
|
use poise::serenity_prelude::prelude::Mentionable;
|
||||||
use rand::{Rng, rng};
|
|
||||||
|
|
||||||
/// Get your balance or someone else's
|
/// Get your balance or someone else's
|
||||||
#[poise::command(prefix_command, category = "Fren Coin", aliases("audit"))]
|
#[poise::command(prefix_command, category = "Fren Coin", aliases("audit"))]
|
||||||
@ -120,11 +119,7 @@ pub async fn give_coin(
|
|||||||
percent: f64,
|
percent: f64,
|
||||||
number_of_coins: i64,
|
number_of_coins: i64,
|
||||||
) -> Result<bool, Error> {
|
) -> Result<bool, Error> {
|
||||||
let should_get_coin = {
|
let should_get_coin = { rand::random_bool(percent) };
|
||||||
let mut rng = rng();
|
|
||||||
|
|
||||||
rng.random_bool(percent)
|
|
||||||
};
|
|
||||||
|
|
||||||
if should_get_coin {
|
if should_get_coin {
|
||||||
info!("Randomly giving {} {} fren coins", user, number_of_coins);
|
info!("Randomly giving {} {} fren coins", user, number_of_coins);
|
||||||
|
|||||||
@ -398,7 +398,7 @@ pub async fn emoji_8ball(
|
|||||||
|
|
||||||
emojis.append(&mut unicode_emojis);
|
emojis.append(&mut unicode_emojis);
|
||||||
|
|
||||||
let emoji_msg: Vec<String> = emojis.choose_multiple(&mut rng(), 3).cloned().collect();
|
let emoji_msg: Vec<String> = emojis.sample(&mut rng(), 3).cloned().collect();
|
||||||
|
|
||||||
ctx.reply(emoji_msg.join("")).await?;
|
ctx.reply(emoji_msg.join("")).await?;
|
||||||
|
|
||||||
|
|||||||
@ -5,7 +5,7 @@ use crate::models::lil_fren::{AliveState, LilFren, LilFrenState};
|
|||||||
use poise::serenity_prelude::model::misc::EmojiIdentifier;
|
use poise::serenity_prelude::model::misc::EmojiIdentifier;
|
||||||
use poise::serenity_prelude::utils::MessageBuilder;
|
use poise::serenity_prelude::utils::MessageBuilder;
|
||||||
use rand::prelude::IndexedRandom;
|
use rand::prelude::IndexedRandom;
|
||||||
use rand::{Rng, rng};
|
use rand::rng;
|
||||||
|
|
||||||
/// Adopt a new little buddy!
|
/// Adopt a new little buddy!
|
||||||
#[poise::command(
|
#[poise::command(
|
||||||
@ -113,7 +113,7 @@ pub async fn feed(
|
|||||||
|
|
||||||
if let Some(mut lil_fren) = lil_fren {
|
if let Some(mut lil_fren) = lil_fren {
|
||||||
if lil_fren.is_alive() == AliveState::Alive {
|
if lil_fren.is_alive() == AliveState::Alive {
|
||||||
let feed: f32 = rng().random_range(-0.1..=1.0);
|
let feed: f32 = rand::random_range(-0.1..=1.0);
|
||||||
lil_fren.hunger = (lil_fren.hunger + feed).clamp(-1.0, 1.0);
|
lil_fren.hunger = (lil_fren.hunger + feed).clamp(-1.0, 1.0);
|
||||||
let guild = ctx.guild_id().unwrap();
|
let guild = ctx.guild_id().unwrap();
|
||||||
|
|
||||||
@ -159,7 +159,7 @@ pub async fn give_water(ctx: Context<'_>) -> Result<(), Error> {
|
|||||||
ctx.reply("Lil buddy be drinking!").await?;
|
ctx.reply("Lil buddy be drinking!").await?;
|
||||||
ctx.data().db.insert(lil_fren)?;
|
ctx.data().db.insert(lil_fren)?;
|
||||||
|
|
||||||
let drink = if rng().random_bool(0.20) {
|
let drink = if rand::random_bool(0.20) {
|
||||||
":beer:"
|
":beer:"
|
||||||
} else {
|
} else {
|
||||||
":cup_with_straw:"
|
":cup_with_straw:"
|
||||||
@ -190,7 +190,7 @@ pub async fn play(ctx: Context<'_>) -> Result<(), Error> {
|
|||||||
if let Some(mut lil_fren) = lil_fren {
|
if let Some(mut lil_fren) = lil_fren {
|
||||||
if lil_fren.is_alive() == AliveState::Alive {
|
if lil_fren.is_alive() == AliveState::Alive {
|
||||||
lil_fren.entertainment =
|
lil_fren.entertainment =
|
||||||
(lil_fren.entertainment + rng().random_range(0.10..1.0)).clamp(-1.0, 1.0);
|
(lil_fren.entertainment + rand::random_range(0.10..1.0)).clamp(-1.0, 1.0);
|
||||||
let guild = ctx.guild_id().unwrap();
|
let guild = ctx.guild_id().unwrap();
|
||||||
|
|
||||||
let lil_fren_emoji = guild.emoji(ctx, lil_fren.emoji).await?;
|
let lil_fren_emoji = guild.emoji(ctx, lil_fren.emoji).await?;
|
||||||
|
|||||||
@ -33,7 +33,7 @@ use poise::serenity_prelude::{
|
|||||||
CreateMessage, GuildId, Http, Message, MessageBuilder, ReactionType, RoleId,
|
CreateMessage, GuildId, Http, Message, MessageBuilder, ReactionType, RoleId,
|
||||||
};
|
};
|
||||||
use poise::{FrameworkOptions, find_command, serenity_prelude as serenity};
|
use poise::{FrameworkOptions, find_command, serenity_prelude as serenity};
|
||||||
use rand::{Rng, rng};
|
use rand::rng;
|
||||||
use regex::Regex;
|
use regex::Regex;
|
||||||
use songbird::SerenityInit;
|
use songbird::SerenityInit;
|
||||||
use std::sync::Arc;
|
use std::sync::Arc;
|
||||||
@ -167,8 +167,7 @@ async fn handle_message(
|
|||||||
new_message.author.name, phrase.phrase
|
new_message.author.name, phrase.phrase
|
||||||
);
|
);
|
||||||
|
|
||||||
let social_credit_change =
|
let social_credit_change = rand::random_range(phrase.lower_bound..=phrase.upper_bound);
|
||||||
rand::rng().random_range(phrase.lower_bound..=phrase.upper_bound);
|
|
||||||
|
|
||||||
User::update_social_credit(&data.db, new_message.author.id, social_credit_change)?;
|
User::update_social_credit(&data.db, new_message.author.id, social_credit_change)?;
|
||||||
}
|
}
|
||||||
@ -516,7 +515,7 @@ pub async fn is_alive(ctx: Context<'_>) -> Result<bool, Error> {
|
|||||||
ctx.reply("Sorry there ghosty looking fella, you appear to be unalived. I only give service to those who are alive.").await?;
|
ctx.reply("Sorry there ghosty looking fella, you appear to be unalived. I only give service to those who are alive.").await?;
|
||||||
Ok(false)
|
Ok(false)
|
||||||
} else {
|
} else {
|
||||||
if is_ghoul && rng().random_bool(0.50) {
|
if is_ghoul && rand::random_bool(0.50) {
|
||||||
let ghoul_responses = [
|
let ghoul_responses = [
|
||||||
"Oh god, what's wrong with your face? Looks like someone took it through a blender and lit it on fire",
|
"Oh god, what's wrong with your face? Looks like someone took it through a blender and lit it on fire",
|
||||||
"You kiss your mother with that mouth?",
|
"You kiss your mother with that mouth?",
|
||||||
|
|||||||
@ -9,7 +9,6 @@ use crate::user::{User, UserError};
|
|||||||
use chrono::{Duration, Utc};
|
use chrono::{Duration, Utc};
|
||||||
use poise::serenity_prelude::utils::MessageBuilder;
|
use poise::serenity_prelude::utils::MessageBuilder;
|
||||||
use poise::serenity_prelude::{Channel, CreateMessage, UserId};
|
use poise::serenity_prelude::{Channel, CreateMessage, UserId};
|
||||||
use rand::{Rng, rng};
|
|
||||||
use std::collections::hash_map::DefaultHasher;
|
use std::collections::hash_map::DefaultHasher;
|
||||||
use std::hash::Hasher;
|
use std::hash::Hasher;
|
||||||
use std::sync::Arc;
|
use std::sync::Arc;
|
||||||
@ -363,34 +362,34 @@ pub async fn restock_shop(
|
|||||||
|
|
||||||
bot_user
|
bot_user
|
||||||
.inventory
|
.inventory
|
||||||
.give_item(ItemType::TheConceptOfLove, rng().random_range(0..=5), None);
|
.give_item(ItemType::TheConceptOfLove, rand::random_range(0..=5), None);
|
||||||
bot_user
|
bot_user
|
||||||
.inventory
|
.inventory
|
||||||
.give_item(ItemType::GoodFortune, rng().random_range(0..10), None);
|
.give_item(ItemType::GoodFortune, rand::random_range(0..10), None);
|
||||||
bot_user
|
bot_user
|
||||||
.inventory
|
.inventory
|
||||||
.give_item(ItemType::CancelInsurance, rng().random_range(1..=3), None);
|
.give_item(ItemType::CancelInsurance, rand::random_range(1..=3), None);
|
||||||
bot_user
|
bot_user
|
||||||
.inventory
|
.inventory
|
||||||
.give_item(ItemType::LicenseToBeHorny, rng().random_range(0..=25), None);
|
.give_item(ItemType::LicenseToBeHorny, rand::random_range(0..=25), None);
|
||||||
bot_user
|
bot_user
|
||||||
.inventory
|
.inventory
|
||||||
.give_item(ItemType::KillGun, rng().random_range(1..=5), None);
|
.give_item(ItemType::KillGun, rand::random_range(1..=5), None);
|
||||||
bot_user
|
bot_user
|
||||||
.inventory
|
.inventory
|
||||||
.give_item(ItemType::CancelRay, rng().random_range(1..=5), None);
|
.give_item(ItemType::CancelRay, rand::random_range(1..=5), None);
|
||||||
bot_user
|
bot_user
|
||||||
.inventory
|
.inventory
|
||||||
.give_item(ItemType::Helmet, rng().random_range(1..=3), None);
|
.give_item(ItemType::Helmet, rand::random_range(1..=3), None);
|
||||||
bot_user
|
bot_user
|
||||||
.inventory
|
.inventory
|
||||||
.give_item(ItemType::EMP, rng().random_range(1..=2), None);
|
.give_item(ItemType::EMP, rand::random_range(1..=2), None);
|
||||||
bot_user
|
bot_user
|
||||||
.inventory
|
.inventory
|
||||||
.give_item(ItemType::PhraseCanceler, rng().random_range(1..=5), None);
|
.give_item(ItemType::PhraseCanceler, rand::random_range(1..=5), None);
|
||||||
bot_user
|
bot_user
|
||||||
.inventory
|
.inventory
|
||||||
.give_item(ItemType::LandMine, rng().random_range(1..=5), None);
|
.give_item(ItemType::LandMine, rand::random_range(1..=5), None);
|
||||||
bot_user.inventory.give_item(ItemType::Nuke, 1, None);
|
bot_user.inventory.give_item(ItemType::Nuke, 1, None);
|
||||||
|
|
||||||
loop {
|
loop {
|
||||||
|
|||||||
@ -199,7 +199,7 @@ pub async fn speak(
|
|||||||
|
|
||||||
let src = input::File::new(word_path);
|
let src = input::File::new(word_path);
|
||||||
|
|
||||||
let audio_src = Compressed::new(src.into(), Bitrate::BitsPerSecond(128_000))
|
let audio_src = Compressed::new(src.into(), Bitrate::Bits(128_000))
|
||||||
.await
|
.await
|
||||||
.expect("Bad params on message load");
|
.expect("Bad params on message load");
|
||||||
|
|
||||||
|
|||||||
@ -9,7 +9,6 @@ use log::{debug, error};
|
|||||||
use poise::serenity_prelude::{
|
use poise::serenity_prelude::{
|
||||||
ArgumentConvert, CacheHttp, ChannelId, Context, Emoji, MessageId, UserId,
|
ArgumentConvert, CacheHttp, ChannelId, Context, Emoji, MessageId, UserId,
|
||||||
};
|
};
|
||||||
use rand::{Rng, rng};
|
|
||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
use std::fmt::Debug;
|
use std::fmt::Debug;
|
||||||
use std::sync::Arc;
|
use std::sync::Arc;
|
||||||
@ -160,7 +159,7 @@ impl Listener {
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub fn check_if_triggers(&self, trigger_type: &TriggerType) -> bool {
|
pub fn check_if_triggers(&self, trigger_type: &TriggerType) -> bool {
|
||||||
self.trigger.match_event(trigger_type) && rng().random_bool(self.trigger_chance)
|
self.trigger.match_event(trigger_type) && rand::random_bool(self.trigger_chance)
|
||||||
}
|
}
|
||||||
|
|
||||||
pub async fn handle_action(
|
pub async fn handle_action(
|
||||||
|
|||||||
@ -190,22 +190,12 @@ async fn apply_motivation_layer(
|
|||||||
border_wand.set_color(&motivation.border_color)?;
|
border_wand.set_color(&motivation.border_color)?;
|
||||||
let width = wand.get_image_width();
|
let width = wand.get_image_width();
|
||||||
let border = width / 100;
|
let border = width / 100;
|
||||||
wand.border_image(
|
wand.border_image(&border_wand, border, border, CompositeOperator::Over)?;
|
||||||
&border_wand,
|
|
||||||
border,
|
|
||||||
border,
|
|
||||||
magick_rust::bindings::CompositeOperator_OverCompositeOp.into(),
|
|
||||||
)?;
|
|
||||||
|
|
||||||
border_wand.set_color("black")?;
|
border_wand.set_color("black")?;
|
||||||
let width = wand.get_image_width();
|
let width = wand.get_image_width();
|
||||||
let border = width * 20 / 100;
|
let border = width * 20 / 100;
|
||||||
wand.border_image(
|
wand.border_image(&border_wand, border, border, CompositeOperator::Over)?;
|
||||||
&border_wand,
|
|
||||||
border,
|
|
||||||
border,
|
|
||||||
magick_rust::bindings::CompositeOperator_OverCompositeOp.into(),
|
|
||||||
)?;
|
|
||||||
|
|
||||||
let text_pos_x = wand.get_image_width() as f64 / 2.0;
|
let text_pos_x = wand.get_image_width() as f64 / 2.0;
|
||||||
let text_pos_y = wand.get_image_height() as f64 - (wand.get_image_height() as f64 * 0.05);
|
let text_pos_y = wand.get_image_height() as f64 - (wand.get_image_height() as f64 * 0.05);
|
||||||
@ -363,8 +353,8 @@ impl Alignment {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl Distribution<Alignment> for StandardUniform {
|
impl Distribution<Alignment> for StandardUniform {
|
||||||
fn sample<R: Rng + ?Sized>(&self, rng: &mut R) -> Alignment {
|
fn sample<R: Rng + ?Sized>(&self, _rng: &mut R) -> Alignment {
|
||||||
match rng.random_range(0..=2) {
|
match rand::random_range(0..=2) {
|
||||||
0 => Alignment::Left,
|
0 => Alignment::Left,
|
||||||
1 => Alignment::Center,
|
1 => Alignment::Center,
|
||||||
_ => Alignment::Right,
|
_ => Alignment::Right,
|
||||||
|
|||||||
@ -4,7 +4,7 @@ use j_db::database::Database;
|
|||||||
use j_db::model::JdbModel;
|
use j_db::model::JdbModel;
|
||||||
use poise::serenity_prelude::model::id::UserId;
|
use poise::serenity_prelude::model::id::UserId;
|
||||||
use rand::distr::Alphanumeric;
|
use rand::distr::Alphanumeric;
|
||||||
use rand::{Rng, rng};
|
use rand::{RngExt, rng};
|
||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
use sha3::digest::FixedOutput;
|
use sha3::digest::FixedOutput;
|
||||||
use sha3::{Digest, Sha3_256};
|
use sha3::{Digest, Sha3_256};
|
||||||
|
|||||||
@ -5,7 +5,6 @@ use chrono::{DateTime, Days, NaiveTime, TimeZone, Utc};
|
|||||||
use j_db::database::Database;
|
use j_db::database::Database;
|
||||||
use log::info;
|
use log::info;
|
||||||
use poise::serenity_prelude::UserId;
|
use poise::serenity_prelude::UserId;
|
||||||
use rand::{Rng, rng};
|
|
||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
use std::collections::HashMap;
|
use std::collections::HashMap;
|
||||||
use thiserror::Error;
|
use thiserror::Error;
|
||||||
@ -216,11 +215,11 @@ impl GogurtReserves {
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub fn market_function() -> f64 {
|
pub fn market_function() -> f64 {
|
||||||
match rng().random_range(0..100) {
|
match rand::random_range(0..100) {
|
||||||
0..10 => rng().random_range(8.5..10.0),
|
0..10 => rand::random_range(8.5..10.0),
|
||||||
90..98 => rng().random_range(10.0..12.0),
|
90..98 => rand::random_range(10.0..12.0),
|
||||||
98..100 => rng().random_range(12.0..14.0),
|
98..100 => rand::random_range(12.0..14.0),
|
||||||
_ => rng().random_range(9.0..11.0),
|
_ => rand::random_range(9.5..10.1),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -9,7 +9,7 @@ use poise::serenity_prelude::model::guild::Emoji;
|
|||||||
use poise::serenity_prelude::model::id::{EmojiId, GuildId};
|
use poise::serenity_prelude::model::id::{EmojiId, GuildId};
|
||||||
use poise::serenity_prelude::utils::MessageBuilder;
|
use poise::serenity_prelude::utils::MessageBuilder;
|
||||||
use rand::distr::{Distribution, StandardUniform};
|
use rand::distr::{Distribution, StandardUniform};
|
||||||
use rand::{Rng, rng};
|
use rand::{Rng, RngExt, rng};
|
||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
use std::sync::Arc;
|
use std::sync::Arc;
|
||||||
|
|
||||||
@ -285,8 +285,8 @@ impl LilFren {
|
|||||||
thirst: 1.0,
|
thirst: 1.0,
|
||||||
entertainment: 1.0,
|
entertainment: 1.0,
|
||||||
state: LilFrenState::Standing,
|
state: LilFrenState::Standing,
|
||||||
smarts: rng().random_range(0.0..0.5),
|
smarts: rand::random_range(0.0..0.5),
|
||||||
metabolism: rng().random_range(0.2..0.75),
|
metabolism: rand::random_range(0.2..0.75),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -3,7 +3,6 @@ use crate::user::UserError;
|
|||||||
use j_db::database::Database;
|
use j_db::database::Database;
|
||||||
use j_db::model::JdbModel;
|
use j_db::model::JdbModel;
|
||||||
use poise::serenity_prelude::{Emoji, EmojiId, MessageBuilder, UserId};
|
use poise::serenity_prelude::{Emoji, EmojiId, MessageBuilder, UserId};
|
||||||
use rand::{Rng, rng};
|
|
||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
use std::fmt::{Display, Formatter};
|
use std::fmt::{Display, Formatter};
|
||||||
|
|
||||||
@ -121,7 +120,7 @@ impl Eq for Racer {}
|
|||||||
impl Racer {
|
impl Racer {
|
||||||
pub fn new(emoji: Emoji) -> Self {
|
pub fn new(emoji: Emoji) -> Self {
|
||||||
let genetic_stat = (emoji.id.get() & 0xff) as f32 / 255.0;
|
let genetic_stat = (emoji.id.get() & 0xff) as f32 / 255.0;
|
||||||
let random_stat = rng().random_range(0.0..0.5);
|
let random_stat = rand::random_range(0.0..0.5);
|
||||||
let speed = BASE_SPEED + (0.50 * genetic_stat) + (0.50 * random_stat);
|
let speed = BASE_SPEED + (0.50 * genetic_stat) + (0.50 * random_stat);
|
||||||
|
|
||||||
Racer {
|
Racer {
|
||||||
@ -133,7 +132,7 @@ impl Racer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub fn update_pos(&mut self) {
|
pub fn update_pos(&mut self) {
|
||||||
let speed_boost = rng().random_range(-0.75..0.75);
|
let speed_boost = rand::random_range(-0.75..0.75);
|
||||||
self.pos += self.speed + (self.speed * speed_boost);
|
self.pos += self.speed + (self.speed * speed_boost);
|
||||||
|
|
||||||
self.pos = self.pos.clamp(0.0, RACE_SIZE as f32);
|
self.pos = self.pos.clamp(0.0, RACE_SIZE as f32);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user