From cc93acd743c270e0cbde284bba302ac0a9652591 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=A5=BF=E7=93=9C=C2=B0?= Date: Wed, 2 Apr 2025 22:54:17 +0800 Subject: [PATCH] dev --- backend/core/basic/character.py | 56 +++++--- backend/core/basic/equipment.py | 27 +++- backend/core/basic/roleinfo.py | 7 + backend/core/equipment/version_0/__init__.py | 9 +- backend/core/equipment/version_0/suit.py | 123 +++++++++++++++++- backend/dataFiles/dcalc_0.db | Bin 1007616 -> 1007616 bytes backend/database/models.py | 30 +++++ frontend/src/api/info/type.ts | 1 + .../src/pages/Character/Equipment/Index.vue | 34 +++-- .../Character/Equipment/components/Stone.vue | 93 +++++++++++++ .../Equipment/components/StoneOld.vue | 58 +++++++++ .../Equipment/components/StoneUniversal.vue | 44 +++++++ .../Character/Equipment/components/Suit.vue | 12 +- .../Equipment/components/Universal.vue | 8 +- .../Character/Equipment/components/Weapon.vue | 8 +- .../Character/Forge/components/equipment.vue | 8 +- frontend/src/stores/config.ts | 17 ++- frontend/src/stores/info.ts | 3 + 18 files changed, 476 insertions(+), 62 deletions(-) create mode 100644 frontend/src/pages/Character/Equipment/components/StoneOld.vue create mode 100644 frontend/src/pages/Character/Equipment/components/StoneUniversal.vue diff --git a/backend/core/basic/character.py b/backend/core/basic/character.py index 5dd353c6..80389cef 100644 --- a/backend/core/basic/character.py +++ b/backend/core/basic/character.py @@ -124,6 +124,8 @@ class Character: """装备打造信息""" equ_effect: list['EquEffect'] = [] """装备效果列表""" + equ_options: dict[str, int] = {} + """装备选项列表""" EquEffectRatio = 1 """装备效果倍率""" @@ -152,9 +154,10 @@ class Character: self.INT = 0 self.Spirit = 0 self.Vitality = 0 - self.AtkP = 0 - self.AtkM = 0 - self.AtkI = 0 + # 唤醒的情况下的基础数据 + self.AtkP = 0 + 65 + self.AtkM = 0 + 65 + self.AtkI = 1116 + 65 self.PAtkP = 1.0 self.PAtkM = 1.0 self.PAtkI = 1.0 @@ -165,10 +168,10 @@ class Character: '暗': False, } self.ElementDB = { - '火': 0, - '冰': 0, - '光': 0, - '暗': 0, + '火': 13, + '冰': 13, + '光': 13, + '暗': 13, } self.ElementR = { '火': 0, @@ -206,6 +209,7 @@ class Character: self.equs = {} self.jade_effect = Jade() self.equ_effect = [] + self.equ_options = {} pass # region 角色属性设置 @@ -433,12 +437,16 @@ class Character: equInfos = get_equipment(self.equVersion) equs = [] suits = [] + stones = [] for i in equInfos.equs: equs.append(i.__dict__) for i in equInfos.suits: suits.append(i.__dict__) + for i in equInfos.stones: + stones.append(i.__dict__) info['equips'] = equs info['suits'] = suits + info['stones'] = stones info['enchants'] = equInfos.enchants emblems = [] return info @@ -504,17 +512,31 @@ class Character: # 设置装备和获取对应的套装属性 for item in filter(lambda x: x.equInfo is not None, self.charEquipInfo.values()): partEqu = item.equInfo + partFusion = item.fusionInfo # 套装属性设置 - for suit in partEqu.suit: - if suitInfo.get(suit, None) is None: - suitInfo[suit] = { - 'point': 0, - 'count': 0, - } - if partEqu.Point == 0: - suitInfo[suit]['count'] += 1 - else: - suitInfo[suit]['point'] += partEqu.Point + if partEqu is not None: + for suit in partEqu.suit: + if suitInfo.get(suit, None) is None: + suitInfo[suit] = { + 'point': 0, + 'count': 0, + } + if partEqu.Point == 0: + suitInfo[suit]['count'] += 1 + else: + suitInfo[suit]['point'] += partEqu.Point + if partFusion is not None: + for suit in partFusion.suit: + if suitInfo.get(suit, None) is None: + suitInfo[suit] = { + 'point': 0, + 'count': 0, + } + if partFusion.Point == 0: + suitInfo[suit]['count'] += 1 + else: + suitInfo[suit]['point'] += partFusion.Point + print(suitInfo) # 取得点数最高的套装 max_point_suit = max((suit for suit in suitInfo if suitInfo[suit]['point'] > 0), key=lambda suit: suitInfo[suit]['point'], default=None) # 处理没有点数的老套装 diff --git a/backend/core/basic/equipment.py b/backend/core/basic/equipment.py index 0414366b..a62c4002 100644 --- a/backend/core/basic/equipment.py +++ b/backend/core/basic/equipment.py @@ -1,5 +1,5 @@ import importlib -from database.models import Session, EquData, SuitData, EnchantData +from database.models import Session, EquData, StoneData, SuitData, EnchantData from database.connect import get_db_engine as get_engine from functools import cache @@ -70,14 +70,17 @@ class Equipments: self.version = version self.engine = get_engine(version) self.equs: list[Equ] = [] + self.stones: list[Equ] = [] self.funs = self.init_func() self.equ_dict: dict[str, Equ] = {} + self.stone_dict: dict[str, Equ] = {} self.enchants = [] self.suits: list[Suit] = [] self.suit_dict: dict[str, Suit] = {} self.init_equs() self.init_suits() self.init_enchants() + self.init_stones() self.engine.dispose() def init_equs(self): @@ -102,6 +105,28 @@ class Equipments: self.equs.append(equ) self.equ_dict[equ.id] = equ + def init_stones(self): + """从数据库中获取所有装备信息""" + with Session(self.engine) as session: + db_list = session.query(StoneData).all() + keys = [key for key in StoneData.__dict__.keys() if key[0].isupper()] + ['suit'] + for item in db_list: + max_adaptation = 0 + item.id = str(item.id) + for attr in keys: + if attr == 'suit': + value = parse_to_number_list(getattr(item, attr), []) + value = [str(int(i)) for i in value] + else: + value = parse_to_number_list(getattr(item, attr)) + max_adaptation = max(max_adaptation, len(value) - 1) + setattr(item, attr, value) + stone_dict = {k: v for k, v in item.__dict__.items() if not k.startswith('_')} + stone_dict['max_adaptation'] = max_adaptation + stone = Equ(**stone_dict) + self.stones.append(stone) + self.stone_dict[stone.id] = stone + def init_suits(self): """从数据库中获取所有套装信息""" with Session(self.engine) as session: diff --git a/backend/core/basic/roleinfo.py b/backend/core/basic/roleinfo.py index 61d1ef9a..6245cb46 100644 --- a/backend/core/basic/roleinfo.py +++ b/backend/core/basic/roleinfo.py @@ -29,14 +29,21 @@ class CharacterEquipInfo: """装备信息""" fusionInfo: Union['Equ', None] """贴膜信息""" + fusionInfo: Union['Equ', None] + """贴膜信息""" def __init__(self, info={}, equVerison=0, part='') -> None: self.__dict__.update(info) equ = get_equipment(equVerison).equ_dict.get(self.id, None) + fusion = get_equipment(equVerison).stone_dict.get(self.fusion, None) if equ is not None and (equ.itemType == part or equ.itemDetailType == part): self.equInfo = equ.adapt(self.adaptation) else: self.equInfo = None + if fusion is not None and (fusion.itemType == part or fusion.itemDetailType == part): + self.fusionInfo = fusion.adapt(self.adaptation) + else: + self.fusionInfo = None class CharacterWeaponInfo(CharacterEquipInfo): diff --git a/backend/core/equipment/version_0/__init__.py b/backend/core/equipment/version_0/__init__.py index cc1beffd..7f9d7211 100644 --- a/backend/core/equipment/version_0/__init__.py +++ b/backend/core/equipment/version_0/__init__.py @@ -3,7 +3,8 @@ from .jade import jade_func_list from .equ import equ_func_list options = [ - {'id': 1, 'name': '龙战八荒,', 'options': ['BUFF OFF', 'BUFF ON', '期望']}, - {'id': 2, 'name': '混沌净化', 'options': ['净化', '堕落']}, - ] - + {'id': 1, 'name': '龙战八荒,', 'options': ['BUFF OFF', 'BUFF ON', '期望']}, + {'id': 2, 'name': '混沌净化', 'options': ['净化', '堕落']}, + {'id': 3, 'name': '群猎美学', 'options': ['单刷', '组队']}, + {'id': 4, 'name': '魔攻核', 'options': ['普通', '追击']}, +] diff --git a/backend/core/equipment/version_0/suit.py b/backend/core/equipment/version_0/suit.py index d38579e8..ba451e05 100644 --- a/backend/core/equipment/version_0/suit.py +++ b/backend/core/equipment/version_0/suit.py @@ -2380,8 +2380,9 @@ def suit_142(char: Character): char.SetSkillRation(100,100,0.6) char.SetSkillRation(85,85,0.5) char.SetSkillRation(50,50,0.1) + cd = 0 for item in char.skills: - if item.lv == 100: + if item.learnLv == 100: cd = item.getSkillCD() char.equ_effect.append(EquEffect(name='能量释放', icon='/equipment/suit/4.png', cd=cd, data=240000)) pass @@ -2507,8 +2508,9 @@ def suit_147(char: Character): char.SetSkillRation(100,100,0.76) char.SetSkillRation(85,85,0.6) char.SetSkillRation(50,50,0.15) + cd = 0 for item in char.skills: - if item.lv == 100: + if item.learnLv == 100: cd = item.getSkillCD() char.equ_effect.append(EquEffect(name='能量释放', icon='/equipment/suit/4.png', cd=cd, data=360000)) pass @@ -2568,6 +2570,7 @@ def suit_154(char: Character): 攻击时引发自然爆炸攻击敌人。 (冷却时间5秒) - 自然燃烧伤害8,640% """ + char.equ_effect.append(EquEffect(name='自燃爆炸', icon='/equipment/suit/6.png', cd=5, data=8640)) pass @@ -2577,6 +2580,7 @@ def suit_155(char: Character): 攻击时引发自然爆炸攻击敌人。 (冷却时间5秒) - 自然燃烧伤害8,640% """ + suit_154(char) pass @@ -2586,6 +2590,7 @@ def suit_156(char: Character): 攻击时引发自然爆炸攻击敌人。 (冷却时间5秒) - 自然燃烧伤害8,640% """ + suit_154(char) pass @@ -2595,6 +2600,7 @@ def suit_157(char: Character): 攻击时引发自然爆炸攻击敌人。 (冷却时间5秒) - 自然燃烧伤害8,640% """ + suit_154(char) pass @@ -2604,6 +2610,7 @@ def suit_158(char: Character): 攻击时产生小型旋风, 攻击小范围的敌人, 并吸附敌人。 (冷却时间5秒) - 小型旋风伤害25920% """ + char.equ_effect.append(EquEffect(name='小型旋风', icon='/equipment/suit/6.png', cd=5, data=25920)) pass @@ -2613,6 +2620,7 @@ def suit_159(char: Character): 攻击时产生小型旋风, 攻击小范围的敌人, 并吸附敌人。 (冷却时间5秒) - 小型旋风伤害25920% """ + suit_158(char) pass @@ -2622,6 +2630,7 @@ def suit_160(char: Character): 攻击时产生小型旋风, 攻击小范围的敌人, 并吸附敌人。 (冷却时间5秒) - 小型旋风伤害25920% """ + suit_158(char) pass @@ -2631,6 +2640,7 @@ def suit_161(char: Character): 攻击时产生小型旋风, 攻击小范围的敌人, 并吸附敌人。 (冷却时间5秒) - 小型旋风伤害25920% """ + suit_158(char) pass @@ -2640,6 +2650,7 @@ def suit_162(char: Character): 攻击时产生小型旋风, 攻击小范围的敌人, 并吸附敌人。 (冷却时间5秒) - 小型旋风伤害25920% """ + suit_158(char) pass @@ -2649,6 +2660,7 @@ def suit_163(char: Character): 攻击时引发落雷, 攻击大范围敌人。 (冷却时间5秒) - 落雷伤害43,200% """ + char.equ_effect.append(EquEffect(name='落雷', icon='/equipment/suit/6.png', cd=5, data=43200)) pass @@ -2658,6 +2670,7 @@ def suit_164(char: Character): 攻击时引发落雷, 攻击大范围敌人。 (冷却时间5秒) - 落雷伤害43,200% """ + suit_163(char) pass @@ -2667,6 +2680,7 @@ def suit_165(char: Character): 攻击时引发落雷, 攻击大范围敌人。 (冷却时间5秒) - 落雷伤害43,200% """ + suit_163(char) pass @@ -2676,6 +2690,7 @@ def suit_166(char: Character): 攻击时引发落雷, 攻击大范围敌人。 (冷却时间5秒) - 落雷伤害43,200% """ + suit_163(char) pass @@ -2685,6 +2700,7 @@ def suit_167(char: Character): 攻击时引发落雷, 攻击大范围敌人。 (冷却时间5秒) - 落雷伤害43,200% """ + suit_163(char) pass @@ -2696,6 +2712,8 @@ def suit_168(char: Character): - 狂澜怒涛伤害量104,400% - 冷却时间:60秒 """ + char.equ_effect.append(EquEffect(name='狂澜怒涛', icon='/equipment/skill/54.png', cd=60, data=104400)) + char.equ_effect.append(EquEffect(name='暴风雪', icon='/equipment/suit/6.png', cd=5, data=60480)) pass @@ -2747,6 +2765,7 @@ def suit_174(char: Character): - 正面突破伤害 : 6,360% - 冷却时间8秒 """ + char.equ_effect.append(EquEffect(name='突破', icon='/equipment/skill/0.png', cd=8, data=6360)) pass @@ -2759,6 +2778,7 @@ def suit_175(char: Character): - 正面突破伤害 : 6,360% - 冷却时间9秒 """ + suit_174(char) pass @@ -2771,6 +2791,7 @@ def suit_176(char: Character): - 正面突破伤害 : 6,360% - 冷却时间10秒 """ + suit_174(char) pass @@ -2783,6 +2804,7 @@ def suit_177(char: Character): - 正面突破伤害 : 6,360% - 冷却时间11秒 """ + suit_174(char) pass @@ -2795,6 +2817,7 @@ def suit_178(char: Character): - 正面突破伤害 : 6,360% - 冷却时间12秒 """ + suit_174(char) pass @@ -2812,6 +2835,8 @@ def suit_179(char: Character): - 审判伤害 : 9,300% - 冷却时间15秒 """ + char.equ_effect.append(EquEffect(name='突破', icon='/equipment/skill/0.png', cd=8, data=6360)) + char.equ_effect.append(EquEffect(name='审判', icon='/equipment/skill/1.png', cd=15, data=9300)) pass @@ -2829,6 +2854,7 @@ def suit_180(char: Character): - 审判伤害 : 9,300% - 冷却时间16秒 """ + suit_179(char) pass @@ -2846,6 +2872,7 @@ def suit_181(char: Character): - 审判伤害 : 9,300% - 冷却时间17秒 """ + suit_179(char) pass @@ -2863,6 +2890,7 @@ def suit_182(char: Character): - 审判伤害 : 9,300% - 冷却时间18秒 """ + suit_179(char) pass @@ -2880,6 +2908,7 @@ def suit_183(char: Character): - 审判伤害 : 9,300% - 冷却时间19秒 """ + suit_179(char) pass @@ -2904,6 +2933,9 @@ def suit_184(char: Character): 召唤女武神, 对四周敌人施以天罚。 - 天罚伤害 : 136800% """ + char.equ_effect.append(EquEffect(name='突破', icon='/equipment/skill/0.png', cd=8, data=6360)) + char.equ_effect.append(EquEffect(name='审判', icon='/equipment/skill/1.png', cd=15, data=9300)) + char.equ_effect.append(EquEffect(name='天罚', icon='/equipment/suit/7.png', cd=20, data=136800)) pass @@ -2928,6 +2960,7 @@ def suit_185(char: Character): 召唤女武神, 对四周敌人施以天罚。 - 天罚伤害 : 136800% """ + suit_184(char) pass @@ -2952,9 +2985,9 @@ def suit_186(char: Character): 召唤女武神, 对四周敌人施以天罚。 - 天罚伤害 : 136800% """ + suit_184(char) pass - def suit_187(char: Character): """ 借用女武神的一部分神秘力量。 @@ -2976,6 +3009,7 @@ def suit_187(char: Character): 召唤女武神, 对四周敌人施以天罚。 - 天罚伤害 : 136800% """ + suit_184(char) pass @@ -3000,6 +3034,7 @@ def suit_188(char: Character): 召唤女武神, 对四周敌人施以天罚。 - 天罚伤害 : 136800% """ + suit_184(char) pass @@ -3028,6 +3063,10 @@ def suit_189(char: Character): 召唤女武神, 对四周敌人施以天罚。 - 天罚伤害 : 136800% """ + char.equ_effect.append(EquEffect(name='突破', icon='/equipment/skill/0.png', cd=8, data=6360)) + char.equ_effect.append(EquEffect(name='审判', icon='/equipment/skill/1.png', cd=15, data=9300)) + char.equ_effect.append(EquEffect(name='降临', icon='/equipment/skill/3.png', cd=140, data=329400)) + char.equ_effect.append(EquEffect(name='天罚', icon='/equipment/suit/7.png', cd=20, data=136800)) pass @@ -3083,6 +3122,7 @@ def suit_195(char: Character): - 增益效果持续时间30秒 - 冷却时间30秒 """ + char.SetStatus(SkillAttack=0.1) pass @@ -3099,6 +3139,7 @@ def suit_196(char: Character): - 增益效果持续时间30秒 - 冷却时间30秒 """ + suit_195(char) pass @@ -3115,6 +3156,7 @@ def suit_197(char: Character): - 增益效果持续时间30秒 - 冷却时间30秒 """ + suit_195(char) pass @@ -3131,6 +3173,7 @@ def suit_198(char: Character): - 增益效果持续时间30秒 - 冷却时间30秒 """ + suit_195(char) pass @@ -3147,6 +3190,7 @@ def suit_199(char: Character): - 增益效果持续时间30秒 - 冷却时间30秒 """ + suit_195(char) pass @@ -3164,6 +3208,7 @@ def suit_200(char: Character): - 增益效果持续时间30秒 - 冷却时间30秒 """ + char.SetStatus(SkillAttack=0.2) pass @@ -3181,6 +3226,7 @@ def suit_201(char: Character): - 增益效果持续时间30秒 - 冷却时间30秒 """ + suit_200(char) pass @@ -3198,6 +3244,7 @@ def suit_202(char: Character): - 增益效果持续时间30秒 - 冷却时间30秒 """ + suit_200(char) pass @@ -3215,6 +3262,7 @@ def suit_203(char: Character): - 增益效果持续时间30秒 - 冷却时间30秒 """ + suit_200(char) pass @@ -3232,6 +3280,7 @@ def suit_204(char: Character): - 增益效果持续时间30秒 - 冷却时间30秒 """ + suit_200(char) pass @@ -3251,6 +3300,7 @@ def suit_205(char: Character): [青丘灵珠开关][装备主动技能]- 灵珠全部填满时,自动使用青丘灵珠增益效果(冷却时间1秒) - 再次使用时,关闭自动使用功能 """ + char.SetStatus(SkillAttack=0.3) pass @@ -3270,6 +3320,7 @@ def suit_206(char: Character): [青丘灵珠开关][装备主动技能]- 灵珠全部填满时,自动使用青丘灵珠增益效果(冷却时间1秒) - 再次使用时,关闭自动使用功能 """ + suit_205(char) pass @@ -3289,6 +3340,7 @@ def suit_207(char: Character): [青丘灵珠开关][装备主动技能]- 灵珠全部填满时,自动使用青丘灵珠增益效果(冷却时间1秒) - 再次使用时,关闭自动使用功能 """ + suit_205(char) pass @@ -3308,6 +3360,7 @@ def suit_208(char: Character): [青丘灵珠开关][装备主动技能]- 灵珠全部填满时,自动使用青丘灵珠增益效果(冷却时间1秒) - 再次使用时,关闭自动使用功能 """ + suit_205(char) pass @@ -3346,6 +3399,7 @@ def suit_210(char: Character): [青丘灵珠开关][装备主动技能]- 灵珠全部填满时,自动使用青丘灵珠增益效果(冷却时间1秒) - 再次使用时,关闭自动使用功能 """ + char.SetStatus(SkillAttack=0.3) pass @@ -3409,6 +3463,11 @@ def suit_216(char: Character): - 适用[群猎之力]效果 - 不适用[酣畅狩猎]效果 """ + if char.equ_options.get('3',0) == 0: + char.SetStatus(SkillAttack=0.106) + else: + char.SetStatus(SkillAttack=0.08,SpeedA=0.1,SpeedM=0.1,SpeedR=0.1) + char.equ_effect.append(EquEffect(name='酣畅狩猎', icon='/equipment/skill/15.png', cd=30, data=3825)) pass @@ -3433,6 +3492,7 @@ def suit_217(char: Character): - 适用[群猎之力]效果 - 不适用[酣畅狩猎]效果 """ + suit_216(char) pass @@ -3457,6 +3517,7 @@ def suit_218(char: Character): - 适用[群猎之力]效果 - 不适用[酣畅狩猎]效果 """ + suit_216(char) pass @@ -3481,6 +3542,7 @@ def suit_219(char: Character): - 适用[群猎之力]效果 - 不适用[酣畅狩猎]效果 """ + suit_216(char) pass @@ -3505,6 +3567,7 @@ def suit_220(char: Character): - 适用[群猎之力]效果 - 不适用[酣畅狩猎]效果 """ + suit_216(char) pass @@ -3528,6 +3591,11 @@ def suit_221(char: Character): - 适用[群猎之力]效果 - 不适用[酣畅狩猎]效果 """ + if char.equ_options.get('3',0) == 0: + char.SetStatus(SkillAttack=0.178) + else: + char.SetStatus(SkillAttack=0.08,SpeedA=0.15,SpeedM=0.15,SpeedR=0.15) + char.equ_effect.append(EquEffect(name='酣畅狩猎', icon='/equipment/skill/15.png', cd=30, data=5738)) pass @@ -3551,6 +3619,7 @@ def suit_222(char: Character): - 适用[群猎之力]效果 - 不适用[酣畅狩猎]效果 """ + suit_221(char) pass @@ -3574,6 +3643,7 @@ def suit_223(char: Character): - 适用[群猎之力]效果 - 不适用[酣畅狩猎]效果 """ + suit_221(char) pass @@ -3597,6 +3667,7 @@ def suit_224(char: Character): - 适用[群猎之力]效果 - 不适用[酣畅狩猎]效果 """ + suit_221(char) pass @@ -3620,6 +3691,7 @@ def suit_225(char: Character): - 适用[群猎之力]效果 - 不适用[酣畅狩猎]效果 """ + suit_221(char) pass @@ -3645,6 +3717,11 @@ def suit_226(char: Character): - 适用[群猎之力]效果 - 不适用[酣畅狩猎]效果 """ + if char.equ_options.get('3',0) == 0: + char.SetStatus(SkillAttack=0.178) + else: + char.SetStatus(SkillAttack=0.08,SpeedA=0.2,SpeedM=0.0,SpeedR=0.0) + char.equ_effect.append(EquEffect(name='酣畅狩猎', icon='/equipment/skill/15.png', cd=30, data=6750)) pass @@ -3670,6 +3747,7 @@ def suit_227(char: Character): - 适用[群猎之力]效果 - 不适用[酣畅狩猎]效果 """ + suit_226(char) pass @@ -3695,6 +3773,7 @@ def suit_228(char: Character): - 适用[群猎之力]效果 - 不适用[酣畅狩猎]效果 """ + suit_226(char) pass @@ -3720,6 +3799,7 @@ def suit_229(char: Character): - 适用[群猎之力]效果 - 不适用[酣畅狩猎]效果 """ + suit_226(char) pass @@ -3745,6 +3825,7 @@ def suit_230(char: Character): - 适用[群猎之力]效果 - 不适用[酣畅狩猎]效果 """ + suit_226(char) pass @@ -3769,6 +3850,11 @@ def suit_231(char: Character): - 技能伤害 +21.6% - 适用[群猎之力]效果 """ + if char.equ_options.get('3',0) == 0: + char.SetStatus(SkillAttack=0.216) + else: + char.SetStatus(SkillAttack=0.08,SpeedA=0.3,SpeedM=0.3,SpeedR=0.3) + char.equ_effect.append(EquEffect(name='酣畅狩猎', icon='/equipment/skill/15.png', cd=30, data=9563)) pass @@ -3828,6 +3914,10 @@ def suit_237(char: Character): - 魔力波动伤害量:13.714% - 魔力波动范围:150px """ + if char.equ_options.get('4',0) == 0: + char.equ_effect.append(EquEffect(name='普通模式', icon='/equipment/skill/57.png', cd=1, data=19200)) + else: + char.equ_effect.append(EquEffect(name='追击模式', icon='/equipment/skill/57.png', cd=1, data=13714)) pass @@ -3848,6 +3938,7 @@ def suit_238(char: Character): - 魔力波动伤害量:13.714% - 魔力波动范围:150px """ + suit_237(char) pass @@ -3868,6 +3959,7 @@ def suit_239(char: Character): - 魔力波动伤害量:13.714% - 魔力波动范围:150px """ + suit_237(char) pass @@ -3888,6 +3980,7 @@ def suit_240(char: Character): - 魔力波动伤害量:13.714% - 魔力波动范围:150px """ + suit_237(char) pass @@ -3908,6 +4001,7 @@ def suit_241(char: Character): - 魔力波动伤害量:13.714% - 魔力波动范围:150px """ + suit_237(char) pass @@ -3930,6 +4024,11 @@ def suit_242(char: Character): - 魔力波动伤害量:20,571% - 魔力波动范围:150px """ + if char.equ_options.get('4',0) == 0: + char.equ_effect.append(EquEffect(name='普通模式', icon='/equipment/skill/57.png', cd=1, data=31680)) + char.SetStatus(SpeedM=0.25) + else: + char.equ_effect.append(EquEffect(name='追击模式', icon='/equipment/skill/57.png', cd=1, data=20571)) pass @@ -3952,6 +4051,7 @@ def suit_243(char: Character): - 魔力波动伤害量:20,571% - 魔力波动范围:150px """ + suit_242(char) pass @@ -3974,6 +4074,7 @@ def suit_244(char: Character): - 魔力波动伤害量:20,571% - 魔力波动范围:150px """ + suit_242(char) pass @@ -3996,6 +4097,7 @@ def suit_245(char: Character): - 魔力波动伤害量:20,571% - 魔力波动范围:150px """ + suit_242(char) pass @@ -4018,6 +4120,7 @@ def suit_246(char: Character): - 魔力波动伤害量:20,571% - 魔力波动范围:150px """ + suit_242(char) pass @@ -4040,6 +4143,11 @@ def suit_247(char: Character): - 魔力波动伤害量:30,857% - 魔力波动范围:200px """ + if char.equ_options.get('4',0) == 0: + char.equ_effect.append(EquEffect(name='普通模式', icon='/equipment/skill/57.png', cd=1, data=47520)) + char.SetStatus(SpeedM=0.25) + else: + char.equ_effect.append(EquEffect(name='追击模式', icon='/equipment/skill/57.png', cd=1, data=30857)) pass @@ -4062,6 +4170,7 @@ def suit_248(char: Character): - 魔力波动伤害量:30,857% - 魔力波动范围:200px """ + suit_247(char) pass @@ -4084,6 +4193,7 @@ def suit_249(char: Character): - 魔力波动伤害量:30,857% - 魔力波动范围:200px """ + suit_247(char) pass @@ -4106,6 +4216,7 @@ def suit_250(char: Character): - 魔力波动伤害量:30,857% - 魔力波动范围:200px """ + suit_247(char) pass @@ -4128,6 +4239,7 @@ def suit_251(char: Character): - 魔力波动伤害量:30,857% - 魔力波动范围:200px """ + suit_247(char) pass @@ -4151,6 +4263,11 @@ def suit_252(char: Character): - 魔力波动伤害量 :39,428% - 魔力波动范围:200px """ + if char.equ_options.get('4',0) == 0: + char.equ_effect.append(EquEffect(name='普通模式', icon='/equipment/skill/57.png', cd=1, data=60720)) + char.SetStatus(SpeedM=0.25) + else: + char.equ_effect.append(EquEffect(name='追击模式', icon='/equipment/skill/57.png', cd=1, data=39428)) pass diff --git a/backend/dataFiles/dcalc_0.db b/backend/dataFiles/dcalc_0.db index c0cf1667a2ce4507bd0b813150d97f768c9c852d..58f94f7670b889e5bcc6032b2eefec98b9f5e111 100644 GIT binary patch delta 41249 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 delta 270 zcmZoTVB2uOc7imoJ_7^8Hz3{!#I6%H%o+6?6Iv4(TN9XC6PQ~QSXvWUTNBt?6WCi5 zI9d}pw~wi!ro*($>Q bM!ucVfg6Z9RpiCaj{ diff --git a/backend/database/models.py b/backend/database/models.py index 97424c4d..d028260a 100644 --- a/backend/database/models.py +++ b/backend/database/models.py @@ -56,6 +56,36 @@ class EquData(Base): Buffer = Column(Text) suit = Column(Text) +class StoneData(Base): + """ + 装备属性映射 + 首字母大写的属性为调适可能会影响到的属性 + """ + + __tablename__ = 'stone' + + id = Column(Integer, primary_key=True) + name = Column(Text) + rarity = Column(Text) + itemType = Column(Text) + itemDetailType = Column(Text) + Point = Column(Text) + categorize = Column(Text) + imageUrl = Column(Text) + detail = Column(Text) + bufferDetail = Column(Text) + STR = Column(Text) + INT = Column(Text) + Vitality = Column(Text) + Spirit = Column(Text) + AtkP = Column(Text) + AtkM = Column(Text) + AtkI = Column(Text) + SkillAttack = Column(Text) + Attack = Column(Text) + Buffer = Column(Text) + suit = Column(Text) + class EnchantData(Base): __tablename__ = 'enchant' diff --git a/frontend/src/api/info/type.ts b/frontend/src/api/info/type.ts index c541b6ea..f99a0d9e 100644 --- a/frontend/src/api/info/type.ts +++ b/frontend/src/api/info/type.ts @@ -26,6 +26,7 @@ export interface ICharacterInfo { name: string equVersion: string equips: IEquipment[] + stones: IEquipment[] enchants: IEnchantingInfo[] emblems: IEnchantingInfo[] weapons: string[] diff --git a/frontend/src/pages/Character/Equipment/Index.vue b/frontend/src/pages/Character/Equipment/Index.vue index 344ca63c..a2067e83 100644 --- a/frontend/src/pages/Character/Equipment/Index.vue +++ b/frontend/src/pages/Character/Equipment/Index.vue @@ -1,13 +1,25 @@ @@ -17,10 +29,16 @@ import { useInfoStore } from '@/stores/info' import { getImageURL } from '@/utils/images' import Suit from './components/Suit.vue' import Weapon from './components/Weapon.vue' +import Stone from './components/Stone.vue' import Universal from './components/Universal.vue' +import StoneUniversal from './components/StoneUniversal.vue' +import StoneOld from './components/StoneOld.vue' import { useConfigStore } from '@/stores' -const props = defineProps<{ - alter: string -}>() + +const equTab = ref(0) +const stoneTab = ref(0) + + + diff --git a/frontend/src/pages/Character/Equipment/components/Stone.vue b/frontend/src/pages/Character/Equipment/components/Stone.vue index e69de29b..f4f2f7b3 100644 --- a/frontend/src/pages/Character/Equipment/components/Stone.vue +++ b/frontend/src/pages/Character/Equipment/components/Stone.vue @@ -0,0 +1,93 @@ + + + + + diff --git a/frontend/src/pages/Character/Equipment/components/StoneOld.vue b/frontend/src/pages/Character/Equipment/components/StoneOld.vue new file mode 100644 index 00000000..a78e6082 --- /dev/null +++ b/frontend/src/pages/Character/Equipment/components/StoneOld.vue @@ -0,0 +1,58 @@ +` + + + + +` diff --git a/frontend/src/pages/Character/Equipment/components/StoneUniversal.vue b/frontend/src/pages/Character/Equipment/components/StoneUniversal.vue new file mode 100644 index 00000000..63b9eccb --- /dev/null +++ b/frontend/src/pages/Character/Equipment/components/StoneUniversal.vue @@ -0,0 +1,44 @@ + + + + + diff --git a/frontend/src/pages/Character/Equipment/components/Suit.vue b/frontend/src/pages/Character/Equipment/components/Suit.vue index 4ccf9b65..e9773fa8 100644 --- a/frontend/src/pages/Character/Equipment/components/Suit.vue +++ b/frontend/src/pages/Character/Equipment/components/Suit.vue @@ -24,7 +24,7 @@