path-of-the-loner/database/databases/monsterDB.py
2025-03-03 16:47:07 +01:00

51 lines
1.2 KiB
Python

# monsterDB
from models.heroes.monster import Monster
# pour éviter les pb d'import circulaire
from typing import TYPE_CHECKING
if TYPE_CHECKING:
from database.mainDB import MainDB
class MonsterDB:
def __init__(self, db: "MainDB") -> None:
self.db = db
def get_all_monsters(self) -> list[Monster]:
query = "SELECT * FROM monsters WHERE types_id IN (?, ?, ?, ?, ?)"
values = (
Monster.BEAST,
Monster.HUMANOID,
Monster.UNDEAD,
Monster.DRAGON,
Monster.ELEMENTAL,
)
self.db.sql_query(query, values)
results = self.db.cursor.fetchall()
monsters = []
for result in results:
monsters.append(self.define_monster(result))
return monsters
def define_monster(self, result: list) -> Monster:
id = result[0]
title = result[1]
types_id = result[2]
health_points = result[3]
attack_power = result[4]
defense = result[5]
description = result[6]
monster = Monster(
title, description, health_points, attack_power, defense, types_id
)
monster.id = id
return monster