Module blaseball_mike.models.fight
Expand source code
import json
from .base import Base
from .game import Game
from .player import Player
from .team import Team
from .. import tables, chronicler
class Fight(Game):
"""Represents a Blaseball boss fight."""
@classmethod
def _get_fields(cls):
p = cls.load_by_id("6754f45d-52a6-4b2f-b63c-15dcd520f8cf")
return [cls._from_api_conversion(x) for x in p.fields]
class DamageResults(Base):
"""
Information regarding a specific damage event
"""
@Base.lazy_load("_dmg_type")
def dmg_type(self):
return tables.DamageType(self._dmg_type)
@Base.lazy_load("_player_source_id", cache_name="_player_source")
def player_source(self):
return Player.load_one(self._player_source_id)
@Base.lazy_load("_team_target_id", cache_name="_team_target")
def team_target(self):
return Team.load(self._team_target_id)
@classmethod
def load_by_id(cls, id_):
fights = list(chronicler.get_entities("bossfight", id_=id_))
if len(fights) != 1:
return None
return cls(fights[0]["data"])
@classmethod
def load_by_season(cls, season):
return {
x['id']: cls(x["data"]) for x in chronicler.get_fights(season=season)
}
@Base.lazy_load("_away_hp")
def away_hp(self):
return int(self._away_hp)
@Base.lazy_load("_home_hp")
def home_hp(self):
return int(self._home_hp)
@Base.lazy_load("_away_max_hp")
def away_max_hp(self):
return int(self._away_max_hp)
@Base.lazy_load("_home_max_hp")
def home_max_hp(self):
return int(self._home_max_hp)
@Base.lazy_load("_damage_results_str", cache_name="_damage_results", default_value=list())
def damage_results(self):
return [self.DamageResults(x) for x in json.loads(self._damage_results_str)]
Classes
class Fight (data, strict=False)-
Represents a Blaseball boss fight.
Expand source code
class Fight(Game): """Represents a Blaseball boss fight.""" @classmethod def _get_fields(cls): p = cls.load_by_id("6754f45d-52a6-4b2f-b63c-15dcd520f8cf") return [cls._from_api_conversion(x) for x in p.fields] class DamageResults(Base): """ Information regarding a specific damage event """ @Base.lazy_load("_dmg_type") def dmg_type(self): return tables.DamageType(self._dmg_type) @Base.lazy_load("_player_source_id", cache_name="_player_source") def player_source(self): return Player.load_one(self._player_source_id) @Base.lazy_load("_team_target_id", cache_name="_team_target") def team_target(self): return Team.load(self._team_target_id) @classmethod def load_by_id(cls, id_): fights = list(chronicler.get_entities("bossfight", id_=id_)) if len(fights) != 1: return None return cls(fights[0]["data"]) @classmethod def load_by_season(cls, season): return { x['id']: cls(x["data"]) for x in chronicler.get_fights(season=season) } @Base.lazy_load("_away_hp") def away_hp(self): return int(self._away_hp) @Base.lazy_load("_home_hp") def home_hp(self): return int(self._home_hp) @Base.lazy_load("_away_max_hp") def away_max_hp(self): return int(self._away_max_hp) @Base.lazy_load("_home_max_hp") def home_max_hp(self): return int(self._home_max_hp) @Base.lazy_load("_damage_results_str", cache_name="_damage_results", default_value=list()) def damage_results(self): return [self.DamageResults(x) for x in json.loads(self._damage_results_str)]Ancestors
Class variables
var DamageResults-
Information regarding a specific damage event
Static methods
def load_by_id(id_)-
Load by ID
Expand source code
@classmethod def load_by_id(cls, id_): fights = list(chronicler.get_entities("bossfight", id_=id_)) if len(fights) != 1: return None return cls(fights[0]["data"]) def load_by_season(season)-
Return dictionary of games for a given season keyed by game ID. Can optionally be filtered by in-game day or team ID. Season and Day are 1-indexed
Expand source code
@classmethod def load_by_season(cls, season): return { x['id']: cls(x["data"]) for x in chronicler.get_fights(season=season) }
Instance variables
var at_bat_ballsvar at_bat_strikesvar away_ballsvar away_basesvar away_battervar away_batter_namevar away_hpvar away_max_hpvar away_oddsvar away_outsvar away_pitchervar away_pitcher_namevar away_scorevar away_strikesvar away_teamvar away_team_batter_countvar away_team_colorvar away_team_emojivar away_team_namevar away_team_nicknamevar away_team_secondary_colorvar base_runner_namesvar base_runnersvar baserunner_countvar bases_occupiedvar damage_resultsvar dayvar finalizedvar game_completevar game_startvar half_inning_outsvar half_inning_scorevar home_ballsvar home_basesvar home_battervar home_batter_namevar home_hpvar home_max_hpvar home_oddsvar home_outsvar home_pitchervar home_pitcher_namevar home_scorevar home_strikesvar home_teamvar home_team_batter_countvar home_team_colorvar home_team_emojivar home_team_namevar home_team_nicknamevar home_team_secondary_colorvar idvar inningvar is_postseasonvar last_updatevar outcomesvar phasevar play_countvar repeat_countvar rulesvar seasonvar series_indexvar series_lengthvar shamevar statsheetvar terminologyvar top_of_inningvar weather