pub struct PlinkoSettings {
pub rows: i64,
pub slot_layouts: NonEmptyVec<PlinkoLevelSlotLayout>,
pub pin_bonuses: Vec<PlinkoPinBonus>,
pub tranches: Vec<PlinkoTranche>,
}Expand description
Настройки мини-игры Plinko.
Сервер — единственный источник правды: он знает высоту доски, раскладку «слот → редкость» для каждого уровня сундука и таблицу колышков, сам катит путь шарика и сам начисляет статы за задетые колышки. Клиент только проигрывает анимацию по присланному пути.
Fields§
§rows: i64§slot_layouts: NonEmptyVec<PlinkoLevelSlotLayout>§pin_bonuses: Vec<PlinkoPinBonus>§tranches: Vec<PlinkoTranche>Implementations§
Source§impl PlinkoSettings
impl PlinkoSettings
Sourcepub fn slot_count(&self) -> i64
pub fn slot_count(&self) -> i64
Число физических слотов доски.
Sourcepub fn layout_for_level(
&self,
chest_level: i64,
) -> Option<&PlinkoLevelSlotLayout>
pub fn layout_for_level( &self, chest_level: i64, ) -> Option<&PlinkoLevelSlotLayout>
Раскладка доски для уровня сундука. Отсутствие записи означает
сломанный конфиг: validate требует раскладку на каждый уровень
item_cases_settings.
Sourcepub fn pin_bonus(&self, row: i64, column: i64) -> Option<&PlinkoPinBonus>
pub fn pin_bonus(&self, row: i64, column: i64) -> Option<&PlinkoPinBonus>
Бонус конкретного колышка, если он задан в таблице.
Sourcepub fn tranche(
&self,
chest_level: i64,
attribute_id: AttributeId,
) -> Option<&PlinkoAxisTranche>
pub fn tranche( &self, chest_level: i64, attribute_id: AttributeId, ) -> Option<&PlinkoAxisTranche>
Транш оси attribute_id на уровне сундука chest_level.
Sourcepub fn active_tranche(
&self,
chest_level: i64,
attribute_id: AttributeId,
current_micro: i64,
) -> Option<&PlinkoAxisTranche>
pub fn active_tranche( &self, chest_level: i64, attribute_id: AttributeId, current_micro: i64, ) -> Option<&PlinkoAxisTranche>
Транш, который ось attribute_id набирает прямо сейчас: САМЫЙ РАННИЙ
уровень не выше текущего, чей потолок ещё не достигнут и который вообще
добавляет ёмкость (BAL-021).
Это и есть догон: игрок, проскочивший несколько уровней сундука, не теряет пропущенную ёмкость и не получает её мгновенно — он добирает её по шагам того уровня, на котором она открылась. История касаний для этого не нужна: потолки монотонны, поэтому накопленного значения достаточно, чтобы понять, где игрок стоит.
Sourcepub fn cap_micro_at(&self, chest_level: i64, attribute_id: AttributeId) -> i64
pub fn cap_micro_at(&self, chest_level: i64, attribute_id: AttributeId) -> i64
Потолок оси на текущем уровне сундука — верхняя граница накопления, пока сундук не вырастет.
Sourcepub fn whole_from_micro(micro: i64) -> i64
pub fn whole_from_micro(micro: i64) -> i64
Целая часть накопленного бонуса — то, что видит бой и UI.
Trait Implementations§
Source§impl Clone for PlinkoSettings
impl Clone for PlinkoSettings
Source§fn clone(&self) -> PlinkoSettings
fn clone(&self) -> PlinkoSettings
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for PlinkoSettings
impl Debug for PlinkoSettings
Source§impl<'de> Deserialize<'de> for PlinkoSettings
impl<'de> Deserialize<'de> for PlinkoSettings
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl JsonSchema for PlinkoSettings
impl JsonSchema for PlinkoSettings
Source§fn schema_name() -> String
fn schema_name() -> String
Source§fn schema_id() -> Cow<'static, str>
fn schema_id() -> Cow<'static, str>
Source§fn json_schema(generator: &mut SchemaGenerator) -> Schema
fn json_schema(generator: &mut SchemaGenerator) -> Schema
§fn is_referenceable() -> bool
fn is_referenceable() -> bool
$ref keyword. Read more