基础计算

This commit is contained in:
2025-03-23 16:12:22 +08:00
parent 3b4a503f01
commit 2502450e5b
2 changed files with 48 additions and 26 deletions
+33 -11
View File
@@ -9,7 +9,7 @@ from core.basic.equipment import get_equipment, EquEffect,Equ
# from core.basic.equipment import equipments # from core.basic.equipment import equipments
# from core.basic.skill import Skill, ActiveSkill, PassiveSkill # from core.basic.skill import Skill, ActiveSkill, PassiveSkill
from .formula import 增幅计算, 精通计算, 获取基础属性 from .formula import 增幅计算, 强化技攻, 武器强化计算, 精通计算, 获取基础属性, 耳环计算, 左右计算, 锻造计算
from .roleinfo import CharacterEquipInfo, get_key_by_value from .roleinfo import CharacterEquipInfo, get_key_by_value
# from .property import 精通计算, 角色基础, CharacterInfo # from .property import 精通计算, 角色基础, CharacterInfo
@@ -268,6 +268,8 @@ class Character:
'AttackP', 'AttackP',
'Buffer', 'Buffer',
'BufferP', 'BufferP',
'Spirit',
'Vitality'
} }
for key in kwargs: for key in kwargs:
if key not in allowed_kwargs: if key not in allowed_kwargs:
@@ -450,19 +452,15 @@ class Character:
for suit in partEqu.suit: for suit in partEqu.suit:
if suitInfo.get(suit, None) is None: if suitInfo.get(suit, None) is None:
suitInfo[suit] = { suitInfo[suit] = {
"point": 0, 'point': 0,
"count": 0, 'count': 0,
} }
if partEqu.Point == 0: if partEqu.Point == 0:
suitInfo[suit]['count'] += 1 suitInfo[suit]['count'] += 1
else: else:
suitInfo[suit]['point'] += partEqu.Point suitInfo[suit]['point'] += partEqu.Point
# 取得点数最高的套装 # 取得点数最高的套装
max_point_suit = max( max_point_suit = max((suit for suit in suitInfo if suitInfo[suit]['point'] > 0), key=lambda suit: suitInfo[suit]['point'], default=None)
(suit for suit in suitInfo if suitInfo[suit]['point'] > 0),
key=lambda suit: suitInfo[suit]['point'],
default=None
)
# 处理没有点数的老套装 # 处理没有点数的老套装
zero_point_suits = [suit for suit in suitInfo if suitInfo[suit]['point'] == 0] zero_point_suits = [suit for suit in suitInfo if suitInfo[suit]['point'] == 0]
suits = zero_point_suits + ([max_point_suit] if max_point_suit is not None else []) suits = zero_point_suits + ([max_point_suit] if max_point_suit is not None else [])
@@ -484,7 +482,7 @@ class Character:
value = 精通计算(115, equ.rarity, reinforce, equ.itemDetailType, self.防具类型) value = 精通计算(115, equ.rarity, reinforce, equ.itemDetailType, self.防具类型)
for key in self.防具精通属性: for key in self.防具精通属性:
key = get_key_by_value(key) key = get_key_by_value(key)
setattr(self, key, getattr(self, key) + value[key]) setattr(self, key, getattr(self, key) + value)
# 115增幅强化品级固定史诗 # 115增幅强化品级固定史诗
for part in self.charEquipInfo.keys(): for part in self.charEquipInfo.keys():
cur = self.charEquipInfo[part] cur = self.charEquipInfo[part]
@@ -493,9 +491,33 @@ class Character:
# 增幅四维 # 增幅四维
value = 增幅计算(115, '史诗', cur.reinforce) value = 增幅计算(115, '史诗', cur.reinforce)
self.SetStatus(STR=value, INT=value, Spirit=value, Vitality=value) self.SetStatus(STR=value, INT=value, Spirit=value, Vitality=value)
# 增幅计算 # 增幅技攻计算
# 武器、特殊装备强化额外效果计算 value = 强化技攻(cur.reinforce, cur.reinforceType, part)
self.SetStatus(SkillAttack=value)
# 武器强化、武器锻造、特殊装备强化额外效果计算
if part == '武器':
# 锻造独立计算
value = 锻造计算(115, '史诗', cur.refine)
self.SetStatus(AtkI = value)
# 传世武器强化系数取所有武器的最高的1.12 # 传世武器强化系数取所有武器的最高的1.12
if cur.equInfo.categorize == '传世武器':
value = 武器强化计算(115, '史诗', cur.reinforce,cur.equInfo.itemDetailType,'物理',1.12)
self.SetStatus(AtkP=value, AtkM=value)
else:
# 强化计算
value = 武器强化计算(115, '史诗', cur.reinforce, cur.equInfo.itemDetailType, '物理')
self.SetStatus(AtkP=value)
value = 武器强化计算(115, '史诗', cur.reinforce, cur.equInfo.itemDetailType, '魔法')
self.SetStatus(AtkM=value)
pass
if part == '耳环':
value = 耳环计算(115, '史诗', cur.reinforce)
self.SetStatus(AtkM=value, AtkP=value,AtkI=value)
pass
if part in ['辅助装备', '魔法石']:
value = 左右计算(115, '史诗', cur.reinforce)
self.SetStatus(STR=value, INT=value, Spirit=value, Vitality=value)
pass
pass pass
def calc_jade(self): def calc_jade(self):
+4 -4
View File
@@ -1,10 +1,10 @@
# 看看就行, 计算细节通用的数据 # 看看就行, 计算细节通用的数据
# region # region
def 强化技攻(强化等级, 强化类型, 部位): def 强化技攻(强化等级:int, 强化类型:int, 部位:str):
增幅技攻 = [0] * 11 + [0.2, 0.4, 0.7, 1.0, 1.2, 1.4, 1.6, 1.8, 2.0, 2.2, 2.4] 增幅技攻 = [0] * 10 + [0.2, 0.4, 0.7, 1.0, 1.2, 1.4, 1.6, 1.8, 2.0, 2.2, 2.4]
强化技攻 = [0] * 13 + [0.4, 0.7, 1.0, 1.2, 1.4, 1.6, 1.8, 2.0, 2.2] 强化技攻 = [0] * 12 + [0.4, 0.7, 1.0, 1.2, 1.4, 1.6, 1.8, 2.0, 2.2]
if 强化类型 == '强化': if 强化类型 == 0:
if 部位 not in ['武器', '耳环']: if 部位 not in ['武器', '耳环']:
return 0 return 0
else: else: