def test_turns_to_game_time(self): self.assertEqual(f.turns_to_game_time(0), (0, 1, 1, 0, 0, 0)) self.assertEqual(f.turns_to_game_time(1), (0, 1, 1, 0, 2, 0)) self.assertEqual(f.turns_to_game_time(5), (0, 1, 1, 0, 10, 0)) self.assertEqual(f.turns_to_game_time(20), (0, 1, 1, 0, 40, 0)) self.assertEqual(f.turns_to_game_time(70), (0, 1, 1, 2, 20, 0)) self.assertEqual(f.turns_to_game_time(700), (0, 1, 1, 23, 20, 0)) self.assertEqual(f.turns_to_game_time(7001), (0, 1, 10, 17, 22, 0)) self.assertEqual(f.turns_to_game_time(70010), (0, 4, 14, 5, 40, 0)) self.assertEqual(f.turns_to_game_time(700103), (8, 3, 21, 8, 46, 0)) self.assertEqual(f.turns_to_game_time(7001038), (86, 4, 8, 15, 56, 0))
def get_achievement_type_value(self, achievement_type): if achievement_type.is_TIME: return f.turns_to_game_time(self.last_rare_operation_at_turn - self.created_at_turn)[0] elif achievement_type.is_MONEY: return self.statistics.money_earned elif achievement_type.is_MOBS: return self.statistics.pve_kills elif achievement_type.is_ARTIFACTS: return self.statistics.artifacts_had elif achievement_type.is_QUESTS: return self.statistics.quests_done elif achievement_type.is_DEATHS: return self.statistics.pve_deaths elif achievement_type.is_PVP_BATTLES_1X1: return self.statistics.pvp_battles_1x1_number elif achievement_type.is_PVP_VICTORIES_1X1: if self.statistics.pvp_battles_1x1_number >= conf.heroes_settings.MIN_PVP_BATTLES: return int(float(self.statistics.pvp_battles_1x1_victories) / self.statistics.pvp_battles_1x1_number * 100) return 0 elif achievement_type.is_KEEPER_HELP_COUNT: return self.statistics.help_count elif achievement_type.is_HABITS_HONOR: return self.habit_honor.raw_value elif achievement_type.is_HABITS_PEACEFULNESS: return self.habit_peacefulness.raw_value elif achievement_type.is_KEEPER_CARDS_USED: return self.statistics.cards_used elif achievement_type.is_KEEPER_CARDS_COMBINED: return self.statistics.cards_combined raise exceptions.UnkwnownAchievementTypeError(achievement_type=achievement_type)
def get_achievement_type_value(self, achievement_type): if achievement_type.is_TIME: return f.turns_to_game_time(self.last_rare_operation_at_turn - self.created_at_turn)[0] elif achievement_type.is_MONEY: return self.statistics.money_earned elif achievement_type.is_MOBS: return self.statistics.pve_kills elif achievement_type.is_ARTIFACTS: return self.statistics.artifacts_had elif achievement_type.is_QUESTS: return self.statistics.quests_done elif achievement_type.is_DEATHS: return self.statistics.pve_deaths elif achievement_type.is_PVP_BATTLES_1X1: return self.statistics.pvp_battles_1x1_number elif achievement_type.is_PVP_VICTORIES_1X1: if self.statistics.pvp_battles_1x1_number >= heroes_settings.MIN_PVP_BATTLES: return int(float(self.statistics.pvp_battles_1x1_victories) / self.statistics.pvp_battles_1x1_number * 100) return 0 elif achievement_type.is_KEEPER_HELP_COUNT: return self.statistics.help_count elif achievement_type.is_HABITS_HONOR: return self.habit_honor.raw_value elif achievement_type.is_HABITS_PEACEFULNESS: return self.habit_peacefulness.raw_value elif achievement_type.is_KEEPER_CARDS_USED: return self.statistics.cards_used elif achievement_type.is_KEEPER_CARDS_COMBINED: return self.statistics.cards_combined raise exceptions.UnkwnownAchievementTypeError(achievement_type=achievement_type)
def game_time(self): return GameTime(*f.turns_to_game_time(self.turn_number))
def create_from_turn(cls, turn_number): return cls(*f.turns_to_game_time(turn_number))
def updated_at_game_time(self): return GameTime(*f.turns_to_game_time(self.updated_at_turn)) @property
def updated_at_game_time(self): return GameTime(*f.turns_to_game_time(self._model.updated_at_turn))
def game_time(self): return GameTime(*f.turns_to_game_time(self.turn_number)) @classmethod