1use schemars::JsonSchema;
2
3use serde::{Deserialize, Serialize};
4use tsify_next::Tsify;
5
6#[derive(Clone, Debug, Deserialize, Serialize, JsonSchema, Tsify)]
7pub struct OpponentPositionSettings {
8 #[schemars(title = "Минимальная разница в рейтинге в процентах")]
9 pub min_rating_diff_percent: f64,
10
11 #[schemars(title = "Максимальная разница в рейтинге в процентах")]
12 pub max_rating_diff_percent: f64,
13
14 #[schemars(
15 title = "Максимальная позиция в рейтинге, после которой перестают генерироваться боты"
16 )]
17 pub max_rating_for_bots: u64,
18
19 #[schemars(title = "Множитель силы бота относительно рейтинга игрока")]
20 pub bot_power_multiplier: f64,
21}
22
23#[derive(Clone, Debug, Deserialize, Serialize, JsonSchema, Tsify)]
24pub struct MatchmakingSettings {
25 #[schemars(title = "Настройки для каждой позиции противника")]
26 pub opponent_positions: Vec<OpponentPositionSettings>,
27
28 #[schemars(title = "Порог перцентиля для переключения на альтернативный матчмейкинг")]
29 pub percentile_threshold: f64,
30}