Struct Character

Source
pub struct Character {
Show 46 fields pub id: CharacterId, pub user_id: Uuid, pub created_at: DateTime<Utc>, pub class: ClassId, pub character_level: i64, pub character_experience: i64, pub patron_level: i64, pub patron_experience: i64, pub cases: i64, pub current_chapter_level: i64, pub current_fight_number: i64, pub max_vassal_slots_count: i64, pub custom_values: CustomValuesMap, pub item_case_level: i64, pub ability_case_level: i64, pub opened_ability_cases: i64, pub ability_gacha_wishlist: Vec<AbilityId>, pub ability_slot_levels: Vec<i64>, pub item_case_upgrade_finish_at: Option<DateTime<Utc>>, pub power: i64, pub fight_class: Option<FightClass>, pub arena_rating: i64, pub arena_stars: i64, pub arena_last_pvp_at: Option<DateTime<Utc>>, pub last_boss_fight_won: bool, pub auto_chest_enabled: bool, pub last_filter_used_id: Option<AutoChestFilterId>, pub last_item_case_speedup_at: Option<DateTime<Utc>>, pub last_afk_reward_claimed_at: DateTime<Utc>, pub afk_reward_seed: u64, pub last_gacha_ad_roll_at: Option<DateTime<Utc>>, pub speedup_ad_daily_count: i64, pub active_loop_task_id: Option<Uuid>, pub purchases_banned: bool, pub completed_tutorials: Vec<i16>, pub pet_slot_levels: Vec<i64>, pub pet_case_level: i64, pub opened_pet_cases: i64, pub pet_gacha_wishlist: Vec<PetId>, pub party_character_id: Option<Uuid>, pub talent_upgrading_id: Option<TalentId>, pub talent_upgrade_finish_at: Option<DateTime<Utc>>, pub last_online_at: DateTime<Utc>, pub instant_reward_gems_press_count: i64, pub afk_boost_pending_stacks: i64, pub bird_cooldown_until: Option<DateTime<Utc>>,
}

Fields§

§id: CharacterId§user_id: Uuid§created_at: DateTime<Utc>§class: ClassId§character_level: i64§character_experience: i64§patron_level: i64§patron_experience: i64§cases: i64§current_chapter_level: i64§current_fight_number: i64§max_vassal_slots_count: i64§custom_values: CustomValuesMap§item_case_level: i64§ability_case_level: i64

Текущий уровень гачи способностей.

§opened_ability_cases: i64

Накопленные очки прогресса гачи способностей. Историческое имя поля сохранено для обратной совместимости.

§ability_gacha_wishlist: Vec<AbilityId>

Выбранные шаблоны способностей для вишлиста гачи.

§ability_slot_levels: Vec<i64>

Уровни слотов способностей по индексам slot_id.

§item_case_upgrade_finish_at: Option<DateTime<Utc>>§power: i64§fight_class: Option<FightClass>§arena_rating: i64§arena_stars: i64§arena_last_pvp_at: Option<DateTime<Utc>>§last_boss_fight_won: bool§auto_chest_enabled: bool§last_filter_used_id: Option<AutoChestFilterId>§last_item_case_speedup_at: Option<DateTime<Utc>>§last_afk_reward_claimed_at: DateTime<Utc>§afk_reward_seed: u64§last_gacha_ad_roll_at: Option<DateTime<Utc>>§speedup_ad_daily_count: i64

Number of chest upgrade speedups used today via watching an ad.

§active_loop_task_id: Option<Uuid>§purchases_banned: bool§completed_tutorials: Vec<i16>§pet_slot_levels: Vec<i64>

Уровни слотов петов по индексам slot_id.

§pet_case_level: i64

Текущий уровень гачи петов.

§opened_pet_cases: i64

Накопленные очки прогресса гачи петов.

§pet_gacha_wishlist: Vec<PetId>

Выбранные шаблоны петов для вишлиста гачи.

§party_character_id: Option<Uuid>

