new:添加米歇尔相关

This commit is contained in:
2026-08-30 22:14:17 +08:00
parent dfc58ffefa
commit 32056eb6aa
8 changed files with 184 additions and 21 deletions
+9 -2
View File
@@ -300,9 +300,16 @@ class CalcEquipMixin(CharacterBase):
if upgrade == 1: if upgrade == 1:
self.SetStatus(SkillAttack=0.04,Buffer=800) self.SetStatus(SkillAttack=0.04,Buffer=800)
pass pass
if upgrade == 2: elif upgrade == 2:
self.SetSkillCD(cd=0.08) self.SetSkillCD(cd=0.08)
self.SetStatus(EquEffectRatio=0.04,Buffer=800) self.SetStatus(EquEffectRatio=0.04,Buffer=800)
elif upgrade == 3:
# 誓约积分 +25
item.oathInfo.Point += 25
elif upgrade == 4:
self.SetStatus(SpeedA=0.04, SpeedM=0.04, SpeedR=0.04, SkillAttack=0.04, Buffer=800)
elif upgrade == 5 or upgrade == 6:
self.SetStatus(SkillAttack=0.04,Buffer=800)
pass pass
pass pass
@@ -426,9 +433,9 @@ class CalcEquipMixin(CharacterBase):
self.calc_basic() self.calc_basic()
self.calc_sundry(config.get('sundry', {})) self.calc_sundry(config.get('sundry', {}))
self.calc_emblems() self.calc_emblems()
suit = self.calc_suits()
self.calc_equs() self.calc_equs()
self.calc_oaths() self.calc_oaths()
suit = self.calc_suits()
skillInfos = [] skillInfos = []
if self.buffer: if self.buffer:
skillInfos = self.calc_buffer_skills() skillInfos = self.calc_buffer_skills()
@@ -1000,6 +1000,29 @@ def enchant_1105(char: CharacterProperty):
char.SetStatus(四维=250) char.SetStatus(四维=250)
pass pass
@register
def enchant_1106(char: CharacterProperty):
"""
DCALC_REMOVE: enchant_1106
四维(120)|全属强(35)
"""
char.AddElementDB('火', 35)
char.AddElementDB('冰', 35)
char.AddElementDB('光', 35)
char.AddElementDB('暗', 35)
char.SetStatus(四维=120)
pass
@register
def enchant_1107(char: CharacterProperty):
"""
DCALC_REMOVE: enchant_1107
四维(300)
"""
char.SetStatus(四维=300)
pass
# endregion # endregion
# region 称号 # region 称号
+96 -1
View File
@@ -15697,7 +15697,7 @@ def equ_2002(char: CharacterProperty,effectDamage: list[float] = []):
buffer = 30 * point - (point // 25) * 30 + (350 if point >= 25 else 0) + (380 if point >= 50 else 0) + (380 if point >= 75 else 0) + (510 if point >= 100 else 0) buffer = 30 * point - (point // 25) * 30 + (350 if point >= 25 else 0) + (380 if point >= 50 else 0) + (380 if point >= 75 else 0) + (510 if point >= 100 else 0)
char.SetStatus(SkillAttack=round(skillAttack / 100,6), Buffer=buffer) char.SetStatus(SkillAttack=round(skillAttack / 100,6), Buffer=buffer)
for part in ['项链', '手镯', '戒指']: for part in ['项链', '手镯', '戒指']:
if char.charEquipInfo[part].equInfo and '黑牙' in char.charEquipInfo[part].equInfo.name: if char.charEquipInfo[part].equInfo and ('黑牙' in char.charEquipInfo[part].equInfo.name or char.charEquipInfo[part].equInfo.name == '含光照世的圣者之瞳'):
char.SetStatus(SkillAttack=0.03, Buffer=75) char.SetStatus(SkillAttack=0.03, Buffer=75)
# char.SetSkillCD(cd=0.04) # char.SetSkillCD(cd=0.04)
# cd = (point // 25) * 0.04 # cd = (point // 25) * 0.04
@@ -15709,6 +15709,101 @@ def equ_2002(char: CharacterProperty,effectDamage: list[float] = []):
char.AwakeSkill.lv += 1 char.AwakeSkill.lv += 1
pass pass
@register
def equ_2003(char: CharacterProperty,effectDamage: list[float] = []):
"""
DCALC_REMOVE: equ_2003 - 含光照世的圣者之瞳
[天域之光]
每穿戴1件祝圣、圣遗物防具,技能伤害 增加 1% (最多叠加5次)
[闪耀的誓约残影]
精度达到100%时,所选的誓约之光将蕴含其中,为穿戴者增添力量。
[誓约残影 - 潜影]
所有速度 +16%
[誓约残影 - 精灵]
所有速度 +8%
回避率 +10%
每3秒恢复3%的生命值和魔法值。
[誓约残影 - 黄金乡]
防具/首饰/特殊装备的强化/增幅数值总和每达到+11时,适用以下效果。(最多叠加12次)
- 技能范围 +1%
- 所有速度 +1%
- 所受物理/魔法伤害 -0.5%
[誓约残影 - 龙战]
所有速度 +30%
无色小晶块消耗量 +5
[誓约残影 - 净化]
每10秒生成最大生命值10%的保护罩。
进入霸体状态。
跳跃时可以再跳跃一次。
[誓约残影 - 天命]
攻击时,有3%的几率发动以下效果中的1种。
- 33秒内技能范围 +33%
- 33秒内所有速度 +33%
- 33秒内恢复33%的生命值和魔法值
[誓约残影 - 能量]
获得生命值最大值15%的[填充型保护罩]。
每秒恢复1%的魔法值。
[誓约残影 - 自然]
所有速度 +10%
技能范围 +10%
[誓约残影 - 女武神]
施放消耗无色小晶块的技能时,能量充能1次。(最多8次)
充满后攻击时,恢复周围800px范围内的队友10%的生命值和魔法值。
[誓约残影 - 青丘]
攻击时, 能量 +20
- 最多400
- 冷却时间1秒
能量充满后攻击时,为队友发动以下效果,持续30秒
- 恢复周围500px范围内的队友0.25%的生命值和魔法值
- 进入霸体状态
[誓约残影 - 群猎]
给队员赋予光环,获得以下效果。
- 所有速度 +15%
- 所受物理/魔法伤害 -7%
[誓约残影 - 领域]
移动速度 +25%
所受物理/魔法伤害 -10%
进入霸体状态
[照耀]
满足以下条件后,在城镇中使用普通聊天输入“照耀”,出现特效。(冷却时间600秒)
- 精度达到100%
- 解锁默示之真谛第九阶段
- 穿戴5个部位圣遗物防具
"""
if 2100 <= char.max_point < 2550:
char.SetStatus(SkillAttack=0.50, Buffer=11220)
pass
elif char.max_point >= 2550:
char.SetStatus(SkillAttack=0.546, Buffer=13030)
pass
point = char.charEquipInfo['戒指'].precision
skillAttack = 0.1 * point - (point // 25) * 0.1 + (1.6 if point >= 25 else 0) + (1.6 if point >= 50 else 0) + (1.6 if point >= 75 else 0) + (2.7 if point >= 100 else 0)
buffer = 30 * point - (point // 25) * 30 + (280 if point >= 25 else 0) + (280 if point >= 50 else 0) + (280 if point >= 75 else 0) + (530 if point >= 100 else 0)
char.SetStatus(SkillAttack=round(skillAttack / 100,6), Buffer=buffer)
for part in ['上衣', '下装', '头肩', '腰带', '鞋']:
if char.charEquipInfo[part].equInfo and '启圣' in char.charEquipInfo[part].equInfo.name:
char.SetStatus(SkillAttack=0.01, Buffer=200)
char.AddElementDB('火', 40, 1)
char.AddElementDB('冰', 40, 1)
char.AddElementDB('光', 40, 1)
char.AddElementDB('暗', 40, 1)
pass
# endregion # endregion
# region 春节 # region 春节
+1 -1
View File
@@ -141,7 +141,7 @@ def trans_to_dcalc_set(detail, alter: AltersDep):
# 'fusion': 0, # 'fusion': 0,
# 锻造等级 # 锻造等级
'refine': equ.get('enhance', {}).get('refine', 0), 'refine': equ.get('enhance', {}).get('refine', 0),
# 调试等级 # 调适等级
'adaptation': equ.get('adaptation', 0), 'adaptation': equ.get('adaptation', 0),
# 精度 # 精度
'precision': 100, 'precision': 100,
Binary file not shown.
@@ -17,8 +17,13 @@ export default defineComponent({
/** 是否可以设置秘宝精度 */ /** 是否可以设置秘宝精度 */
const can_set_secret = computed(() => { const can_set_secret = computed(() => {
return ['武器', '辅助装备', '魔法石', '耳环'].includes(part.value as string) return ['武器', '辅助装备', '魔法石', '耳环', '戒指'].includes(part.value as string)
}) })
// const can_set_suit = computed(() => {
// return ['戒指'].includes(part.value as string)
// })
const basicInfoStore = useInfoStore() const basicInfoStore = useInfoStore()
const enchant_list = computed<IEnchantingInfo[] | undefined>(() => { const enchant_list = computed<IEnchantingInfo[] | undefined>(() => {
@@ -32,6 +37,21 @@ export default defineComponent({
.sort((a, b) => (b.fame ?? 0) - (a.fame ?? 0)) .sort((a, b) => (b.fame ?? 0) - (a.fame ?? 0))
}) })
// const suit_list = computed(() => {
// const uniqueSuits = new Map<number, { name: string; value: number; imageUrl: string }>()
// basicInfoStore.suits.forEach((a) => {
// if (!uniqueSuits.has(a.suitId)) {
// uniqueSuits.set(a.suitId, {
// name: a.suitName,
// value: a.suitId,
// imageUrl: a.imageUrl.replace('/suit/', '/suit/icon/'),
// })
// }
// })
// const res = Array.from(uniqueSuits.values())
// return res
// })
// const emblem_list = computed<IEnchantingInfo[] | undefined>(() => { // const emblem_list = computed<IEnchantingInfo[] | undefined>(() => {
// return basicInfoStore.emblems.filter((item) => item.position.includes(part.value)) // return basicInfoStore.emblems.filter((item) => item.position.includes(part.value))
// }) // })
@@ -274,6 +294,7 @@ export default defineComponent({
) : ( ) : (
<div></div> <div></div>
)} )}
{/* {can_set_suit.value ? <div></div> : <div></div>} */}
</> </>
)} )}
</div> </div>
@@ -21,20 +21,37 @@
</template> </template>
</calc-select> </calc-select>
</div> </div>
<div class="equ-profile-item" v-else> <template v-else>
<div class="row-name">誓约升级</div> <div class="equ-profile-item">
<template v-for="i in Array.from({ length: 4 }, (_, i) => i)" :key="i"> <div class="row-name">誓约升级</div>
<calc-select <template v-for="i in Array.from({ length: 4 }, (_, i) => i)" :key="i">
:model-value="getOathUpgradeValue(i)" <calc-select
@update:model-value="setOathUpgradeValue(i, $event)" :model-value="getOathUpgradeValue(i)"
class="flex-1 !h-20px" @update:model-value="setOathUpgradeValue(i, $event)"
> class="flex-1 !h-20px"
<calc-option :value="0">无</calc-option> >
<calc-option :value="1">技攻 +4%</calc-option> <calc-option :value="0">无</calc-option>
<calc-option :value="2">CD -8%</calc-option> <calc-option :value="1">技攻 +4%</calc-option>
</calc-select> <calc-option :value="2">CD -8%</calc-option>
</template> <calc-option :value="3">誓约积分 +25</calc-option>
</div> </calc-select>
</template>
</div>
<div class="equ-profile-item">
<template v-for="i in Array.from({ length: 5 }, (_, i) => i)" :key="i">
<calc-select
:model-value="getOathUpgradeValue(i + 4)"
@update:model-value="setOathUpgradeValue(i + 4, $event)"
class="flex-1 !h-20px"
>
<calc-option :value="0">无</calc-option>
<calc-option :value="1">速度 +4%</calc-option>
<calc-option :value="2">范围 +4%</calc-option>
<calc-option :value="3">减伤 +4%</calc-option>
</calc-select>
</template>
</div>
</template>
</div> </div>
</template> </template>
@@ -33,7 +33,7 @@
<span class="w-50px text-right block"> <span class="w-50px text-right block">
{{ suit.rarity }} {{ lvFormat(suit.level, suit.rarity) }} {{ suit.rarity }} {{ lvFormat(suit.level, suit.rarity) }}
</span> </span>
<span class="w-50px text-right block">{{ suit.point }}点</span> <span class="w-40px text-right block">{{ suit.point }}点</span>
</div> </div>
</div> </div>
<!-- <div class="flex justify-end mr-10px text-#836832" v-if="correction > 0"> <!-- <div class="flex justify-end mr-10px text-#836832" v-if="correction > 0">
@@ -51,7 +51,7 @@
<span class="w-50px text-right block"> <span class="w-50px text-right block">
{{ oathSuit.rarity }} {{ lvFormat(oathSuit.level, oathSuit.rarity) }} {{ oathSuit.rarity }} {{ lvFormat(oathSuit.level, oathSuit.rarity) }}
</span> </span>
<span class="w-50px text-right block">{{ oathSuit.point }}点</span> <span class="w-40px text-right block">{{ oathSuit.point }}点</span>
</div> </div>
</div> </div>
<div v-if="oathSkills" class="flex justify-around my-5px oath-skill"> <div v-if="oathSkills" class="flex justify-around my-5px oath-skill">