Source code for bacommon.bs._account

# Released under the MIT License. See LICENSE for details.
#
"""BombSquad specific bits."""

from __future__ import annotations

import datetime
from enum import Enum
from dataclasses import dataclass
from typing import Annotated

from efro.dataclassio import ioprepped, IOAttrs
from bacommon.bs._chest import ClassicChestAppearance


[docs] @ioprepped @dataclass class ClassicAccountLiveData: """Live account data fed to the client in the bs classic app mode."""
[docs] @dataclass class Chest: """A lovely chest.""" appearance: ClassicChestAppearance create_time: datetime.datetime unlock_time: datetime.datetime unlock_tokens: int ad_allow_time: datetime.datetime | None
[docs] class LeagueType(Enum): """Type of league we are in.""" BRONZE = 'b' SILVER = 's' GOLD = 'g' DIAMOND = 'd'
[docs] class Flag(Enum): """Flags set for our account.""" ASK_FOR_REVIEW = 'r'
tickets: int tokens: int gold_pass: bool remove_ads: bool achievements: int achievements_total: int league_type: LeagueType | None league_num: int | None league_rank: int | None level: int xp: int xpmax: int inbox_count: int inbox_count_is_max: bool inbox_contains_prize: bool chests: dict[str, Chest] # State id of our purchases for builds 22459+. purchases_state: str | None flags: set[Flag]
# Docs-generation hack; import some stuff that we likely only forward-declared # in our actual source code so that docs tools can find it. from typing import (Coroutine, Any, Literal, Callable, Generator, Awaitable, Sequence, Self) import asyncio from concurrent.futures import Future from pathlib import Path from enum import Enum