dev
This commit is contained in:
@@ -7,6 +7,7 @@ from typing import Annotated
|
||||
from api.core.Response import Return, response
|
||||
from api.core.Redis import get_redis_info
|
||||
from api.dp import RedisDep, AltersDep
|
||||
from core.basic.equipment import get_equipment
|
||||
from core.character.adventure import get_adv_list
|
||||
from core.basic.character import createCharacter
|
||||
from core.open.helper import get_user_info_by_id
|
||||
@@ -56,6 +57,23 @@ async def get_character_info(request: Request, state: AltersDep, redis: RedisDep
|
||||
return response(data=info)
|
||||
|
||||
|
||||
@router.get('/info/oath/{suitId}/{skillId}')
|
||||
async def get_oath_info(state: AltersDep, suitId: str, skillId: str, rarity: str, redis: RedisDep):
|
||||
def get_info():
|
||||
skill = None
|
||||
version = state.equVersion
|
||||
equ = get_equipment(version)
|
||||
oath = next((x for x in equ.oath_suits if x.suitId == suitId and x.rarity == rarity), None)
|
||||
if oath is not None:
|
||||
oathSkill = next((x for x in oath.skills if x.skillId == skillId), None)
|
||||
if oathSkill is not None:
|
||||
skill = oathSkill.__dict__
|
||||
return skill
|
||||
|
||||
info = get_redis_info(redis, f'dcalc:oath:{rarity}:{skillId}', get_info)
|
||||
return response(data=info)
|
||||
|
||||
|
||||
@router.get('/skill/{skillId}/{level}')
|
||||
async def get_skill_info(state: AltersDep, skillId: str, level: int, redis: RedisDep):
|
||||
"""
|
||||
|
||||
@@ -52,6 +52,7 @@ class CharacterInfoMixin(CharacterBase):
|
||||
equs = []
|
||||
suits = []
|
||||
oaths = []
|
||||
oaths_skills = {}
|
||||
# stones = []
|
||||
for i in equInfos.equs:
|
||||
if i.itemType == '武器' and i.itemDetailType not in self.武器选项:
|
||||
@@ -61,11 +62,33 @@ class CharacterInfoMixin(CharacterBase):
|
||||
suits.append(i.__dict__)
|
||||
for i in equInfos.oaths:
|
||||
oaths.append(i.__dict__)
|
||||
for i in equInfos.oath_suits:
|
||||
if i.suitId not in oaths_skills:
|
||||
oaths_skills[i.suitId] = {'suitInfo': [], 'skills': []}
|
||||
oaths_skills[i.suitId]['suitInfo'].append(
|
||||
{
|
||||
'name': i.name,
|
||||
'rarity': i.rarity,
|
||||
'SkillAttack': i.SkillAttack,
|
||||
'Buffer': i.Buffer,
|
||||
'Attack': i.Attack,
|
||||
}
|
||||
)
|
||||
if len(oaths_skills[i.suitId]['skills']) == 0:
|
||||
for skill in i.skills:
|
||||
oaths_skills[i.suitId]['skills'].append(
|
||||
{
|
||||
'skillId': skill.skillId,
|
||||
'name': skill.name,
|
||||
'icon': skill.imageUrl,
|
||||
}
|
||||
)
|
||||
# for i in equInfos.stones:
|
||||
# stones.append(i.__dict__)
|
||||
info['oaths'] = oaths
|
||||
info['equips'] = equs
|
||||
info['suits'] = suits
|
||||
info['oaths_skills'] = oaths_skills
|
||||
# info['stones'] = stones
|
||||
key = '辅助' if self.buffer else '输出'
|
||||
info['enchants'] = list(filter(lambda x: key in x['categorize'], equInfos.enchants))
|
||||
|
||||
@@ -243,11 +243,11 @@ class Equipments:
|
||||
skills = [x for x in db_skills_list if x.suitId == suit['suitId'] and x.key == suit['key']]
|
||||
suit['level'] = i
|
||||
skillAttaks = parse_to_number_list(suit['SkillAttack'], [0])
|
||||
suit['SkillAttack'] = 0 if i - 1 >= len(skillAttaks) else skillAttaks[i - 1]
|
||||
suit['SkillAttack'] = (0 if len(skillAttaks) == 0 else skillAttaks[0]) if i - 1 >= len(skillAttaks) else skillAttaks[i - 1]
|
||||
attacks = parse_to_number_list(suit['Attack'], [0])
|
||||
suit['Attack'] = 0 if i - 1 >= len(attacks) else attacks[i - 1]
|
||||
suit['Attack'] = (0 if len(attacks) == 0 else attacks[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]
|
||||
suit['Buffer'] = (0 if len(buffers) == 0 else buffers[0]) if i - 1 >= len(buffers) else buffers[i - 1]
|
||||
suit['skills'] = [OathSuitSkill(**{k: v for k, v in skill.__dict__.items() if not k.startswith('_')}) for skill in skills]
|
||||
oath_suit = OathSuit(**suit)
|
||||
self.oath_suits.append(oath_suit)
|
||||
|
||||
Reference in New Issue
Block a user