dev
This commit is contained in:
@@ -353,7 +353,7 @@ class Character:
|
||||
for skill in self.skills:
|
||||
if min <= skill.learnLv <= max:
|
||||
if type == -1 or skill.type == type:
|
||||
skill.AddLv(lv, self)
|
||||
skill.lv += 1
|
||||
|
||||
def SetSkillCD(self, min=1, max=100, cd=0, exclude=[50, 85, 100]) -> None:
|
||||
"""
|
||||
@@ -596,7 +596,7 @@ class Character:
|
||||
def calc_equs(self):
|
||||
"""计算装备基础效果、附魔、贴膜"""
|
||||
effects = get_equipment(self.equVersion).funs
|
||||
for detail in [(item.equInfo,item.fusionInfo,item.enchant) for item in filter(lambda x: x.equInfo is not None, self.charEquipInfo.values())]:
|
||||
for detail in [(item.equInfo,item.fusionInfo,item.enchant,item.emblem_0,item.emblem_1) for item in filter(lambda x: x.equInfo is not None, self.charEquipInfo.values())]:
|
||||
equ = detail[0]
|
||||
fusion = detail[1]
|
||||
enchat = detail[2]
|
||||
@@ -612,6 +612,22 @@ class Character:
|
||||
fun(self)
|
||||
# 附魔
|
||||
fun = effects.enchant_func_list.get(str(enchat), None)
|
||||
if fun is not None:
|
||||
fun(self)
|
||||
# 徽章效果
|
||||
emblem_0 = detail[3]
|
||||
emblem_1 = detail[4]
|
||||
if str(emblem_1).isdigit():
|
||||
fun = effects.emblem_func_list.get(str(emblem_0), None)
|
||||
if fun is not None:
|
||||
fun(self)
|
||||
else:
|
||||
# 白金徽章处理
|
||||
skill = self.GetSkillByName(emblem_0)
|
||||
if skill is not None:
|
||||
skill.lv += 1
|
||||
self.SetStatus(四维=8)
|
||||
fun = effects.emblem_func_list.get(str(emblem_1), None)
|
||||
if fun is not None:
|
||||
fun(self)
|
||||
# 贴膜
|
||||
@@ -624,6 +640,28 @@ class Character:
|
||||
# 获取装备额外属性
|
||||
fun(self)
|
||||
|
||||
def calc_avatar(self, avatar: dict):
|
||||
"""计算时装效果"""
|
||||
equ = get_equipment(self.equVersion)
|
||||
dress = {key: value for key, value in avatar.items() if key in ['头发', '帽子', '脸部','胸部','上衣','腰带','下装','鞋']}
|
||||
equ.funs.calc_dress_effect(dress,self)
|
||||
avatarElse = {key: value for key, value in avatar.items() if key not in ['头发', '帽子', '脸部','胸部','上衣','腰带','下装','鞋']}
|
||||
for key in avatarElse:
|
||||
value = avatarElse[key].get('enchant', None)
|
||||
emblem_0 = avatarElse[key].get('emblem_0', None)
|
||||
emblem_1 = avatarElse[key].get('emblem_1', None)
|
||||
if value is not None:
|
||||
fun = equ.funs.enchant_func_list.get(str(value), None)
|
||||
if fun is not None:
|
||||
fun(self)
|
||||
for i in [emblem_0, emblem_1]:
|
||||
if i is None:
|
||||
continue
|
||||
fun = equ.funs.emblem_func_list.get(str(i), None)
|
||||
if fun is not None:
|
||||
fun(self)
|
||||
pass
|
||||
|
||||
def calc_basic(self):
|
||||
"""计算基础属性:防具精通、增幅、强化等"""
|
||||
# 防具精通跟随装备品级
|
||||
@@ -688,6 +726,8 @@ class Character:
|
||||
# 角色基础属性
|
||||
self.SetBaseStatus()
|
||||
# 辟邪玉计算
|
||||
# 时装计算
|
||||
self.calc_avatar(setInfo.get('avatar', {}))
|
||||
# 精通、增幅、强化计算
|
||||
self.calc_basic()
|
||||
# 部位效果计算
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
from .suit import suit_func_list
|
||||
from .jade import jade_func_list
|
||||
from .equ import equ_func_list
|
||||
from .avatar import get_dress_list
|
||||
from .avatar import get_dress_list,calc_dress_effect
|
||||
from .enchant import enchant_func_list
|
||||
from .emblem import emblem_func_list
|
||||
|
||||
options = [
|
||||
{'id': 1, 'name': '龙战八荒,', 'options': ['BUFF OFF', 'BUFF ON', '期望']},
|
||||
|
||||
@@ -57,7 +57,9 @@ class 装扮:
|
||||
elif str(选项) == '0':
|
||||
pass
|
||||
else:
|
||||
角色.单技能加成(名称=选项, lv=1)
|
||||
skill = 角色.GetSkillByName(选项)
|
||||
if skill is not None:
|
||||
skill.lv += 1
|
||||
|
||||
|
||||
class 神器装扮头发(装扮):
|
||||
@@ -357,3 +359,41 @@ def get_dress_list(skills_coat:list[str] = [],skills_pants:list[str] = []) -> di
|
||||
data["name"] = f"{dress.品质}装扮{dress.部位}"
|
||||
dress_list[部位].append(data)
|
||||
return dress_list
|
||||
|
||||
def calc_dress_effect(avatar,char):
|
||||
"""
|
||||
计算装扮效果
|
||||
"""
|
||||
时装品级列表 = {}
|
||||
for 部位 in avatar:
|
||||
id = avatar[部位].get("id")
|
||||
if id is None:
|
||||
continue
|
||||
时装 = 装扮集合[int(id)]
|
||||
时装.效果(角色=char, 选项=avatar[部位].get("option"))
|
||||
时装品级列表[时装.套装] = 时装品级列表.get(时装.套装, 0) + 1
|
||||
|
||||
套装集合: list[装扮套装] = []
|
||||
|
||||
for 套装 in 装扮套装集合:
|
||||
数量 = 时装品级列表.get(套装.名称, 0)
|
||||
if 数量 > 0:
|
||||
if 数量 >= 套装.所需数量:
|
||||
查找 = len(
|
||||
[
|
||||
i
|
||||
for i in 套装集合
|
||||
if hasattr(i, "兼容于")
|
||||
and i.兼容于 == 套装.名称
|
||||
and i.所需数量 == 套装.所需数量
|
||||
]
|
||||
)
|
||||
if 查找 == 0:
|
||||
套装集合.append(套装)
|
||||
else:
|
||||
if hasattr(套装, "兼容于") and 套装.兼容于 is not None:
|
||||
数量 += 时装品级列表.get(套装.兼容于, 0)
|
||||
时装品级列表[套装.兼容于] = 数量
|
||||
时装品级列表.pop(套装.名称)
|
||||
for 套装 in 套装集合:
|
||||
套装.效果(char)
|
||||
Reference in New Issue
Block a user