1use schemars::JsonSchema;
2use serde::{Deserialize, Serialize};
3use tsify_next::Tsify;
4
5#[derive(Clone, Debug, Deserialize, Serialize, JsonSchema, Tsify)]
7pub struct FlipSettings {
8 #[schemars(
10 title = "Глава разблокировки флипа",
11 description = "До этой главы игрок остаётся в Fantasy, а шкала не заполняется."
12 )]
13 pub unlock_chapter: i64,
14
15 #[schemars(
17 title = "Порог глобального флипа",
18 description = "Сколько нормализованного прогресса требуется для одного переключения Real/Fantasy."
19 )]
20 pub progress_threshold: f64,
21
22 #[schemars(
26 title = "Шкала за снятую полоску здоровья",
27 description = "Сколько прогресса шкалы даёт снятие полной полосы здоровья: исходящий урон умножается на долю жертвы в волне, входящий нормируется собственным здоровьем."
28 )]
29 pub damage_gauge_coefficient: f64,
30}
31
32impl FlipSettings {
33 pub const fn is_unlocked(&self, chapter_level: i64) -> bool {
34 chapter_level >= self.unlock_chapter
35 }
36}