configs/
fighting.rs

1use essences::{
2    bundles::BundleId,
3    currency::{CurrencyId, CurrencyUnit},
4    entity::Coordinates,
5};
6
7use schema_loader::{bundle_id_schema, currency_link_id_schema, id_schema};
8use schemars::JsonSchema;
9
10use serde::{Deserialize, Serialize};
11use tsify_next::Tsify;
12
13#[derive(Clone, Debug, Deserialize, Serialize, JsonSchema, Tsify)]
14pub struct FightSettings {
15    #[schemars(
16        title = "Время ожидания перед стартом следующего боя в тиках",
17        description = "Это момент анимации перебежки персонажа между битвами"
18    )]
19    pub start_fight_delay_ticks_default: u64,
20
21    #[schemars(
22        title = "Время ожидания перед стартом уже начавшегося боя в случае победы",
23        description = "Это момент, когда враги выбегают на экран"
24    )]
25    pub prepare_fight_win_delay_ticks_default: u64,
26
27    #[schemars(
28        title = "Время ожидания перед стартом уже начавшегося боя в случае поражения",
29        description = "Это момент, когда враги выбегают на экран"
30    )]
31    pub prepare_fight_lose_delay_ticks_default: u64,
32
33    #[schemars(title = "Время ожидания перед окончанием боя")]
34    pub end_fight_delay_ticks_default: u64,
35
36    #[schemars(title = "Стартовые координаты игрока")]
37    pub player_start_position: Coordinates,
38
39    #[schemars(title = "Стартовые координаты союзника по пати")]
40    pub party_start_position: Coordinates,
41
42    #[schemars(title = "Стартовые координаты врага в pvp")]
43    pub pvp_enemy_start_position: Coordinates,
44}
45
46#[derive(Clone, Debug, Deserialize, Serialize, JsonSchema, Tsify)]
47pub struct PvpSettings {
48    #[schemars(
49        title = "Максимальное количество оппонентов",
50        description = "Максимальное количество оппонентов для отображения на экране подбора игроков"
51    )]
52    pub max_matchmaking_opponents_count: i64,
53
54    #[schemars(title = "Дельта уровня пользователя для матчмейкинга")]
55    pub matchmaking_character_level_data: i64,
56}
57
58#[derive(Clone, Debug, Serialize, Deserialize, JsonSchema, Tsify)]
59pub struct ArenaLeague {
60    #[schemars(schema_with = "id_schema")]
61    pub id: uuid::Uuid,
62
63    #[schemars(title = "Название лиги")]
64    pub name: i18n::I18nString,
65
66    #[schemars(title = "Минимальный рейтинг")]
67    pub min_rating: i64,
68
69    #[schemars(title = "Максимальный рейтинг")]
70    pub max_rating: i64,
71}
72
73#[derive(Clone, Debug, Serialize, Deserialize, JsonSchema, Tsify)]
74pub struct ArenaSettings {
75    #[schemars(title = "Базовый рейтинг пользователя")]
76    pub base_rating: u64,
77
78    #[schemars(title = "Количество последних матчей на экране истории")]
79    pub matches_history_size: u64,
80
81    #[schemars(title = "Размер таблицы лидеров")]
82    pub leaderboard_size: u64,
83
84    #[schemars(
85        title = "Идентификатор валюты pvp токенов",
86        schema_with = "currency_link_id_schema"
87    )]
88    pub arena_tickets_currency_id: CurrencyId,
89
90    #[schemars(title = "Максимальная разница между рейтингами игроков для подбора")]
91    pub matchmaking_character_rating_delta: u64,
92
93    #[schemars(title = "Кулдаун pvp")]
94    pub pvp_cooldown_secs: u64,
95
96    #[schemars(
97        title = "ID бандла награды за победу в арене",
98        schema_with = "bundle_id_schema"
99    )]
100    pub win_reward_bundle_id: BundleId,
101
102    #[schemars(
103        title = "ID бандла награды за поражение в арене",
104        schema_with = "bundle_id_schema"
105    )]
106    pub lose_reward_bundle_id: BundleId,
107
108    #[schemars(
109        title = "Валюта для покупки аренных билетов",
110        schema_with = "currency_link_id_schema"
111    )]
112    pub arena_ticket_buy_currency_id: CurrencyId,
113
114    #[schemars(title = "Стоимость покупки аренных билетов")]
115    pub arena_ticket_price: CurrencyUnit,
116
117    #[schemars(title = "Количество дней жизни матчей в базе данных")]
118    pub arena_matches_ttl_days: u64,
119
120    #[schemars(title = "Максимальное увеличение рейтинга в рематче")]
121    pub rematch_max_rating_increase: i64,
122
123    #[schemars(title = "Максимальное уменьшение рейтинга в рематче")]
124    pub rematch_max_rating_decrease: i64,
125}