fix:修复职业报错的情况

This commit is contained in:
2026-06-08 14:48:34 +08:00
parent a7e5470e2d
commit 258f06770c
6 changed files with 57 additions and 30 deletions
+19 -1
View File
@@ -1,8 +1,23 @@
import inspect
from ..formula import 获取基础属性
from core.basic.property import CharacterInfo
from .base import CharacterBase
def _skill_error_context(char: CharacterBase, skill, mode: str) -> str:
skill_class = skill.__class__
skill_file = inspect.getsourcefile(skill_class) or inspect.getfile(skill_class)
return (
f'角色={getattr(char, "角色", "")}, '
f'职业={getattr(char, "职业", "")}, '
f'技能={getattr(skill, "name", "")}, '
f'技能类={skill_class.__name__}, '
f'mode={mode}, '
f'文件={skill_file}'
)
class CalcCarryMixin(CharacterBase):
"""输出角色技能伤害计算相关方法"""
@@ -51,7 +66,10 @@ class CalcCarryMixin(CharacterBase):
for i in self.skills:
if i.damage and i.lv > 0:
for mode in i.mode:
temp = i.skillInfo(mode)
try:
temp = i.skillInfo(mode)
except Exception as ex:
raise RuntimeError(f'职业技能计算失败: {_skill_error_context(self, i, mode)}') from ex
if temp[0] > 0:
skillInfos.append(
{