feat:改造特效伤害
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
import importlib
|
||||
from collections.abc import Sequence
|
||||
from functools import cache
|
||||
import re
|
||||
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
|
||||
@@ -42,6 +43,7 @@ class Equ:
|
||||
Attack: list[float] | float
|
||||
Buffer: list[float] | float
|
||||
max_adaptation: int
|
||||
effectDamage: list[float]
|
||||
|
||||
def __init__(self, **kwargs):
|
||||
self.__dict__.update(kwargs)
|
||||
@@ -128,6 +130,8 @@ class Equipments:
|
||||
setattr(item, attr, value)
|
||||
equ_dict = {k: v for k, v in item.__dict__.items() if not k.startswith('_')}
|
||||
equ_dict['max_adaptation'] = max_adaptation
|
||||
effect_damage = re.findall(r'(?:伤害量|攻击力) : ([\d,]+)%', equ_dict.get('detail', '') if equ_dict.get('detail', '') else '')
|
||||
equ_dict['effectDamage'] = [float(i.replace(',', '')) for i in effect_damage] if effect_damage else []
|
||||
equ = Equ(**equ_dict)
|
||||
self.equs.append(equ)
|
||||
self.equ_dict[equ.id] = equ
|
||||
@@ -171,6 +175,8 @@ class Equipments:
|
||||
suit['Attack'] = 0 if i - 1 >= len(attacks) else attacks[i - 1]
|
||||
buffers = parse_to_number_list(suit['Buffer'], [0])
|
||||
suit['Buffer'] = 0 if i - 1 >= len(buffers) else buffers[i - 1]
|
||||
effect_damage = re.findall(r'(?:伤害量|攻击力) : ([\d,]+)%', suit.get('value', '') if suit.get('value', '') else '')
|
||||
suit['effectDamage'] = [float(i.replace(',', '')) for i in effect_damage] if effect_damage else []
|
||||
suit_obj = Suit(**suit)
|
||||
self.suits.append(suit_obj)
|
||||
self.suit_dict.setdefault(str(suit['suitId']), []).append(suit_obj)
|
||||
@@ -256,8 +262,11 @@ class Equipments:
|
||||
buffers = parse_to_number_list(skill['Buffer'], [0])
|
||||
skill['Buffer'] = 0 if i - 1 >= len(buffers) else buffers[i - 1]
|
||||
skill['level'] = i
|
||||
effect_damage = re.findall(r'(?:伤害量|攻击力) : ([\d,]+)%', skill.get('value', '') if skill.get('value', '') else '')
|
||||
skill['effectDamage'] = [float(i.replace(',', '')) for i in effect_damage] if effect_damage else []
|
||||
skill_obj = OathSuitSkill(**skill)
|
||||
skill_list.append(skill_obj)
|
||||
|
||||
for item in db_list:
|
||||
lvs = len(item.point.split(','))
|
||||
suits = {k: v for k, v in item.__dict__.items() if not k.startswith('_')}
|
||||
@@ -365,6 +374,7 @@ class Oath:
|
||||
max_adaptation: int
|
||||
itemType: str
|
||||
itemDetailType: str
|
||||
effectDamage: list[float]
|
||||
|
||||
def __init__(self, **kwargs):
|
||||
self.__dict__.update(kwargs)
|
||||
@@ -399,6 +409,7 @@ class OathSuitSkill:
|
||||
value: str
|
||||
bufferValue: str
|
||||
level: int
|
||||
effectDamage: list[float]
|
||||
|
||||
def __init__(self, **kwargs):
|
||||
for key in ['SkillAttack', 'Attack', 'Buffer']:
|
||||
@@ -421,6 +432,7 @@ class OathSuit:
|
||||
imageUrl: str
|
||||
SkillAttack: float
|
||||
Attack: float
|
||||
Buffer: float
|
||||
skills: list[OathSuitSkill]
|
||||
|
||||
def __init__(self, **kwargs):
|
||||
|
||||
Reference in New Issue
Block a user