diff --git a/backend/core/basic/formula.py b/backend/core/basic/formula.py index 909aade0..8bd1306c 100644 --- a/backend/core/basic/formula.py +++ b/backend/core/basic/formula.py @@ -1,9 +1,9 @@ # 看看就行, 计算细节通用的数据 # region -def 强化技攻(强化等级:int, 强化类型:int, 部位:str): - 增幅技攻 = [0] * 10 + [0.2, 0.4, 0.7, 1.0, 1.2, 1.4, 1.6, 1.8, 2.0, 2.2, 2.4,2.6,2.8,3.0,3.2,3.4,3.6,3.8,4.0,4.2,4.4] - 强化技攻 = [0] * 12 + [0.4, 0.7, 1.0, 1.2, 1.4, 1.6, 1.8, 2.0, 2.2, 2.4,2.6,2.8,3.0,3.2,3.4,3.6,3.8,4.0,4.2,4.4] +def 强化技攻(强化等级: int, 强化类型: int, 部位: str): + 增幅技攻 = [0] * 10 + [0.2, 0.4, 0.7, 1.0, 1.2, 1.4, 1.6, 1.8, 2.0, 2.2, 2.4, 2.6, 2.8, 3.0, 3.2, 3.4, 3.6, 3.8, 4.0, 4.2, 4.4] + 强化技攻 = [0] * 12 + [0.4, 0.7, 1.0, 1.2, 1.4, 1.6, 1.8, 2.0, 2.2, 2.4, 2.6, 2.8, 3.0, 3.2, 3.4, 3.6, 3.8, 4.0, 4.2, 4.4] if 强化类型 == 0: if 部位 not in ['武器', '耳环']: return 0 @@ -131,54 +131,55 @@ def 勋章计算(装备等级, 品质, 强化等级): 武器成长系数 = {'普通': 0.4, '高级': 0.7, '稀有': 1, '神器': 1.25, '勇者': 1.1, '传说': 1.35, '史诗': 1.45, '神话': 1.55} 武器品级加分 = {'普通': 8, '高级': 8, '稀有': 10, '神器': 12, '勇者': 11, '传说': 13, '史诗': 14, '神话': 15} 武器类型系数 = { - '短剑': (1.095, 1.115), - '太刀': (1.095, 1.105), - '钝器': (1.11, 1.095), - '巨剑': (1.12, 1.09), - '光剑': (1.093, 1.09), - '手套': (1.095, 1.115), - '臂铠': (1.12, 1.09), - '爪': (1.1, 1.1), - '拳套': (1.105, 1.095), - '东方棍': (1.095, 1.1), - '左轮枪': (1.087, 1.077), - '自动手枪': (1.064, 1.094), - '步枪': (1.1, 1.085), - '手炮': (1.106, 1.064), - '手弩': (1.075, 1.085), - '矛': (1.12, 1.085), - '棍棒': (1.108, 1.09), - '魔杖': (1.09, 1.11), - '法杖': (1.095, 1.12), - '扫把': (1.1, 1.11), - '十字架': (1.1, 1.095), - '念珠': (1.09, 1.115), - '图腾': (1.105, 1.09), - '镰刀': (1.105, 1.105), - '战斧': (1.12, 1.085), - '匕首': (1.09, 1.089), - '双剑': (1.102, 1.08), - '手杖': (1.081, 1.115), - '苦无': (1.09, 1.11), - '长枪': (1.105, 1.09), - '战戟': (1.12, 1.085), - '光枪': (1.095, 1.115), - '暗矛': (1.095, 1.105), - '长刀': (1.108, 1.09), - '小太刀': (1.1, 1.1), - '重剑': (1.12, 1.09), - '源力剑': (1.095, 1.115), + '短剑': (1.095, 1.115, 1.11), + '太刀': (1.095, 1.105, 1.1), + '钝器': (1.11, 1.095, 1.1), + '巨剑': (1.12, 1.09, 1.1), + '光剑': (1.093, 1.09, 1.1), + '手套': (1.095, 1.115, 1.1), + '臂铠': (1.12, 1.09, 1.11), + '爪': (1.1, 1.1, 1.11), + '拳套': (1.105, 1.095, 1.11), + '东方棍': (1.095, 1.1, 1.11), + '左轮枪': (1.087, 1.077, 1.11), + '自动手枪': (1.064, 1.094, 1.11), + '步枪': (1.1, 1.085, 1.11), + '手炮': (1.106, 1.064, 1.11), + '手弩': (1.075, 1.085, 1.11), + '矛': (1.12, 1.085, 1.11), + '棍棒': (1.108, 1.09, 1.11), + '魔杖': (1.09, 1.11, 1.11), + '法杖': (1.095, 1.12, 1.11), + '扫把': (1.1, 1.11, 1.11), + '十字架': (1.1, 1.095, 1.11), + '念珠': (1.09, 1.115, 1.11), + '图腾': (1.105, 1.09, 1.11), + '镰刀': (1.105, 1.105, 1.11), + '战斧': (1.12, 1.085, 1.11), + '匕首': (1.09, 1.089, 1.11), + '双剑': (1.102, 1.08, 1.11), + '手杖': (1.081, 1.115, 1.11), + '苦无': (1.09, 1.11, 1.11), + '长枪': (1.105, 1.09, 1.11), + '战戟': (1.12, 1.085, 1.11), + '光枪': (1.095, 1.115, 1.11), + '暗矛': (1.095, 1.105, 1.11), + '长刀': (1.108, 1.09, 1.11), + '小太刀': (1.1, 1.1, 1.11), + '重剑': (1.12, 1.09, 1.11), + '源力剑': (1.095, 1.115, 1.11), # todo - '神弦弓': (1.1, 1.095), - '玄机弓': (1.108, 1.09), - '强攻弩': (1.12, 1.09), - '妖影弓': (1.095, 1.1), - '嵌合弓': (1.1, 1.085), + '神弦弓': (1.1, 1.095, 1.11), + '玄机弓': (1.108, 1.09, 1.11), + '强攻弩': (1.12, 1.09, 1.11), + '妖影弓': (1.095, 1.1, 1.11), + '嵌合弓': (1.1, 1.085, 1.11), } def 武器强化计算(装备等级, 品质, 强化等级, 武器类型, 类型, 默认系数=0): - 武器系数 = max(武器类型系数[武器类型][0 if 类型 == '物理' else 1], 默认系数) + index = 0 if 类型 == '物理' else (1 if 类型 == '魔法' else ()) + 武器系数 = max(武器类型系数[武器类型][index], 默认系数) return int((装备等级 + 武器品级加分[品质]) / 8 * 武器成长系数[品质] * 武器强化系数[强化等级] * 武器系数) @@ -313,7 +314,7 @@ def 武器MP系数(武器类型, 输出类型) -> float: 品级加分 = {'稀有': 5, '神器': 8, '勇者': 11, '传说': 14, '史诗': 17, '智慧产物': 17, '神话': 18} -def 精通计算(装备等级, 品质, 强化等级, 部位, 甲类,属性='',carry=True): +def 精通计算(装备等级, 品质, 强化等级, 部位, 甲类, 属性='', carry=True): if carry: return round((20 + 甲类系数[甲类] * (装备等级 + 品级加分[品质] + int(强化等级 / 3))) * 部位系数[部位], 2) else: @@ -586,9 +587,11 @@ def 获取基础属性(角色, 职业): 精神 = int(角色数据[7] + 角色数据[3] * min(14, 当前等级 - 1) + 职业数据[3] * max(当前等级 - 15, 0) + 93 + 当前等级) return (力量, 智力, 体力, 精神) + def 获取唤醒属性(): return 335 if 当前等级 >= 75 else (145 if 当前等级 >= 15 else 0) + def 获取属性抗性基础(角色, 职业): return 职业属性抗性数据[职业 + '-' + 角色]