🚨修复遗器属性未被计入的bug

This commit is contained in:
qwerdvd 2023-05-26 20:42:02 +08:00
parent 965de7721f
commit 2b07f786b8
4 changed files with 20 additions and 2 deletions

View File

@ -17,6 +17,7 @@ async def cal(char_data: Dict):
raw_data['avatar']['level'] = char.char_level
raw_data['avatar']['rank'] = char.char_rank
raw_data['avatar']['promotion'] = char.char_promotion
raw_data['avatar']['attribute_bonus'] = char.attribute_bonus
raw_data['weapon']['id'] = char.equipment['equipmentID']
raw_data['weapon']['level'] = char.equipment['equipmentLevel']
@ -28,4 +29,5 @@ async def cal(char_data: Dict):
role = RoleInstance(raw_data)
await role.cal_role_base_attr()
await role.cal_relic_attr_add()
await role.cal_avatar_attr_add()
return '还没写完呢'

View File

@ -37,6 +37,7 @@ class BaseAvatar:
self.avatar_rank = char['rank']
self.avatar_promotion = char['promotion']
self.avatar_attribute = {}
self.avatar_attribute_bonus = char['attribute_bonus']
async def get_attribute(self):
promotion = AvatarPromotion[str(self.avatar_id)][

View File

@ -65,4 +65,6 @@ class RelicSet:
async def get_attribute(self):
for relic in self.__dict__:
if relic == 'set_id_counter':
break
await self.__dict__[relic].get_attribute_()

View File

@ -1,9 +1,13 @@
from typing import Dict
from mpmath import mp
from .Avatar import Avatar
from .Weapon import Weapon
from .Relic import RelicSet, SingleRelic
mp.dps = 14
class RoleInstance:
def __init__(self, raw_data: Dict):
@ -32,7 +36,6 @@ class RoleInstance:
self.base_attr[attribute] += weapon_attribute[attribute]
else:
self.base_attr[attribute] = weapon_attribute[attribute]
print(self.base_attr)
async def cal_relic_attr_add(self):
await self.relic_set.get_attribute()
@ -49,4 +52,14 @@ class RoleInstance:
self.attribute_bonus[
attribute
] = relic.relic_attribute_bonus[attribute]
print(self.attribute_bonus)
async def cal_avatar_attr_add(self):
attribute_bonus = self.avatar.avatar_attribute_bonus
for bonus in attribute_bonus:
status_add = bonus['statusAdd']
bonus_property = status_add['property']
value = mp.mpf(status_add['value'])
if bonus_property in self.attribute_bonus:
self.attribute_bonus[bonus_property] += value
else:
self.attribute_bonus[bonus_property] = value