From f117bc56eb2e3db1b7728b08b87705d2dccee1cb Mon Sep 17 00:00:00 2001 From: qwerdvd <2450899274@qq.com> Date: Sun, 28 May 2023 14:47:49 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=9A=A8=E4=BF=AE=E5=A4=8D=E9=81=97?= =?UTF-8?q?=E5=99=A8=E4=B8=BB=E5=B1=9E=E6=80=A7=E9=94=99=E8=AF=AF=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../effect/Base/Avatar.py | 1 + .../effect/Base/Relic.py | 6 ++--- .../starrailuid_damagecal/effect/Base/Role.py | 26 ++++++++----------- .../effect/Base/WeaponBase.py | 1 + poetry.lock | 6 ++--- 5 files changed, 19 insertions(+), 21 deletions(-) diff --git a/StarRailUID/starrailuid_damagecal/effect/Base/Avatar.py b/StarRailUID/starrailuid_damagecal/effect/Base/Avatar.py index 51a1f3b..22d9338 100644 --- a/StarRailUID/starrailuid_damagecal/effect/Base/Avatar.py +++ b/StarRailUID/starrailuid_damagecal/effect/Base/Avatar.py @@ -47,6 +47,7 @@ class BaseAvatar: self.avatar_attribute_bonus = char['attribute_bonus'] self.avatar_extra_ability = char['extra_ability'] self.avatar_attribute = {} + self.get_attribute() def get_attribute(self): promotion = AvatarPromotion[str(self.avatar_id)][ diff --git a/StarRailUID/starrailuid_damagecal/effect/Base/Relic.py b/StarRailUID/starrailuid_damagecal/effect/Base/Relic.py index d78c552..77d33e1 100644 --- a/StarRailUID/starrailuid_damagecal/effect/Base/Relic.py +++ b/StarRailUID/starrailuid_damagecal/effect/Base/Relic.py @@ -170,12 +170,12 @@ class RelicSet: self.set_id_counter: List = Counter(set_id_list).most_common() self.check_set() + self.get_attribute() def get_attribute(self): for item in self.__dict__: - if type(self.__dict__[item]) != SingleRelic: - break - self.__dict__[item].get_attribute_() + if type(self.__dict__[item]) == SingleRelic: + self.__dict__[item].get_attribute_() def check_set(self): for item in self.set_id_counter: diff --git a/StarRailUID/starrailuid_damagecal/effect/Base/Role.py b/StarRailUID/starrailuid_damagecal/effect/Base/Role.py index 53fd9f6..baecbc2 100644 --- a/StarRailUID/starrailuid_damagecal/effect/Base/Role.py +++ b/StarRailUID/starrailuid_damagecal/effect/Base/Role.py @@ -29,7 +29,6 @@ class RoleInstance: self.cal_weapon_attr_add() def cal_role_base_attr(self): - self.avatar.get_attribute() avatar_attribute = self.avatar.__dict__['avatar_attribute'] for attribute in avatar_attribute: if attribute in self.base_attr: @@ -37,7 +36,6 @@ class RoleInstance: else: self.base_attr[attribute] = avatar_attribute[attribute] - self.weapon.get_attribute() weapon_attribute = self.weapon.__dict__['weapon_base_attribute'] for attribute in weapon_attribute: if attribute in self.base_attr: @@ -47,20 +45,18 @@ class RoleInstance: def cal_relic_attr_add(self): # 单件属性 - self.relic_set.get_attribute() for relic_type in self.relic_set.__dict__: - if type(self.relic_set.__dict__[relic_type]) != SingleRelic: - break - relic: SingleRelic = self.relic_set.__dict__[relic_type] - for attribute in relic.relic_attribute_bonus: - if attribute in self.attribute_bonus: - self.attribute_bonus[ - attribute - ] += relic.relic_attribute_bonus[attribute] - else: - self.attribute_bonus[ - attribute - ] = relic.relic_attribute_bonus[attribute] + if type(self.relic_set.__dict__[relic_type]) == SingleRelic: + relic: SingleRelic = self.relic_set.__dict__[relic_type] + for attribute in relic.relic_attribute_bonus: + if attribute in self.attribute_bonus: + self.attribute_bonus[ + attribute + ] += relic.relic_attribute_bonus[attribute] + else: + self.attribute_bonus[ + attribute + ] = relic.relic_attribute_bonus[attribute] # 套装面板加成属性 for set_skill in self.relic_set.SetSkill: diff --git a/StarRailUID/starrailuid_damagecal/effect/Base/WeaponBase.py b/StarRailUID/starrailuid_damagecal/effect/Base/WeaponBase.py index bd1aa50..bbe03aa 100644 --- a/StarRailUID/starrailuid_damagecal/effect/Base/WeaponBase.py +++ b/StarRailUID/starrailuid_damagecal/effect/Base/WeaponBase.py @@ -17,6 +17,7 @@ class BaseWeapon: self.weapon_promotion = weapon['promotion'] self.weapon_base_attribute = {} self.weapon_attribute = {} + self.get_attribute() self.weapon_property_ability() @abstractmethod diff --git a/poetry.lock b/poetry.lock index 9345161..984f615 100644 --- a/poetry.lock +++ b/poetry.lock @@ -2,14 +2,14 @@ [[package]] name = "asgiref" -version = "3.7.1" +version = "3.7.2" description = "ASGI specs, helper code, and adapters" category = "dev" optional = false python-versions = ">=3.7" files = [ - {file = "asgiref-3.7.1-py3-none-any.whl", hash = "sha256:33958cb2e4b3cd8b1b06ef295bd8605cde65b11df51d3beab39e2e149a610ab3"}, - {file = "asgiref-3.7.1.tar.gz", hash = "sha256:8de379fcc383bcfe4507e229fc31209ea23d4831c850f74063b2c11639474dd2"}, + {file = "asgiref-3.7.2-py3-none-any.whl", hash = "sha256:89b2ef2247e3b562a16eef663bc0e2e703ec6468e2fa8a5cd61cd449786d4f6e"}, + {file = "asgiref-3.7.2.tar.gz", hash = "sha256:9e0ce3aa93a819ba5b45120216b23878cf6e8525eb3848653452b4192b92afed"}, ] [package.dependencies]