1
This commit was merged in pull request #1.
This commit is contained in:
@@ -1,18 +1,21 @@
|
||||
import importlib
|
||||
from database.models import EmblemData, OathData, OathSuitData, OathSuitSkillData, PrimerData, Session, EquData, StoneData, SuitData, EnchantData, JadeData
|
||||
from collections.abc import Sequence
|
||||
from functools import cache
|
||||
from sqlalchemy.orm import Session
|
||||
from database.models import EmblemData, OathData, OathSuitData, OathSuitSkillData, PrimerData, EquData, SuitData, EnchantData, JadeData
|
||||
from database.connect import get_db_engine as get_engine
|
||||
|
||||
|
||||
def parse_to_number_list(info: str, default: list[float] = [0]) -> list[float]:
|
||||
return default if not info else [float(i) for i in info.split(',')]
|
||||
def parse_to_number_list(info: str, default: Sequence[float] = (0,)) -> list[float]:
|
||||
return list(default) if not info else [float(i) for i in info.split(',')]
|
||||
|
||||
|
||||
def parse_to_string_list(info: str, default: list[str] = ['']) -> list[str]:
|
||||
return default if not info else [i for i in info.split(',')]
|
||||
def parse_to_string_list(info: str, default: Sequence[str] = ('',)) -> list[str]:
|
||||
return list(default) if not info else [i for i in info.split(',')]
|
||||
|
||||
|
||||
def parse_to_int_list(info: str, default: list[int] = [0]) -> list[int]:
|
||||
return default if not info else [int(i) for i in info.split(',')]
|
||||
def parse_to_int_list(info: str, default: Sequence[int] = (0,)) -> list[int]:
|
||||
return list(default) if not info else [int(i) for i in info.split(',')]
|
||||
|
||||
|
||||
class Equ:
|
||||
@@ -89,6 +92,7 @@ class Equipments:
|
||||
self.emblems = []
|
||||
self.suits: list[Suit] = []
|
||||
self.suit_dict: dict[str, Suit] = {}
|
||||
self.suit_id_dict: dict[str, Suit] = {}
|
||||
self.oath_suits: list[OathSuit] = []
|
||||
self.oath_suit_dict: dict[str, OathSuit] = {}
|
||||
self.init_equs()
|
||||
@@ -99,7 +103,6 @@ class Equipments:
|
||||
self.init_jades()
|
||||
self.init_oaths()
|
||||
self.init_oath_suits()
|
||||
self.engine.dispose()
|
||||
|
||||
def init_equs(self):
|
||||
"""从数据库中获取所有装备信息"""
|
||||
@@ -166,6 +169,7 @@ class Equipments:
|
||||
suit_obj = Suit(**suit)
|
||||
self.suits.append(suit_obj)
|
||||
self.suit_dict.setdefault(str(suit['suitId']), []).append(suit_obj)
|
||||
self.suit_id_dict[str(suit_obj.id)] = suit_obj
|
||||
pass
|
||||
pass
|
||||
|
||||
@@ -279,6 +283,7 @@ class Equipments:
|
||||
funs = importlib.import_module('core.equipment.version_0')
|
||||
return funs
|
||||
|
||||
@cache
|
||||
def get_suit_info(self, suitId: str | int, point: int = 0, count: int = 0) -> list[Suit]:
|
||||
"""根据套装点数返回对应适用的套装属性\n
|
||||
新套装只需要传入suitID和point即可,count默认为0\n
|
||||
@@ -295,6 +300,7 @@ class Equipments:
|
||||
result[suit.count] = suit
|
||||
return list(result.values())
|
||||
|
||||
@cache
|
||||
def get_oath_suit_info(self, suitId: str | int, point: int = 0, count: int = 0) -> list['OathSuit']:
|
||||
"""根据套装点数返回对应适用的誓约套装属性\n
|
||||
新套装只需要传入suitID和point即可,count默认为0\n
|
||||
|
||||
Reference in New Issue
Block a user