ID персонажа, добавленного в пати.

§talent_upgrading_id: Option<TalentId>

ID таланта, который сейчас изучается (если есть).

§talent_upgrade_finish_at: Option<DateTime<Utc>>

Время завершения изучения таланта.

§last_online_at: DateTime<Utc>

Время последнего активного соединения игрока (обновляется каждый тик).

§instant_reward_gems_press_count: i64

Количество нажатий на мгновенную награду AFK за гемы за сегодня.

§afk_boost_pending_stacks: i64

Накопленные стаки буста AFK-награды от просмотра рекламы. Применяются к следующему клейму AFK-награды и сбрасываются.

§bird_cooldown_until: Option<DateTime<Utc>>

Время, до которого нельзя показывать следующую птицу. Короткий кулдаун устанавливается при эмите ShowBird сервером, полный — при подтверждении показа клиентом (BirdShown).

Trait Implementations§

Source§

impl Clone for Character

Source§

fn clone(&self) -> Character

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl CustomType for Character

Source§

fn build(builder: TypeBuilder<'_, Self>)

Builds the custom type for use with the [Engine]. Read more
Source§

impl Debug for Character

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for Character

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl<'de> Deserialize<'de> for Character

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl JsonSchema for Character

Source§

fn schema_name() -> String

The name of the generated JSON Schema. Read more
Source§

fn schema_id() -> Cow<'static, str>

Returns a string that uniquely identifies the schema produced by this type. Read more
Source§

fn json_schema(generator: &mut SchemaGenerator) -> Schema

Generates a JSON Schema for this type. Read more
§

fn is_referenceable() -> bool

Whether JSON Schemas generated for this type should be re-used where possible using the $ref keyword. Read more
Source§

impl PartialEq for Character

Source§

fn eq(&self, other: &Self) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Serialize for Character

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl Tsify for Character

Source§

const DECL: &'static str = "export interface Character {\n id: CharacterId;\n user_id: Uuid;\n created_at: DateTime<Utc>;\n class: ClassId;\n character_level: number;\n character_experience: number;\n patron_level: number;\n patron_experience: number;\n cases: number;\n current_chapter_level: number;\n current_fight_number: number;\n max_vassal_slots_count: number;\n custom_values: CustomValuesMap;\n item_case_level: number;\n /**\n * \u{422}\u{435}\u{43a}\u{443}\u{449}\u{438}\u{439} \u{443}\u{440}\u{43e}\u{432}\u{435}\u{43d}\u{44c} \u{433}\u{430}\u{447}\u{438} \u{441}\u{43f}\u{43e}\u{441}\u{43e}\u{431}\u{43d}\u{43e}\u{441}\u{442}\u{435}\u{439}.\n */\n ability_case_level: number;\n /**\n * \u{41d}\u{430}\u{43a}\u{43e}\u{43f}\u{43b}\u{435}\u{43d}\u{43d}\u{44b}\u{435} \u{43e}\u{447}\u{43a}\u{438} \u{43f}\u{440}\u{43e}\u{433}\u{440}\u{435}\u{441}\u{441}\u{430} \u{433}\u{430}\u{447}\u{438} \u{441}\u{43f}\u{43e}\u{441}\u{43e}\u{431}\u{43d}\u{43e}\u{441}\u{442}\u{435}\u{439}.\n * \u{418}\u{441}\u{442}\u{43e}\u{440}\u{438}\u{447}\u{435}\u{441}\u{43a}\u{43e}\u{435} \u{438}\u{43c}\u{44f} \u{43f}\u{43e}\u{43b}\u{44f} \u{441}\u{43e}\u{445}\u{440}\u{430}\u{43d}\u{435}\u{43d}\u{43e} \u{434}\u{43b}\u{44f} \u{43e}\u{431}\u{440}\u{430}\u{442}\u{43d}\u{43e}\u{439} \u{441}\u{43e}\u{432}\u{43c}\u{435}\u{441}\u{442}\u{438}\u{43c}\u{43e}\u{441}\u{442}\u{438}.\n */\n opened_ability_cases: number;\n /**\n * \u{412}\u{44b}\u{431}\u{440}\u{430}\u{43d}\u{43d}\u{44b}\u{435} \u{448}\u{430}\u{431}\u{43b}\u{43e}\u{43d}\u{44b} \u{441}\u{43f}\u{43e}\u{441}\u{43e}\u{431}\u{43d}\u{43e}\u{441}\u{442}\u{435}\u{439} \u{434}\u{43b}\u{44f} \u{432}\u{438}\u{448}\u{43b}\u{438}\u{441}\u{442}\u{430} \u{433}\u{430}\u{447}\u{438}.\n */\n ability_gacha_wishlist: AbilityId[];\n /**\n * \u{423}\u{440}\u{43e}\u{432}\u{43d}\u{438} \u{441}\u{43b}\u{43e}\u{442}\u{43e}\u{432} \u{441}\u{43f}\u{43e}\u{441}\u{43e}\u{431}\u{43d}\u{43e}\u{441}\u{442}\u{435}\u{439} \u{43f}\u{43e} \u{438}\u{43d}\u{434}\u{435}\u{43a}\u{441}\u{430}\u{43c} `slot_id`.\n */\n ability_slot_levels: number[];\n item_case_upgrade_finish_at: DateTime<Utc> | null;\n power: number;\n fight_class: FightClass | null;\n arena_rating: number;\n arena_stars: number;\n arena_last_pvp_at: DateTime<Utc> | null;\n last_boss_fight_won: boolean;\n auto_chest_enabled: boolean;\n last_filter_used_id: AutoChestFilterId | null;\n last_item_case_speedup_at: DateTime<Utc> | null;\n last_afk_reward_claimed_at: DateTime<Utc>;\n afk_reward_seed: number;\n last_gacha_ad_roll_at: DateTime<Utc> | null;\n /**\n * Number of chest upgrade speedups used today via watching an ad.\n */\n speedup_ad_daily_count: number;\n active_loop_task_id: Uuid | null;\n purchases_banned: boolean;\n completed_tutorials: number[];\n /**\n * \u{423}\u{440}\u{43e}\u{432}\u{43d}\u{438} \u{441}\u{43b}\u{43e}\u{442}\u{43e}\u{432} \u{43f}\u{435}\u{442}\u{43e}\u{432} \u{43f}\u{43e} \u{438}\u{43d}\u{434}\u{435}\u{43a}\u{441}\u{430}\u{43c} `slot_id`.\n */\n pet_slot_levels: number[];\n /**\n * \u{422}\u{435}\u{43a}\u{443}\u{449}\u{438}\u{439} \u{443}\u{440}\u{43e}\u{432}\u{435}\u{43d}\u{44c} \u{433}\u{430}\u{447}\u{438} \u{43f}\u{435}\u{442}\u{43e}\u{432}.\n */\n pet_case_level: number;\n /**\n * \u{41d}\u{430}\u{43a}\u{43e}\u{43f}\u{43b}\u{435}\u{43d}\u{43d}\u{44b}\u{435} \u{43e}\u{447}\u{43a}\u{438} \u{43f}\u{440}\u{43e}\u{433}\u{440}\u{435}\u{441}\u{441}\u{430} \u{433}\u{430}\u{447}\u{438} \u{43f}\u{435}\u{442}\u{43e}\u{432}.\n */\n opened_pet_cases: number;\n /**\n * \u{412}\u{44b}\u{431}\u{440}\u{430}\u{43d}\u{43d}\u{44b}\u{435} \u{448}\u{430}\u{431}\u{43b}\u{43e}\u{43d}\u{44b} \u{43f}\u{435}\u{442}\u{43e}\u{432} \u{434}\u{43b}\u{44f} \u{432}\u{438}\u{448}\u{43b}\u{438}\u{441}\u{442}\u{430} \u{433}\u{430}\u{447}\u{438}.\n */\n pet_gacha_wishlist: PetId[];\n /**\n * ID \u{43f}\u{435}\u{440}\u{441}\u{43e}\u{43d}\u{430}\u{436}\u{430}, \u{434}\u{43e}\u{431}\u{430}\u{432}\u{43b}\u{435}\u{43d}\u{43d}\u{43e}\u{433}\u{43e} \u{432} \u{43f}\u{430}\u{442}\u{438}.\n */\n party_character_id: Uuid | null;\n /**\n * ID \u{442}\u{430}\u{43b}\u{430}\u{43d}\u{442}\u{430}, \u{43a}\u{43e}\u{442}\u{43e}\u{440}\u{44b}\u{439} \u{441}\u{435}\u{439}\u{447}\u{430}\u{441} \u{438}\u{437}\u{443}\u{447}\u{430}\u{435}\u{442}\u{441}\u{44f} (\u{435}\u{441}\u{43b}\u{438} \u{435}\u{441}\u{442}\u{44c}).\n */\n talent_upgrading_id: TalentId | null;\n /**\n * \u{412}\u{440}\u{435}\u{43c}\u{44f} \u{437}\u{430}\u{432}\u{435}\u{440}\u{448}\u{435}\u{43d}\u{438}\u{44f} \u{438}\u{437}\u{443}\u{447}\u{435}\u{43d}\u{438}\u{44f} \u{442}\u{430}\u{43b}\u{430}\u{43d}\u{442}\u{430}.\n */\n talent_upgrade_finish_at: DateTime<Utc> | null;\n /**\n * \u{412}\u{440}\u{435}\u{43c}\u{44f} \u{43f}\u{43e}\u{441}\u{43b}\u{435}\u{434}\u{43d}\u{435}\u{433}\u{43e} \u{430}\u{43a}\u{442}\u{438}\u{432}\u{43d}\u{43e}\u{433}\u{43e} \u{441}\u{43e}\u{435}\u{434}\u{438}\u{43d}\u{435}\u{43d}\u{438}\u{44f} \u{438}\u{433}\u{440}\u{43e}\u{43a}\u{430} (\u{43e}\u{431}\u{43d}\u{43e}\u{432}\u{43b}\u{44f}\u{435}\u{442}\u{441}\u{44f} \u{43a}\u{430}\u{436}\u{434}\u{44b}\u{439} \u{442}\u{438}\u{43a}).\n */\n last_online_at: DateTime<Utc>;\n /**\n * \u{41a}\u{43e}\u{43b}\u{438}\u{447}\u{435}\u{441}\u{442}\u{432}\u{43e} \u{43d}\u{430}\u{436}\u{430}\u{442}\u{438}\u{439} \u{43d}\u{430} \u{43c}\u{433}\u{43d}\u{43e}\u{432}\u{435}\u{43d}\u{43d}\u{443}\u{44e} \u{43d}\u{430}\u{433}\u{440}\u{430}\u{434}\u{443} AFK \u{437}\u{430} \u{433}\u{435}\u{43c}\u{44b} \u{437}\u{430} \u{441}\u{435}\u{433}\u{43e}\u{434}\u{43d}\u{44f}.\n */\n instant_reward_gems_press_count: number;\n /**\n * \u{41d}\u{430}\u{43a}\u{43e}\u{43f}\u{43b}\u{435}\u{43d}\u{43d}\u{44b}\u{435} \u{441}\u{442}\u{430}\u{43a}\u{438} \u{431}\u{443}\u{441}\u{442}\u{430} AFK-\u{43d}\u{430}\u{433}\u{440}\u{430}\u{434}\u{44b} \u{43e}\u{442} \u{43f}\u{440}\u{43e}\u{441}\u{43c}\u{43e}\u{442}\u{440}\u{430} \u{440}\u{435}\u{43a}\u{43b}\u{430}\u{43c}\u{44b}.\n * \u{41f}\u{440}\u{438}\u{43c}\u{435}\u{43d}\u{44f}\u{44e}\u{442}\u{441}\u{44f} \u{43a} \u{441}\u{43b}\u{435}\u{434}\u{443}\u{44e}\u{449}\u{435}\u{43c}\u{443} \u{43a}\u{43b}\u{435}\u{439}\u{43c}\u{443} AFK-\u{43d}\u{430}\u{433}\u{440}\u{430}\u{434}\u{44b} \u{438} \u{441}\u{431}\u{440}\u{430}\u{441}\u{44b}\u{432}\u{430}\u{44e}\u{442}\u{441}\u{44f}.\n */\n afk_boost_pending_stacks: number;\n /**\n * \u{412}\u{440}\u{435}\u{43c}\u{44f}, \u{434}\u{43e} \u{43a}\u{43e}\u{442}\u{43e}\u{440}\u{43e}\u{433}\u{43e} \u{43d}\u{435}\u{43b}\u{44c}\u{437}\u{44f} \u{43f}\u{43e}\u{43a}\u{430}\u{437}\u{44b}\u{432}\u{430}\u{442}\u{44c} \u{441}\u{43b}\u{435}\u{434}\u{443}\u{44e}\u{449}\u{443}\u{44e} \u{43f}\u{442}\u{438}\u{446}\u{443}.\n * \u{41a}\u{43e}\u{440}\u{43e}\u{442}\u{43a}\u{438}\u{439} \u{43a}\u{443}\u{43b}\u{434}\u{430}\u{443}\u{43d} \u{443}\u{441}\u{442}\u{430}\u{43d}\u{430}\u{432}\u{43b}\u{438}\u{432}\u{430}\u{435}\u{442}\u{441}\u{44f} \u{43f}\u{440}\u{438} \u{44d}\u{43c}\u{438}\u{442}\u{435} `ShowBird` \u{441}\u{435}\u{440}\u{432}\u{435}\u{440}\u{43e}\u{43c},\n * \u{43f}\u{43e}\u{43b}\u{43d}\u{44b}\u{439} \u{2014} \u{43f}\u{440}\u{438} \u{43f}\u{43e}\u{434}\u{442}\u{432}\u{435}\u{440}\u{436}\u{434}\u{435}\u{43d}\u{438}\u{438} \u{43f}\u{43e}\u{43a}\u{430}\u{437}\u{430} \u{43a}\u{43b}\u{438}\u{435}\u{43d}\u{442}\u{43e}\u{43c} (`BirdShown`).\n */\n bird_cooldown_until: DateTime<Utc> | null;\n}"

Source§

const SERIALIZATION_CONFIG: SerializationConfig

Source§

type JsType = JsType

§

fn into_js(&self) -> Result<Self::JsType, Error>
where Self: Serialize,

§

fn from_js<T>(js: T) -> Result<Self, Error>
where T: Into<JsValue>, Self: DeserializeOwned,

Source§

impl Eq for Character

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DynClone for T
where T: Clone,

Source§

fn __clone_box(&self, _: Private) -> *mut ()

§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> FutureExt for T

§

fn with_context(self, otel_cx: Context) -> WithContext<Self>

Attaches the provided Context to this type, returning a WithContext wrapper. Read more
§

fn with_current_context(self) -> WithContext<Self>

Attaches the current Context to this type, returning a WithContext wrapper. Read more
§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<S, T> Upcast<T> for S
where T: UpcastFrom<S> + ?Sized, S: ?Sized,

Source§

fn upcast(&self) -> &T
where Self: ErasableGeneric, T: ErasableGeneric<Repr = Self::Repr>,

Perform a zero-cost type-safe upcast to a wider ref type within the Wasm bindgen generics type system. Read more
Source§

fn upcast_into(self) -> T
where Self: Sized + ErasableGeneric, T: ErasableGeneric<Repr = Self::Repr>,

Perform a zero-cost type-safe upcast to a wider type within the Wasm bindgen generics type system. Read more
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,