dev
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
import importlib
|
import importlib
|
||||||
from database.models import EmblemData, Session, EquData, StoneData, SuitData, EnchantData,JadeData
|
from database.models import EmblemData, OathData, Session, EquData, StoneData, SuitData, EnchantData,JadeData
|
||||||
from database.connect import get_db_engine as get_engine
|
from database.connect import get_db_engine as get_engine
|
||||||
|
|
||||||
def parse_to_number_list(info: str, default: list[float] = [0]) -> list[float]:
|
def parse_to_number_list(info: str, default: list[float] = [0]) -> list[float]:
|
||||||
@@ -45,7 +45,6 @@ class Equ:
|
|||||||
temp[attr] = value[min(adaptation, len(value) - 1)] if isinstance(value, list) else value
|
temp[attr] = value[min(adaptation, len(value) - 1)] if isinstance(value, list) else value
|
||||||
return Equ(**temp)
|
return Equ(**temp)
|
||||||
|
|
||||||
|
|
||||||
class Suit:
|
class Suit:
|
||||||
id: int
|
id: int
|
||||||
suitId: int
|
suitId: int
|
||||||
@@ -62,7 +61,6 @@ class Suit:
|
|||||||
def __init__(self, **kwargs):
|
def __init__(self, **kwargs):
|
||||||
self.__dict__.update(kwargs)
|
self.__dict__.update(kwargs)
|
||||||
|
|
||||||
|
|
||||||
class Equipments:
|
class Equipments:
|
||||||
def __init__(self, version='0'):
|
def __init__(self, version='0'):
|
||||||
self.version = version
|
self.version = version
|
||||||
@@ -176,6 +174,25 @@ class Equipments:
|
|||||||
pass
|
pass
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
def init_oaths(self):
|
||||||
|
"""从数据库中获取所有誓约信息"""
|
||||||
|
with Session(self.engine) as session:
|
||||||
|
db_list = session.query(OathData).all()
|
||||||
|
keys = [key for key in OathData.__dict__.keys() if key[0].isupper()]
|
||||||
|
for item in db_list:
|
||||||
|
max_adaptation = 0
|
||||||
|
item.id = str(item.id)
|
||||||
|
for attr in keys:
|
||||||
|
value = parse_to_number_list(getattr(item, attr))
|
||||||
|
max_adaptation = max(max_adaptation, len(value) - 1)
|
||||||
|
setattr(item, attr, value)
|
||||||
|
oath_dict = {k: v for k, v in item.__dict__.items() if not k.startswith('_')}
|
||||||
|
oath_dict['max_adaptation'] = max_adaptation
|
||||||
|
oath = Oath(**oath_dict)
|
||||||
|
self.oaths.append(oath)
|
||||||
|
self.oath_dict[oath.id] = oath
|
||||||
|
|
||||||
|
|
||||||
def init_func(self):
|
def init_func(self):
|
||||||
"""根据装备版本加载装备效果"""
|
"""根据装备版本加载装备效果"""
|
||||||
try:
|
try:
|
||||||
@@ -216,6 +233,47 @@ class EquEffect:
|
|||||||
self.cd = cd
|
self.cd = cd
|
||||||
self.data = data
|
self.data = data
|
||||||
|
|
||||||
|
class Oath:
|
||||||
|
id: str
|
||||||
|
name: str
|
||||||
|
rarity: str
|
||||||
|
position: list[str]
|
||||||
|
suit: list[str]
|
||||||
|
Point: list[float] | float
|
||||||
|
categorize: str
|
||||||
|
imageUrl: str
|
||||||
|
detail: str
|
||||||
|
bufferDetail: str
|
||||||
|
STR: list[float] | float
|
||||||
|
INT: list[float] | float
|
||||||
|
Vitality: list[float] | float
|
||||||
|
Spirit: list[float] | float
|
||||||
|
AtkP: list[float] | float
|
||||||
|
AtkM: list[float] | float
|
||||||
|
AtkI: list[float] | float
|
||||||
|
SkillAttack: list[float] | float
|
||||||
|
Attack: list[float] | float
|
||||||
|
Buffer: list[float] | float
|
||||||
|
wearUrls: list[str]
|
||||||
|
max_adaptation: int
|
||||||
|
|
||||||
|
def __init__(self, **kwargs):
|
||||||
|
self.__dict__.update(kwargs)
|
||||||
|
|
||||||
|
def adapt(self, adaptation: int = 0):
|
||||||
|
"""调适
|
||||||
|
|
||||||
|
Args:
|
||||||
|
adaptation (int): 调适等级
|
||||||
|
"""
|
||||||
|
temp = self.__dict__.copy()
|
||||||
|
keys = [key for key in OathData.__dict__.keys() if key[0].isupper()]
|
||||||
|
for attr in keys:
|
||||||
|
value = getattr(self, attr)
|
||||||
|
temp[attr] = value[min(adaptation, len(value) - 1)] if isinstance(value, list) else value
|
||||||
|
return Oath(**temp)
|
||||||
|
|
||||||
|
|
||||||
global equ0
|
global equ0
|
||||||
equ0 = Equipments("0")
|
equ0 = Equipments("0")
|
||||||
|
|
||||||
|
|||||||
@@ -27,7 +27,6 @@ class SuitData(Base):
|
|||||||
bufferValue = Column(Text)
|
bufferValue = Column(Text)
|
||||||
fame = Column(Integer)
|
fame = Column(Integer)
|
||||||
|
|
||||||
|
|
||||||
class EquData(Base):
|
class EquData(Base):
|
||||||
"""
|
"""
|
||||||
装备属性映射
|
装备属性映射
|
||||||
@@ -116,4 +115,88 @@ class JadeData(Base):
|
|||||||
min = Column(Integer)
|
min = Column(Integer)
|
||||||
max = Column(Integer)
|
max = Column(Integer)
|
||||||
unit = Column(Text)
|
unit = Column(Text)
|
||||||
pre = Column(Float)
|
pre = Column(Float)
|
||||||
|
|
||||||
|
class OathData(Base):
|
||||||
|
"""
|
||||||
|
誓约属性映射
|
||||||
|
首字母大写的属性为调适可能会影响到的属性
|
||||||
|
"""
|
||||||
|
__tablename__ = 'oath'
|
||||||
|
|
||||||
|
id = Column(Integer, primary_key=True)
|
||||||
|
name = Column(Text)
|
||||||
|
rarity = Column(Text)
|
||||||
|
position = Column(Text)
|
||||||
|
Point = Column(Integer)
|
||||||
|
categorize = Column(Text)
|
||||||
|
imageUrl = Column(Text)
|
||||||
|
detail = Column(Text)
|
||||||
|
bufferDetail = Column(Text)
|
||||||
|
STR = Column(Text)
|
||||||
|
INT = Column(Text)
|
||||||
|
Vitality = Column(Text)
|
||||||
|
Spirit = Column(Text)
|
||||||
|
AtkP = Column(Text)
|
||||||
|
AtkM = Column(Text)
|
||||||
|
AtkI = Column(Text)
|
||||||
|
SkillAttack = Column(Text)
|
||||||
|
Attack = Column(Text)
|
||||||
|
Buffer = Column(Text)
|
||||||
|
suit = Column(Text)
|
||||||
|
|
||||||
|
class PrimerData(Base):
|
||||||
|
"""
|
||||||
|
誓约属性映射
|
||||||
|
首字母大写的属性为调适可能会影响到的属性
|
||||||
|
"""
|
||||||
|
__tablename__ = 'primer'
|
||||||
|
|
||||||
|
id = Column(Integer, primary_key=True)
|
||||||
|
name = Column(Text)
|
||||||
|
rarity = Column(Text)
|
||||||
|
position = Column(Text)
|
||||||
|
Point = Column(Integer)
|
||||||
|
categorize = Column(Text)
|
||||||
|
imageUrl = Column(Text)
|
||||||
|
detail = Column(Text)
|
||||||
|
bufferDetail = Column(Text)
|
||||||
|
STR = Column(Text)
|
||||||
|
INT = Column(Text)
|
||||||
|
Vitality = Column(Text)
|
||||||
|
Spirit = Column(Text)
|
||||||
|
AtkP = Column(Text)
|
||||||
|
AtkM = Column(Text)
|
||||||
|
AtkI = Column(Text)
|
||||||
|
SkillAttack = Column(Text)
|
||||||
|
Attack = Column(Text)
|
||||||
|
Buffer = Column(Text)
|
||||||
|
suit = Column(Text)
|
||||||
|
|
||||||
|
class OathSuitData(Base):
|
||||||
|
__tablename__ = 'oathSuit'
|
||||||
|
|
||||||
|
id = Column(Integer, primary_key=True)
|
||||||
|
key = Column(Text)
|
||||||
|
suitId = Column(Integer)
|
||||||
|
suitName = Column(Text)
|
||||||
|
rarity = Column(Text)
|
||||||
|
name = Column(Text)
|
||||||
|
point = Column(Integer)
|
||||||
|
count = Column(Integer)
|
||||||
|
|
||||||
|
class OathSuitSkillData(Base):
|
||||||
|
__tablename__ = 'oathSuitSkill'
|
||||||
|
|
||||||
|
id = Column(Integer, primary_key=True)
|
||||||
|
key = Column(Text)
|
||||||
|
suitId = Column(Integer)
|
||||||
|
skillId = Column(Integer)
|
||||||
|
name = Column(Text)
|
||||||
|
rarity = Column(Text)
|
||||||
|
imageUrl = Column(Text)
|
||||||
|
SkillAttack = Column(Float)
|
||||||
|
Attack = Column(Float)
|
||||||
|
Buffer = Column(Float)
|
||||||
|
value = Column(Text)
|
||||||
|
bufferValue = Column(Text)
|
||||||
Reference in New Issue
Block a user