This commit was merged in pull request #1.
This commit is contained in:
2026-06-02 20:56:07 +08:00
parent f824177aa5
commit bb3ad71d21
38 changed files with 1304 additions and 532 deletions
+14 -8
View File
@@ -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