dev
This commit is contained in:
@@ -0,0 +1,120 @@
|
||||
from core.basic.equipment import get_equipment
|
||||
from core.basic.property import CharacterInfo
|
||||
from .base import CharacterBase
|
||||
|
||||
|
||||
class CharacterInfoMixin(CharacterBase):
|
||||
"""角色信息查询相关方法(用于前端展示)"""
|
||||
|
||||
def getInfo(self):
|
||||
"""返回到前端信息"""
|
||||
info = {}
|
||||
info['role'] = self.role
|
||||
info['alter'] = self.name
|
||||
info['equVersion'] = self.equVersion
|
||||
info['name'] = self.nameCN
|
||||
info['weapons'] = self.武器选项
|
||||
info['subweapons'] = self.副武器选项
|
||||
info['buffer'] = self.buffer
|
||||
if self.buffer:
|
||||
info['properties'] = self.防具精通属性
|
||||
info['properties'] = self.输出类型选项
|
||||
skillInfo = []
|
||||
skill_clothes = []
|
||||
platinum = []
|
||||
for skill in self.skills:
|
||||
if 15 <= skill.learnLv <= 70 and skill.learnLv not in [48, 50]:
|
||||
platinum.append(skill.name)
|
||||
if skill.learnLv <= 95:
|
||||
skill_clothes.append(skill.name)
|
||||
skillInfo.append(
|
||||
{
|
||||
'id': skill.id,
|
||||
'name': skill.name,
|
||||
'icon': skill.icon,
|
||||
'type': skill.type,
|
||||
'learnLv': skill.learnLv,
|
||||
'masterLv': skill.masterLv,
|
||||
'maxLearnLv': skill.calculate_lv(),
|
||||
'maxLv': skill.maxLv,
|
||||
'position': skill.position,
|
||||
'line': skill.line,
|
||||
'bind': skill.bind,
|
||||
'hasVP': skill.hasVP,
|
||||
'hasUP': skill.hasUP,
|
||||
'upType': skill.upType,
|
||||
'uuid': skill.uuid,
|
||||
'vps': [{'name': i['name'], 'desc': i['desc']} for i in skill.vps],
|
||||
}
|
||||
)
|
||||
info['skills'] = skillInfo
|
||||
equInfos = get_equipment(self.equVersion)
|
||||
equs = []
|
||||
suits = []
|
||||
stones = []
|
||||
for i in equInfos.equs:
|
||||
if i.itemType == '武器' and i.itemDetailType not in self.武器选项:
|
||||
continue
|
||||
equs.append(i.__dict__)
|
||||
for i in equInfos.suits:
|
||||
suits.append(i.__dict__)
|
||||
for i in equInfos.stones:
|
||||
stones.append(i.__dict__)
|
||||
info['equips'] = equs
|
||||
info['suits'] = suits
|
||||
info['stones'] = stones
|
||||
key = '辅助' if self.buffer else '输出'
|
||||
info['enchants'] = list(filter(lambda x: key in x['categorize'], equInfos.enchants))
|
||||
info['emblems'] = [i for i in equInfos.emblems]
|
||||
info['avatar'] = equInfos.funs.get_dress_list(skill_clothes)
|
||||
info['jades'] = equInfos.jades
|
||||
info['options'] = equInfos.funs.options
|
||||
info['sundry'] = equInfos.funs.sundryList
|
||||
for skill in platinum:
|
||||
info['emblems'].append(
|
||||
{
|
||||
'id': skill,
|
||||
'fame': 232,
|
||||
'position': ['辅助装备', '魔法石'],
|
||||
'detail': skill + ' Lv+1' + ' 四维 + 8',
|
||||
'categorize': ['技能'],
|
||||
'rarity': '白金',
|
||||
}
|
||||
)
|
||||
return info
|
||||
|
||||
def getBasicInos(self):
|
||||
res = []
|
||||
attrs = []
|
||||
if self.输出类型.includes('物理'):
|
||||
attrs = ['STR', 'PSTR', 'AtkP', 'PAtkP', 'CriticalPP', 'CriticalP']
|
||||
if self.输出类型.includes('魔法'):
|
||||
attrs = ['INT', 'PINT', 'AtkM', 'PAtkM', 'CriticalMP', 'CriticalM']
|
||||
for attr in attrs + ['PDamage', 'PDamageC', 'PDamageB', 'SpeedA', 'SpeedM', 'SpeedR']:
|
||||
temp = getattr(CharacterInfo, attr)
|
||||
res.append(
|
||||
{
|
||||
'name': temp.name,
|
||||
'value': temp.value(getattr(self, attr)),
|
||||
'icon': temp.icon,
|
||||
}
|
||||
)
|
||||
keys = ['火', '冰', '光', '暗']
|
||||
for index in range(0, 4):
|
||||
temp = getattr(CharacterInfo, f'ElementDB{index}')
|
||||
res.append(
|
||||
{
|
||||
'name': temp.name,
|
||||
'value': temp.value(getattr(self, 'ElementDB')[keys[index]]),
|
||||
'icon': temp.icon,
|
||||
}
|
||||
)
|
||||
temp = getattr(CharacterInfo, f'ElementR{index}')
|
||||
res.append(
|
||||
{
|
||||
'name': temp.name,
|
||||
'value': temp.value(getattr(self, 'ElementR')[keys[index]]),
|
||||
'icon': temp.icon,
|
||||
}
|
||||
)
|
||||
return res
|
||||
Reference in New Issue
Block a user