This commit is contained in:
2025-04-16 00:51:36 +08:00
parent e220b9d296
commit 5ac346932f
19 changed files with 6319 additions and 426 deletions
+16 -15
View File
@@ -598,7 +598,7 @@ class Character(CharacterProperty):
)
suits_effect = [i.id for i in suitList]
for i in suits_effect:
func = equs.funs.suit_func_list.get(str(i), None)
func = equs.funs.execture(f'suit_{i}')
suit = next((x for x in equs.suits if str(x.id) == str(i)), None)
if func is not None:
func(self)
@@ -619,7 +619,7 @@ class Character(CharacterProperty):
enchat = detail[2]
if equ is None:
continue
fun = effects.equ_func_list.get(str(equ.id), None)
fun = effects.execture(f'equ_{equ.id}')
if fun is None:
continue
# 获取装备基础属性 并给角色设置(大写开头属性为角色属性)
@@ -628,14 +628,14 @@ class Character(CharacterProperty):
# 获取装备额外属性
fun(self)
# 附魔
fun = effects.enchant_func_list.get(str(enchat), None)
fun = effects.execture(f'enchant_{enchat}')
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)
fun = effects.execture(f'emblem_{emblem_1}')
if fun is not None:
fun(self)
else:
@@ -644,13 +644,13 @@ class Character(CharacterProperty):
if skill is not None:
skill.lv += 1
self.SetStatus(四维=8)
fun = effects.emblem_func_list.get(str(emblem_1), None)
fun = effects.execture(f'emblem_{emblem_0}')
if fun is not None:
fun(self)
# 贴膜
if fusion is None:
continue
fun = effects.stone_func_list.get(str(fusion.id), None)
fun = effects.execture(f'stone_{fusion.id}')
# 获取装备基础属性 并给角色设置(大写开头属性为角色属性)
filtered_dict = {k: v for k, v in fusion.__dict__.items() if k[0].isupper()}
self.SetStatus(**filtered_dict)
@@ -669,13 +669,13 @@ class Character(CharacterProperty):
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)
fun = equ.funs.execture(f'enchant_{value}')
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)
fun = equ.funs.execture(f'emblem_{i}')
if fun is not None:
fun(self)
pass
@@ -740,7 +740,7 @@ class Character(CharacterProperty):
funs = get_equipment(self.equVersion).funs
for key in jades:
jade = jades[key]
fun = funs.jade_func_list.get(str(jade.get('id',0)), None)
fun = funs.execture(f'jade_{jade.get("id",0)}')
if fun is not None:
fun(self,jade.get('value', 0))
pass
@@ -748,27 +748,27 @@ class Character(CharacterProperty):
def calc_sundry(self, sundry: dict):
"""计算杂项效果"""
funs = get_equipment(self.equVersion).funs
funs.sundry_func_list.get("0")(self,
funs.execture("sundry_0")(self,
sundry.get("medal_rarity", 0),
sundry.get("medal_reinforce", 0),
[sundry.get("medal_0", 0), sundry.get("medal_1", 0), sundry.get("medal_2", 0), sundry.get("medal_3", 0)],
)
funs.sundry_func_list.get("6")(self,
funs.execture("sundry_6")(self,
sundry.get("adventure", 1)
)
funs.sundry_func_list.get("7")(self,
funs.execture("sundry_7")(self,
sundry.get("marriage_house", 0),
sundry.get("marriage_ring", 0)
)
funs.sundry_func_list.get("9")(self,
funs.execture("sundry_9")(self,
sundry.get("contract", 0)
)
funs.sundry_func_list.get("10")(self,
funs.execture("sundry_10")(self,
sundry.get("collection_type", 0),
sundry.get("collection_num_0", 0),
sundry.get("collection_num_1", 0),
)
funs.sundry_func_list.get("13")(self,
funs.execture("sundry_13")(self,
sundry.get("costume_card", 0)
)
pass
@@ -861,6 +861,7 @@ class Character(CharacterProperty):
'ratio': temp[1],
'cd': temp[2],
'mode': mode,
'learnLv': i.learnLv,
}
)
ratios = self.calc_damage_ration()
-1
View File
@@ -2,7 +2,6 @@ import importlib
from database.models import EmblemData, Session, EquData, StoneData, SuitData, EnchantData,JadeData
from database.connect import get_db_engine as get_engine
def parse_to_number_list(info: str, default: list[float] = [0]) -> list[float]:
return default if not info else [float(i) for i in info.split(',')]
+29 -7
View File
@@ -1,11 +1,13 @@
from .suit import suit_func_list
from .jade import jade_func_list
from .equ import equ_func_list
from .avatar import get_dress_list,calc_dress_effect
from .enchant import enchant_func_list
from .emblem import emblem_func_list
from .stone import stone_func_list
from .sundry import sundry_func_list,sundryList
import core.equipment.version_0.equ as equ
import core.equipment.version_0.stone as stone
import core.equipment.version_0.jade as jade
import core.equipment.version_0.emblem as emblem
import core.equipment.version_0.enchant as enchant
import core.equipment.version_0.sundry as sundry
import core.equipment.version_0.suit as suit
from .register import execture
options = [
{'id': 1, 'name': '龙战八荒,', 'options': ['BUFF OFF', 'BUFF ON', '期望']},
@@ -13,3 +15,23 @@ options = [
{'id': 3, 'name': '群猎美学', 'options': ['单刷', '组队']},
{'id': 4, 'name': '魔攻核', 'options': ['普通', '追击']},
]
sundryList = {
'medal_rarity': {'id': 0, 'options': [{'name': f'品质:{i}', 'value': idx} for idx, i in enumerate(['普通', '高级', '稀有', '神器', '传说', '史诗'])]},
'medal_reinforce': {'id': 1, 'options': [{'name': f'强化 +{i}', 'value': i} for i in range(0, 13)]},
'medal_gem_0': {'id': 2, 'options': [{'name': f'{i}', 'value': idx} for idx, i in enumerate(['普通', '高级', '稀有', '神器', '传说'])]},
'medal_gem_1': {'id': 3, 'options': [{'name': f'{i}', 'value': idx} for idx, i in enumerate(['普通', '高级', '稀有', '神器', '传说'])]},
'medal_gem_2': {'id': 4, 'options': [{'name': f'{i}', 'value': idx} for idx, i in enumerate(['普通', '高级', '稀有', '神器', '传说'])]},
'medal_gem_3': {'id': 5, 'options': [{'name': f'{i}', 'value': idx} for idx, i in enumerate(['普通', '高级', '稀有', '神器', '传说'])]},
'adventure': {'id': 6, 'options': [{'name': f'Lv:{i}', 'value': i} for i in range(1, 31)]},
'marriage_house': {'id': 7, 'options': [{'name': f'{i}', 'value': idx} for idx, i in enumerate(['无', '全属强(1)', '全属强(3)', '全属强(5)|三攻(5)', '全属强(8)|三攻(10|20)'])]},
'marriage_ring': {'id': 8, 'options': [{'name': f'{i}', 'value': idx} for idx, i in enumerate(['无', '体精(8)', '体精(10)|力智(15)'])]},
'contract': {'id': 9, 'options': [{'name': f'{i}', 'value': idx} for idx, i in enumerate(['无', '无色契约 三攻(40)'])]},
'collection_type': {'id': 10, 'options': [{'name': f'{i}', 'value': idx} for idx, i in enumerate(['无', '春节套', '夏日套'])]},
'collection_num_0': {'id': 11, 'options': [{'name': f'稀有{i}个', 'value': i} for i in range(0, 6)]},
'collection_num_1': {'id': 12, 'options': [{'name': f'神器{i}个', 'value': i} for i in range(0, 6)]},
'costume_card': {'id': 13, 'options': [{'name': f'{i}', 'value': idx} for idx, i in enumerate(['无', '四维(3)|三速(1%)'])]},
}
__all__= [get_dress_list, calc_dress_effect, options , execture, sundryList, equ, stone, jade, emblem, enchant, sundry, suit]
@@ -1,211 +0,0 @@
from core.basic.property import CharacterProperty
consumable_list = {}
def consumable_28000(char: CharacterProperty = {}, mode=0, text=False, rate=1.0):
if mode == 0:
pass
if mode == 1:
pass
# 斗神之吼秘药
def consumable_28001(char: CharacterProperty = {}, mode=0, text=False, rate=1.0):
if mode == 0:
# char.基础属性加成(物理攻击力=25 * rate)
pass
if mode == 1:
char.斗神宠物加成(int(12*rate)/100)
pass
# 赛丽亚的特调酷饮
def consumable_28002(char: CharacterProperty = {}, mode=0, text=False, rate=1.0):
if mode == 0:
# char.基础属性加成(物理攻击力=25 * rate)
pass
if mode == 1:
char.所有属性强化加成(int(5*rate), mode=1)
pass
# [冒险]属性强化药水
def consumable_28003(char: CharacterProperty = {}, mode=0, text=False, rate=1.0):
if mode == 0:
# char.基础属性加成(物理攻击力=25 * rate)
pass
if mode == 1:
char.所有属性强化加成(int(10*rate),mode=1)
pass
# 魔界战力释放秘药
def consumable_28004(char: CharacterProperty = {}, mode=0, text=False, rate=1.0):
if mode == 0:
# char.基础属性加成(物理攻击力=25 * rate)
pass
if mode == 1:
char.基础属性加成(进图智力=int(150*rate), 进图力量=int(150*rate))
pass
# 顶级力量灵药
def consumable_28005(char: CharacterProperty = {}, mode=0, text=False, rate=1.0):
if mode == 0:
# char.基础属性加成(物理攻击力=25 * rate)
pass
if mode == 1:
char.基础属性加成(进图力量=int(175*rate))
pass
# 顶级智力灵药
def consumable_28006(char: CharacterProperty = {}, mode=0, text=False, rate=1.0):
if mode == 0:
# char.基础属性加成(物理攻击力=25 * rate)
pass
if mode == 1:
char.基础属性加成(进图智力=int(175*rate))
pass
# 活力秘药
def consumable_28007(char: CharacterProperty = {}, mode=0, text=False, rate=1.0):
if mode == 0:
# char.基础属性加成(物理攻击力=25 * rate)
pass
if mode == 1:
char.基础属性加成(进图智力=int(50*rate), 进图力量=int(50*rate))
pass
# 虚祖皇家能量秘药
def consumable_28008(char: CharacterProperty = {}, mode=0, text=False, rate=1.0):
if mode == 0:
# char.基础属性加成(物理攻击力=25 * rate)
pass
if mode == 1:
char.基础属性加成(进图智力=int(100*rate), 进图力量=int(100*rate))
char.所有属性强化加成(int(5*rate), mode=1)
pass
# 黄金羊毛
def consumable_28009(char: CharacterProperty = {}, mode=0, text=False, rate=1.0):
if mode == 0:
# char.基础属性加成(物理攻击力=25 * rate)
pass
if mode == 1:
char.基础属性加成(进图智力=int(60*rate), 进图力量=int(60*rate))
pass
# 龙之气息
def consumable_28010(char: CharacterProperty = {}, mode=0, text=False, rate=1.0):
if mode == 0:
# char.基础属性加成(物理攻击力=25 * rate)
pass
if mode == 1:
char.基础属性加成(进图智力=int(30*rate), 进图力量=int(30*rate))
pass
# 甜蜜喜糖
def consumable_28011(char: CharacterProperty = {}, mode=0, text=False, rate=1.0):
if mode == 0:
# char.基础属性加成(物理攻击力=25 * rate)
pass
if mode == 1:
char.基础属性加成(进图智力=int(88*rate), 进图力量=int(88*rate))
pass
def consumable_28012(char: CharacterProperty = {}, mode=0, text=False, rate=1.0):
if mode == 0:
# char.基础属性加成(物理攻击力=25 * rate)
pass
if mode == 1:
char.火属性抗性加成(30 * rate)
pass
def consumable_28013(char: CharacterProperty = {}, mode=0, text=False, rate=1.0):
if mode == 0:
# char.基础属性加成(物理攻击力=25 * rate)
pass
if mode == 1:
char.冰属性抗性加成(30 * rate)
pass
def consumable_28014(char: CharacterProperty = {}, mode=0, text=False, rate=1.0):
if mode == 0:
# char.基础属性加成(物理攻击力=25 * rate)
pass
if mode == 1:
char.光属性抗性加成(30 * rate)
pass
def consumable_28015(char: CharacterProperty = {}, mode=0, text=False, rate=1.0):
if mode == 0:
# char.基础属性加成(物理攻击力=25 * rate)
pass
if mode == 1:
char.暗属性抗性加成(30 * rate)
pass
def consumable_28016(char: CharacterProperty = {}, mode=0, text=False, rate=1.0):
if mode == 0:
# char.基础属性加成(物理攻击力=25 * rate)
pass
if mode == 1:
char.所有属性抗性加成(15 * rate)
pass
def consumable_28017(char: CharacterProperty = {}, mode=0, text=False, rate=1.0):
if mode == 0:
if rate == 1.0:
char.基础属性加成(进图智力=280000, 进图力量=280000,三攻=18000)
pass
if mode == 1:
pass
def consumable_28018(char: CharacterProperty = {}, mode=0, text=False, rate=1.0):
if mode == 0:
char.所有异常抗性加成(0.03*rate)
pass
if mode == 1:
pass
def consumable_28019(char: CharacterProperty = {}, mode=0, text=False, rate=1.0):
if mode == 0:
char.所有异常抗性加成(0.05*rate)
pass
if mode == 1:
pass
# 药剂id范围 28001~29000
for i in range(28001, 29000):
try:
if i not in consumable_list.keys():
consumable_list[i] = eval('consumable_{}'.format(i))
except Exception:
pass
def get_sundriesfunc_by_id(id):
return consumable_list.get(id, consumable_28000)
+26 -1
View File
@@ -1,8 +1,9 @@
from core.abstract.character import CharacterProperty
from .register import register
emblem_func_list = {}
@register
def emblem_1(char: CharacterProperty):
"""
力智+20 暴击+1.9%
@@ -11,6 +12,7 @@ def emblem_1(char: CharacterProperty):
pass
@register
def emblem_2(char: CharacterProperty):
"""
力智+15 暴击+1.5%
@@ -19,6 +21,7 @@ def emblem_2(char: CharacterProperty):
pass
@register
def emblem_3(char: CharacterProperty):
"""
力智+10 暴击+1.1%
@@ -27,6 +30,7 @@ def emblem_3(char: CharacterProperty):
pass
@register
def emblem_4(char: CharacterProperty):
"""
力智+35
@@ -35,6 +39,7 @@ def emblem_4(char: CharacterProperty):
pass
@register
def emblem_5(char: CharacterProperty):
"""
体精+35
@@ -43,6 +48,7 @@ def emblem_5(char: CharacterProperty):
pass
@register
def emblem_6(char: CharacterProperty):
"""
体精+25
@@ -51,6 +57,7 @@ def emblem_6(char: CharacterProperty):
pass
@register
def emblem_7(char: CharacterProperty):
"""
体精+17
@@ -59,6 +66,7 @@ def emblem_7(char: CharacterProperty):
pass
@register
def emblem_8(char: CharacterProperty):
"""
力智+30
@@ -67,6 +75,7 @@ def emblem_8(char: CharacterProperty):
pass
@register
def emblem_9(char: CharacterProperty):
"""
攻速+2%
@@ -75,6 +84,7 @@ def emblem_9(char: CharacterProperty):
pass
@register
def emblem_10(char: CharacterProperty):
"""
体精+30
@@ -83,6 +93,7 @@ def emblem_10(char: CharacterProperty):
pass
@register
def emblem_11(char: CharacterProperty):
"""
三攻+20
@@ -91,6 +102,7 @@ def emblem_11(char: CharacterProperty):
pass
@register
def emblem_12(char: CharacterProperty):
"""
力智+30
@@ -99,6 +111,7 @@ def emblem_12(char: CharacterProperty):
pass
@register
def emblem_13(char: CharacterProperty):
"""
体精+30
@@ -107,6 +120,7 @@ def emblem_13(char: CharacterProperty):
pass
@register
def emblem_14(char: CharacterProperty):
"""
力智+25
@@ -115,6 +129,7 @@ def emblem_14(char: CharacterProperty):
pass
@register
def emblem_15(char: CharacterProperty):
"""
力智+15
@@ -123,6 +138,7 @@ def emblem_15(char: CharacterProperty):
pass
@register
def emblem_16(char: CharacterProperty):
"""
攻速+1.5%
@@ -131,6 +147,7 @@ def emblem_16(char: CharacterProperty):
pass
@register
def emblem_17(char: CharacterProperty):
"""
体精+15
@@ -139,6 +156,7 @@ def emblem_17(char: CharacterProperty):
pass
@register
def emblem_18(char: CharacterProperty):
"""
三攻+15
@@ -147,6 +165,7 @@ def emblem_18(char: CharacterProperty):
pass
@register
def emblem_19(char: CharacterProperty):
"""
体精+15
@@ -155,6 +174,7 @@ def emblem_19(char: CharacterProperty):
pass
@register
def emblem_20(char: CharacterProperty):
"""
力智+17
@@ -163,6 +183,7 @@ def emblem_20(char: CharacterProperty):
pass
@register
def emblem_21(char: CharacterProperty):
"""
力智+10
@@ -171,6 +192,7 @@ def emblem_21(char: CharacterProperty):
pass
@register
def emblem_22(char: CharacterProperty):
"""
攻速+1.1%
@@ -179,6 +201,7 @@ def emblem_22(char: CharacterProperty):
pass
@register
def emblem_23(char: CharacterProperty):
"""
体精+10
@@ -187,6 +210,7 @@ def emblem_23(char: CharacterProperty):
pass
@register
def emblem_24(char: CharacterProperty):
"""
三攻+10
@@ -195,6 +219,7 @@ def emblem_24(char: CharacterProperty):
pass
@register
def emblem_25(char: CharacterProperty):
"""
体精+10
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+20 -78
View File
@@ -1,164 +1,106 @@
from core.abstract.character import CharacterProperty
from .register import register
jade_func_list = {}
@register
def jade_0(char: CharacterProperty = {}, value=0):
pass
@register
def jade_1(char: CharacterProperty = {}, value=0):
char.jade_effect.SkillAttack += value/100
@register
def jade_2(char: CharacterProperty = {}, value=0):
char.jade_effect.AttackP += value/100
pass
@register
def jade_3(char: CharacterProperty = {}, value=0):
char.jade_effect.ElementIncrease += value/100
pass
@register
def jade_4(char: CharacterProperty = {}, value=0):
if value > 0:
char.AddSkillLv(10, 15, 1)
pass
@register
def jade_5(char: CharacterProperty = {}, value=0):
if value > 0:
char.AddSkillLv(20, 25, 1)
pass
@register
def jade_6(char: CharacterProperty = {}, value=0):
if value > 0:
char.AddSkillLv(30, 35, 1)
pass
@register
def jade_7(char: CharacterProperty = {}, value=0):
if value > 0:
char.AddSkillLv(40, 45, 1)
pass
@register
def jade_8(char: CharacterProperty = {}, value=0):
if value > 0:
char.AddSkillLv(55, 60, 1)
pass
@register
def jade_9(char: CharacterProperty = {}, value=0):
if value > 0:
char.AddSkillLv(65, 70, 1)
pass
@register
def jade_10(char: CharacterProperty = {}, value=0):
if value > 0:
char.AddSkillLv(75, 80, 1)
pass
@register
def jade_11(char: CharacterProperty = {}, value=0):
if value > 0:
char.AddSkillLv(50, 50, 1)
pass
@register
def jade_12(char: CharacterProperty = {}, value=0):
if value > 0:
char.AddSkillLv(85, 85, 1)
pass
@register
def jade_13(char: CharacterProperty = {}, value=0):
char.BuffSkill.STRINTPLUS += value
char.SetStatus(BufferP=value/1000)
@register
def jade_14(char: CharacterProperty = {}, value=0):
char.BuffSkill.STRINTRatio *= 1 + value/100
char.SetStatus(BufferP=value/200)
@register
def jade_15(char: CharacterProperty = {}, value=0):
char.BuffSkill.ATKPLUS += value
char.SetStatus(BufferP=value/200)
@register
def jade_16(char: CharacterProperty = {}, value=0):
char.BuffSkill.ATKRatio *= 1 + value/100
char.SetStatus(BufferP=value/200)
@register
def jade_17(char: CharacterProperty = {}, value=0):
char.AwakeSkill.STRINTPLUS += value
char.SetStatus(BufferP=value/4000)
@register
def jade_18(char: CharacterProperty = {}, value=0):
char.AwakeSkill.STRINTRatio *= 1 + value/100
char.SetStatus(BufferP=value/200)
# # 辟邪玉效果id范围 26001~26999
# for i in range(26001, 26206):
# try:
# if i not in jade_func_list.keys():
# jade_func_list[i] = eval('jade_{}'.format(i))
# except Exception:
# pass
# def jade_26201(char=CharacterProperty, text=False, value=0):
# if text:
# return "(76, -25, 25, '', 1, 'Lv30 Buff技能力智增加',1)"
# char.辅助属性加成(buff固定力智=value, 百分比buff量=value / 1000)
# def jade_26202(char=CharacterProperty, text=False, value=0):
# if text:
# return "(76, -5, 5, '%', 0.1, 'Lv30 Buff技能力智增加%',1)"
# char.辅助属性加成(buff百分比力智=value / 100, 百分比buff量=value / 200)
# def jade_26203(char=CharacterProperty, text=False, value=0):
# if text:
# return "(76, -5, 5, '', 1, 'Lv30 Buff技能三攻增加',1)"
# char.辅助属性加成(buff固定三攻=value, 百分比buff量=value / 200)
# def jade_26204(char=CharacterProperty, text=False, value=0):
# if text:
# return "(76, -5, 5, '%', 0.1, 'Lv30 Buff技能三攻增加%',1)"
# char.辅助属性加成(buff百分比三攻=value / 100, 百分比buff量=value / 200)
# def jade_26205(char=CharacterProperty, text=False, value=0):
# if text:
# return "(76, -100, 100, '', 1, 'Lv50 主动技能力智增加',1)"
# char.辅助属性加成(觉醒固定力智=value, 百分比buff量=value / 4000)
# def jade_26206(char=CharacterProperty, text=False, value=0):
# if text:
# return "(76, -5, 5, '%', 0.1, 'Lv50 主动技能力智增加%',1)"
# char.辅助属性加成(觉醒百分比力智=value/100, 百分比buff量=value / 200)
# def jade_26207(char={}, text=False, value=0):
# if text:
# return "(55, -5, 5, '%', 0.1, '攻击、移动、施放速度',1)"
# char.攻击速度增加(value/100)
for i in range(0,20):
try:
if str(i) not in jade_func_list.keys():
jade_func_list[str(i)] = eval(f'jade_{i}')
except Exception:
pass
# def get_jadefunc_by_id(id):
# return jade_func_list.get(int(id), jade_26000)
# def get_jade_setinfo():
# infolist = []
# for i in jade_func_list.keys():
# data = {}
# data['id'] = i
# info = eval(jade_func_list[i](text=True))
# num = 0
# for k in index:
# data[k] = info[num]
# num += 1
# infolist.append(data)
# infolist = sorted(infolist, key=lambda x: x["order"])
# return infolist
@@ -0,0 +1,12 @@
registry = {}
def register(func):
registry[func.__name__] = func
return func
def execture(name):
if name in registry:
return registry[name]
else:
print(f"Function {name} not found in registry.")
return None
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+7 -27
View File
@@ -1,27 +1,9 @@
# sundry_list = ['medal_rarity', 'medal_rarity', 'medal_reinforce', 'medal_gem_0', 'medal_gem_1', 'medal_gem_2', 'medal_gem_3', 'adventure', 'marriage_house', 'marriage_ring', 'contract', 'collection_type', 'collection_num_0', 'collection_num_1', 'costume_card']
from core.abstract.character import CharacterProperty
from .register import register
sundry_func_list = {}
sundryList = {
'medal_rarity': {'id': 0, 'options': [{'name': f'品质:{i}', 'value': idx} for idx, i in enumerate(['普通', '高级', '稀有', '神器', '传说', '史诗'])]},
'medal_reinforce': {'id': 1, 'options': [{'name': f'强化 +{i}', 'value': i} for i in range(0, 13)]},
'medal_gem_0': {'id': 2, 'options': [{'name': f'{i}', 'value': idx} for idx, i in enumerate(['普通', '高级', '稀有', '神器', '传说'])]},
'medal_gem_1': {'id': 3, 'options': [{'name': f'{i}', 'value': idx} for idx, i in enumerate(['普通', '高级', '稀有', '神器', '传说'])]},
'medal_gem_2': {'id': 4, 'options': [{'name': f'{i}', 'value': idx} for idx, i in enumerate(['普通', '高级', '稀有', '神器', '传说'])]},
'medal_gem_3': {'id': 5, 'options': [{'name': f'{i}', 'value': idx} for idx, i in enumerate(['普通', '高级', '稀有', '神器', '传说'])]},
'adventure': {'id': 6, 'options': [{'name': f'Lv:{i}', 'value': i} for i in range(1, 31)]},
'marriage_house': {'id': 7, 'options': [{'name': f'{i}', 'value': idx} for idx, i in enumerate(['无', '全属强(1)', '全属强(3)', '全属强(5)|三攻(5)', '全属强(8)|三攻(10|20)'])]},
'marriage_ring': {'id': 8, 'options': [{'name': f'{i}', 'value': idx} for idx, i in enumerate(['无', '体精(8)', '体精(10)|力智(15)'])]},
'contract': {'id': 9, 'options': [{'name': f'{i}', 'value': idx} for idx, i in enumerate(['无', '无色契约 三攻(40)'])]},
'collection_type': {'id': 10, 'options': [{'name': f'{i}', 'value': idx} for idx, i in enumerate(['无', '春节套', '夏日套'])]},
'collection_num_0': {'id': 11, 'options': [{'name': f'稀有{i}个', 'value': i} for i in range(0, 6)]},
'collection_num_1': {'id': 12, 'options': [{'name': f'神器{i}个', 'value': i} for i in range(0, 6)]},
'costume_card': {'id': 13, 'options': [{'name': f'{i}', 'value': idx} for idx, i in enumerate(['无', '四维(3)|三速(1%)'])]},
}
@register
def sundry_0(char: CharacterProperty, *args):
'''勋章'''
# 勋章基础 四维 48 三攻 30
@@ -42,12 +24,14 @@ def sundry_0(char: CharacterProperty, *args):
gems_quality = medal_gems_quality[i]
char.SetStatus(攻击强化=gems_quality[0]*0.1, 增益量=gems_quality[1])
@register
def sundry_6(char: CharacterProperty, *args):
'''冒险团'''
lv = args[0] - 1
values = [100,110,125,140,150,160,170,180,190,200,210,220,220,220,220,230,230,240,240,250,250,250,250,250,260,260,260,260,260,270,270,270,270,270,280,280,280,280,280,290]
char.SetStatus(四维=values[lv])
@register
def sundry_7(char: CharacterProperty, *args):
'''
婚房婚戒
@@ -68,11 +52,13 @@ def sundry_7(char: CharacterProperty, *args):
elif args[1] == 2:
char.SetStatus(体精=10, 力智=15)
@register
def sundry_9(char: CharacterProperty, *args):
'''契约'''
if args[0] == 1:
char.SetStatus(三攻=40)
@register
def sundry_10(char: CharacterProperty, *args):
'''收集箱'''
per_0 = 0
@@ -102,13 +88,7 @@ def sundry_10(char: CharacterProperty, *args):
char.AddElementDB('光',sq*per_2)
char.AddElementDB('暗',sq*per_2)
@register
def sundry_13(char: CharacterProperty, *args):
if args[0] == 1:
char.SetStatus(三速=0.01,四维=3)
for i in range(0, 20):
try:
if str(i) not in sundry_func_list.keys():
sundry_func_list[str(i)] = eval(f'sundry_{i}')
except Exception:
pass
Binary file not shown.
+2122
View File
File diff suppressed because it is too large Load Diff
+58
View File
@@ -0,0 +1,58 @@
from database.connect import get_db_engine as get_engine
from database.models import Session, StoneData, SuitData
engine = get_engine('0')
with Session(engine) as session:
db_list = session.query(StoneData).all()
res = ''
curPart = ''
# for i in db_list:
# if i.itemType == '武器' and i.itemType != curPart:
# curPart = i.itemType
# res += f'''
# # endregion
# # region {curPart}
# '''
# if i.itemType != '武器' and i.categorize != curPart:
# curPart = i.categorize
# res += f'''
# # endregion
# # region {curPart}
# '''
# res += f'''
# def equ_{i.id}(char: Character):
# \'''
# {i.name}
# {i.rarity} {i.itemType} {i.itemDetailType}
# {i.detail}
# \'''
# pass
# '''
for i in db_list:
if i.id < 151 or i.id > 366:
continue
if i.categorize != curPart:
curPart = i.categorize
res += f'''
# endregion
# region {curPart}
'''
res += f'''
@register
def stone_{i.id}(char: Character):
\'''
{i.name}
{i.detail}
\'''
pass
'''
with open('/Users/imelon/Desktop/Code/dnf/dcalc/backend/output.py', 'w') as file:
file.write(res)
+1
View File
@@ -17,6 +17,7 @@ export interface IResultSkill {
damage: number
mode: string
buff:number[]
learnLv: number
}
export interface IResultUserInfo {
@@ -83,6 +83,9 @@ const choose_part = ref<string[]>([])
const chooseCategory = (cat: string) => {
type.value = cat
if(type.value == 'stone' && curSuit.value == -1){
curSuit.value = 16203
}
}
const configStore = useConfigStore()
@@ -101,7 +104,7 @@ const suitList = computed(() => {
}
})
const res = Array.from(uniqueSuits.values())
res.push({ name: '通宝', value: -1, imageUrl: '/suit/little/-1.png' })
if(type.value == 'equ') res.push({ name: '通宝', value: -1, imageUrl: '/suit/little/-1.png' })
return res
})
@@ -113,7 +116,8 @@ const equs = computed(() => {
(choose_part.value.length === 0 ||
choose_part.value.includes(a.itemDetailType || a.itemType)) &&
(a.suit.length == 0 ||
(curSuit.value == -1 && a.suit.length > 1) ||
(curSuit.value == -1 && a.suit.length > 1 && type.value == 'equ') ||
(a.suit.length > 1 && type.value == 'stone') ||
(a.suit.includes(curSuit.value.toString()) && a.suit.length === 1)),
)
@@ -4,7 +4,7 @@
<div class="flex px-1px gap-1px">
<div
v-for="(header, key) in [
{ label: '技能', width: 180, sortKey: 'name' },
{ label: '技能', width: 180, sortKey: 'learnLv' },
{ label: 'CD', width: 50, sortKey: 'cd' },
{ label: '次数', width: 50 },
{ label: '秒伤', width: 100, sortKey: 'dps' },
@@ -69,7 +69,7 @@ const props = defineProps<{
}
}>()
const sort = ref<string>('total')
const sort = ref<string>('learnLv')
const order = ref<'asc' | 'desc'>('desc')
const config = useConfigStore()
@@ -78,7 +78,7 @@ const data = computed(() => {
return props.data.sort((a, b) => {
let aValue = 0
let bValue = 0
if (['damage', 'cd', 'name'].includes(sort.value)) {
if (['damage', 'cd', 'learnLv'].includes(sort.value)) {
// @ts-ignore
aValue = a[sort.value]
// @ts-ignore