dev
This commit is contained in:
@@ -33,4 +33,67 @@ uv sync
|
|||||||
|
|
||||||
pnpm run dev:image
|
pnpm run dev:image
|
||||||
pnpm run dev:frontend
|
pnpm run dev:frontend
|
||||||
pnpm run dev:backend
|
pnpm run dev:backend
|
||||||
|
|
||||||
|
### process
|
||||||
|
|
||||||
|
- 装备选择
|
||||||
|
- [x] 武器选择
|
||||||
|
- [x] 套装选择
|
||||||
|
- [x] 贴膜选择
|
||||||
|
- [x] 通宝选择
|
||||||
|
- [ ] 称号宠物选择
|
||||||
|
- [ ] 秘宝选择
|
||||||
|
|
||||||
|
- 技能设置
|
||||||
|
- [x] 技能等级设置
|
||||||
|
- [ ] 觉醒绑定选择
|
||||||
|
- [ ] 技能次数设置
|
||||||
|
- [ ] 技能次数自动计算
|
||||||
|
- [ ] buff数值设置
|
||||||
|
|
||||||
|
- 打造设置
|
||||||
|
- [x] 增幅/强化/锻造
|
||||||
|
- [x] 徽章/附魔/调适
|
||||||
|
- [x] 时装/皮肤/光环
|
||||||
|
- [x] 宠物装备
|
||||||
|
- [ ] 辟邪玉
|
||||||
|
- [ ] 勋章/杂项
|
||||||
|
|
||||||
|
- 结果计算
|
||||||
|
- [x] 技能伤害计算
|
||||||
|
- [x] 技能等级计算
|
||||||
|
- [x] 技能CD计算
|
||||||
|
- [x] 装备特效计算
|
||||||
|
- [x] 装备效果/点数计算
|
||||||
|
- [ ] 角色基础展示
|
||||||
|
|
||||||
|
- 一期职业
|
||||||
|
- 鬼剑士(男)
|
||||||
|
- [ ] 鬼泣
|
||||||
|
- [ ] 狂战士
|
||||||
|
- [ ] 剑影
|
||||||
|
- 鬼剑士(女)
|
||||||
|
- [ ] 暗殿骑士
|
||||||
|
- [ ] 契魔者
|
||||||
|
- [ ] 流浪武士
|
||||||
|
- [ ] 刃影
|
||||||
|
- 格斗家(男)
|
||||||
|
- [ ] 柔道家
|
||||||
|
- 格斗家(女)
|
||||||
|
- [ ] 气功师
|
||||||
|
- [ ] 散打
|
||||||
|
- [ ] 柔道家
|
||||||
|
- 神枪手(男)
|
||||||
|
- [ ] 漫游枪手
|
||||||
|
- [ ] 枪炮师
|
||||||
|
- [ ] 弹药专家
|
||||||
|
- 神枪手(女)
|
||||||
|
- [ ] 漫游枪手
|
||||||
|
- [ ] 枪炮师
|
||||||
|
- [x] 弹药专家
|
||||||
|
- 魔法师(男)
|
||||||
|
- [ ] 冰结师
|
||||||
|
- [ ] 血法师
|
||||||
|
- 魔法师(女)
|
||||||
|
- [ ] 战斗法师
|
||||||
@@ -353,7 +353,7 @@ class Character:
|
|||||||
for skill in self.skills:
|
for skill in self.skills:
|
||||||
if min <= skill.learnLv <= max:
|
if min <= skill.learnLv <= max:
|
||||||
if type == -1 or skill.type == type:
|
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:
|
def SetSkillCD(self, min=1, max=100, cd=0, exclude=[50, 85, 100]) -> None:
|
||||||
"""
|
"""
|
||||||
@@ -596,7 +596,7 @@ class Character:
|
|||||||
def calc_equs(self):
|
def calc_equs(self):
|
||||||
"""计算装备基础效果、附魔、贴膜"""
|
"""计算装备基础效果、附魔、贴膜"""
|
||||||
effects = get_equipment(self.equVersion).funs
|
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]
|
equ = detail[0]
|
||||||
fusion = detail[1]
|
fusion = detail[1]
|
||||||
enchat = detail[2]
|
enchat = detail[2]
|
||||||
@@ -612,6 +612,22 @@ class Character:
|
|||||||
fun(self)
|
fun(self)
|
||||||
# 附魔
|
# 附魔
|
||||||
fun = effects.enchant_func_list.get(str(enchat), None)
|
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:
|
if fun is not None:
|
||||||
fun(self)
|
fun(self)
|
||||||
# 贴膜
|
# 贴膜
|
||||||
@@ -624,6 +640,28 @@ class Character:
|
|||||||
# 获取装备额外属性
|
# 获取装备额外属性
|
||||||
fun(self)
|
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):
|
def calc_basic(self):
|
||||||
"""计算基础属性:防具精通、增幅、强化等"""
|
"""计算基础属性:防具精通、增幅、强化等"""
|
||||||
# 防具精通跟随装备品级
|
# 防具精通跟随装备品级
|
||||||
@@ -688,6 +726,8 @@ class Character:
|
|||||||
# 角色基础属性
|
# 角色基础属性
|
||||||
self.SetBaseStatus()
|
self.SetBaseStatus()
|
||||||
# 辟邪玉计算
|
# 辟邪玉计算
|
||||||
|
# 时装计算
|
||||||
|
self.calc_avatar(setInfo.get('avatar', {}))
|
||||||
# 精通、增幅、强化计算
|
# 精通、增幅、强化计算
|
||||||
self.calc_basic()
|
self.calc_basic()
|
||||||
# 部位效果计算
|
# 部位效果计算
|
||||||
|
|||||||
@@ -1,8 +1,9 @@
|
|||||||
from .suit import suit_func_list
|
from .suit import suit_func_list
|
||||||
from .jade import jade_func_list
|
from .jade import jade_func_list
|
||||||
from .equ import equ_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 .enchant import enchant_func_list
|
||||||
|
from .emblem import emblem_func_list
|
||||||
|
|
||||||
options = [
|
options = [
|
||||||
{'id': 1, 'name': '龙战八荒,', 'options': ['BUFF OFF', 'BUFF ON', '期望']},
|
{'id': 1, 'name': '龙战八荒,', 'options': ['BUFF OFF', 'BUFF ON', '期望']},
|
||||||
|
|||||||
@@ -57,7 +57,9 @@ class 装扮:
|
|||||||
elif str(选项) == '0':
|
elif str(选项) == '0':
|
||||||
pass
|
pass
|
||||||
else:
|
else:
|
||||||
角色.单技能加成(名称=选项, lv=1)
|
skill = 角色.GetSkillByName(选项)
|
||||||
|
if skill is not None:
|
||||||
|
skill.lv += 1
|
||||||
|
|
||||||
|
|
||||||
class 神器装扮头发(装扮):
|
class 神器装扮头发(装扮):
|
||||||
@@ -357,3 +359,41 @@ def get_dress_list(skills_coat:list[str] = [],skills_pants:list[str] = []) -> di
|
|||||||
data["name"] = f"{dress.品质}装扮{dress.部位}"
|
data["name"] = f"{dress.品质}装扮{dress.部位}"
|
||||||
dress_list[部位].append(data)
|
dress_list[部位].append(data)
|
||||||
return dress_list
|
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