# weaponDB from models.loots.weapon import Weapon from models.heroes.hero import Hero from models.loots.loot import Loot from database.databases.lootDB import LootDB # pour éviter les pb d'import circulaire from typing import TYPE_CHECKING if TYPE_CHECKING: from database.mainDB import MainDB class WeaponDB(LootDB): def __init__(self, db: "MainDB") -> None: self.db = db def get_weapons(self) -> list[Weapon]: query = "SELECT * FROM loots WHERE types_id = ?" values = (Weapon.WEAPON,) self.db.sql_query(query, values) results = self.db.cursor.fetchall() list_return = [] for result in results: list_return.append(self.define_loot(result)) return list_return def define_loot(self, result: list) -> Weapon: id = result[0] title = result[1] type = result[2] loot_value = result[3] value = result[4] description = result[5] drop_rate = result[6] weapon = Weapon(title, description, type, loot_value, value, drop_rate) weapon.id = id return weapon def get_weapon_by_hero_type(self, hero: Hero) -> list[Weapon]: return self.get_loots_by_hero_and_loot_type(hero, Loot.WEAPON)