@@ -255,6 +255,16 @@ class CalcEquipMixin(CharacterBase):
|
|||||||
def calc_oaths(self):
|
def calc_oaths(self):
|
||||||
"""计算装备基础效果"""
|
"""计算装备基础效果"""
|
||||||
effects = get_equipment(self.equVersion).funs
|
effects = get_equipment(self.equVersion).funs
|
||||||
|
for item in self.charOathInfo:
|
||||||
|
oath = item.oathInfo
|
||||||
|
if oath is None:
|
||||||
|
continue
|
||||||
|
fun = effects.execture(f'oath_{oath.id}')
|
||||||
|
if fun is None:
|
||||||
|
continue
|
||||||
|
filtered_dict = {k: v for k, v in oath.__dict__.items() if k[0].isupper()}
|
||||||
|
self.SetStatus(**filtered_dict)
|
||||||
|
fun(self)
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def calc_avatar(self, avatar: dict):
|
def calc_avatar(self, avatar: dict):
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ from . import oathSuitSkill
|
|||||||
from .register import execture
|
from .register import execture
|
||||||
|
|
||||||
options = [
|
options = [
|
||||||
{'id': 1, 'name': '龙战八荒', 'options': ['BUFF OFF', 'BUFF ON', '期望']},
|
{'id': 1, 'name': '龙战八荒', 'options': ['BUFF ON', 'BUFF OFF', '期望']},
|
||||||
{'id': 2, 'name': '混沌净化', 'options': ['净化', '堕落']},
|
{'id': 2, 'name': '混沌净化', 'options': ['净化', '堕落']},
|
||||||
{'id': 3, 'name': '群猎美学', 'options': ['单刷', '组队']},
|
{'id': 3, 'name': '群猎美学', 'options': ['单刷', '组队']},
|
||||||
{'id': 4, 'name': '魔攻核', 'options': ['普通', '追击']},
|
{'id': 4, 'name': '魔攻核', 'options': ['普通', '追击']},
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -230,7 +230,6 @@ def suit_63(char: CharacterProperty):
|
|||||||
char.equ_effect.append(EquEffect(name='淘银热', icon='/equipment/suit/0.png', cd=10, data=21250))
|
char.equ_effect.append(EquEffect(name='淘银热', icon='/equipment/suit/0.png', cd=10, data=21250))
|
||||||
else:
|
else:
|
||||||
char.equ_effect.append(EquEffect(name='淘银热', icon='/equipment/suit/0.png', cd=10, data=25500))
|
char.equ_effect.append(EquEffect(name='淘银热', icon='/equipment/suit/0.png', cd=10, data=25500))
|
||||||
print('~~~~~~~~~')
|
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
@@ -274,10 +273,10 @@ def suit_79(char: CharacterProperty):
|
|||||||
# level: 1
|
# level: 1
|
||||||
# value: 通过释放龙之力来增强自己。 [烛龙之火] 无色小晶块消耗量减少3个。 - 不会减少到少于1个 所有速度 +10% [烛龙腾霄] 攻击时,烛龙腾霄。(冷却时间10秒) * 烛龙腾霄伤害量:14,400% [荧惑如意珠][装备主动技能] 将[烛龙之火]变更为[烛龙的如意珠],效果持续30秒。 - 冷却时间60秒 [烛龙的如意珠] - 所有速度 +30% - 技能伤害 +3% - 无色小晶块技能的消耗量固定30个 - 施放消耗无色小晶块的技能时,发动白龙强袭(冷却时间3秒) * 白龙强袭伤害量:10980%
|
# value: 通过释放龙之力来增强自己。 [烛龙之火] 无色小晶块消耗量减少3个。 - 不会减少到少于1个 所有速度 +10% [烛龙腾霄] 攻击时,烛龙腾霄。(冷却时间10秒) * 烛龙腾霄伤害量:14,400% [荧惑如意珠][装备主动技能] 将[烛龙之火]变更为[烛龙的如意珠],效果持续30秒。 - 冷却时间60秒 [烛龙的如意珠] - 所有速度 +30% - 技能伤害 +3% - 无色小晶块技能的消耗量固定30个 - 施放消耗无色小晶块的技能时,发动白龙强袭(冷却时间3秒) * 白龙强袭伤害量:10980%
|
||||||
# rarity: 史诗
|
# rarity: 史诗
|
||||||
if char.equ_options.get('1', 0) == 0:
|
if char.equ_options.get('1', 0) == 1:
|
||||||
char.SetStatus(SpeedA=0.1, SpeedM=0.1, SpeedR=0.1)
|
char.SetStatus(SpeedA=0.1, SpeedM=0.1, SpeedR=0.1)
|
||||||
char.equ_effect.append(EquEffect(name='烛龙腾霄', icon='/equipment/suit/1.png', cd=10, data=14400))
|
char.equ_effect.append(EquEffect(name='烛龙腾霄', icon='/equipment/suit/1.png', cd=10, data=14400))
|
||||||
elif char.equ_options.get('1', 0) == 1:
|
elif char.equ_options.get('1', 0) == 0:
|
||||||
char.SetStatus(SpeedA=0.3, SpeedM=0.3, SpeedR=0.3)
|
char.SetStatus(SpeedA=0.3, SpeedM=0.3, SpeedR=0.3)
|
||||||
char.SetStatus(SkillAttack=0.03)
|
char.SetStatus(SkillAttack=0.03)
|
||||||
char.equ_effect.append(EquEffect(name='白龙强袭', icon='/equipment/suit/1.png', cd=3, data=10980))
|
char.equ_effect.append(EquEffect(name='白龙强袭', icon='/equipment/suit/1.png', cd=3, data=10980))
|
||||||
@@ -295,15 +294,15 @@ def suit_84(char: CharacterProperty):
|
|||||||
# level: 1
|
# level: 1
|
||||||
# value: 通过释放龙之力来增强自己。 [应龙之火] 无色小晶块消耗量减少5个。 不会减少到少于1个 所有速度 +10% [应龙腾霄] 攻击时, 应龙腾霄。 (冷却时间10秒) * 应龙腾霄伤害量 : 14,400% [荧惑如意珠] [装备主动技能] 将[应龙之火]变更为[应龙的如意珠] - 再次使用, 解除效果 [应龙的如意珠] - 所有速度 +30% - 技能伤害 增加 3% - 无色小晶块技能的消耗量固定15个 - 施放消耗无色小晶块的技能时,白龙强袭 (冷却时间3秒) * 白龙强袭伤害量 : 10,980% [应龙之怒] [应龙的如意珠]效果生效状态下攻击时, 黑龙横扫敌人。 (冷却时间4秒) * 横扫伤害量 : 10,200% [太初的记忆] 套装积分达到2550后,每增加70点套装积分,可以获得以下效果。 - 技能伤害 增加 1% - 增益量 +100
|
# value: 通过释放龙之力来增强自己。 [应龙之火] 无色小晶块消耗量减少5个。 不会减少到少于1个 所有速度 +10% [应龙腾霄] 攻击时, 应龙腾霄。 (冷却时间10秒) * 应龙腾霄伤害量 : 14,400% [荧惑如意珠] [装备主动技能] 将[应龙之火]变更为[应龙的如意珠] - 再次使用, 解除效果 [应龙的如意珠] - 所有速度 +30% - 技能伤害 增加 3% - 无色小晶块技能的消耗量固定15个 - 施放消耗无色小晶块的技能时,白龙强袭 (冷却时间3秒) * 白龙强袭伤害量 : 10,980% [应龙之怒] [应龙的如意珠]效果生效状态下攻击时, 黑龙横扫敌人。 (冷却时间4秒) * 横扫伤害量 : 10,200% [太初的记忆] 套装积分达到2550后,每增加70点套装积分,可以获得以下效果。 - 技能伤害 增加 1% - 增益量 +100
|
||||||
# rarity: 太初
|
# rarity: 太初
|
||||||
if char.equ_options.get('1', 0) == 0:
|
if char.equ_options.get('1', 0) == 1:
|
||||||
char.SetStatus(SpeedA=0.1, SpeedM=0.1, SpeedR=0.1)
|
char.SetStatus(SpeedA=0.1, SpeedM=0.1, SpeedR=0.1)
|
||||||
char.equ_effect.append(EquEffect(name='应龙腾霄', icon='/equipment/suit/1.png', cd=10, data=14400))
|
char.equ_effect.append(EquEffect(name='应龙腾霄', icon='/equipment/suit/1.png', cd=10, data=18250))
|
||||||
elif char.equ_options.get('1', 0) == 1:
|
elif char.equ_options.get('1', 0) == 0:
|
||||||
char.SetStatus(SpeedA=0.3, SpeedM=0.3, SpeedR=0.3)
|
char.SetStatus(SpeedA=0.3, SpeedM=0.3, SpeedR=0.3)
|
||||||
char.SetStatus(SkillAttack=0.03)
|
char.SetStatus(SkillAttack=0.03)
|
||||||
char.equ_effect.append(EquEffect(name='白龙强袭', icon='/equipment/suit/1.png', cd=3, data=10980))
|
char.equ_effect.append(EquEffect(name='白龙强袭', icon='/equipment/suit/1.png', cd=3, data=13900))
|
||||||
char.equ_effect.append(EquEffect(name='黑龙横扫', icon='/equipment/suit/1.png', cd=4, data=10200))
|
char.equ_effect.append(EquEffect(name='黑龙横扫', icon='/equipment/suit/1.png', cd=4, data=12950))
|
||||||
char.equ_effect.append(EquEffect(name='应龙腾霄', icon='/equipment/suit/1.png', cd=10, data=14400))
|
char.equ_effect.append(EquEffect(name='应龙腾霄', icon='/equipment/suit/1.png', cd=10, data=18250))
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -44,7 +44,7 @@ const partIcon = computed(() => {
|
|||||||
const rarityIcon = computed(() => {
|
const rarityIcon = computed(() => {
|
||||||
return (part: string) => {
|
return (part: string) => {
|
||||||
const rarity = Math.floor((props.detail?.[part]?.lv || 0) / 5)
|
const rarity = Math.floor((props.detail?.[part]?.lv || 0) / 5)
|
||||||
console.log(rarity)
|
// console.log(rarity)
|
||||||
return new URL(`../Images/rarity/${rarity}.png`, import.meta.url).href
|
return new URL(`../Images/rarity/${rarity}.png`, import.meta.url).href
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -74,14 +74,18 @@ const mainAttr = computed(() => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
const detail = computed(() =>
|
const detail = computed(() =>
|
||||||
props.suit?.value.replace(/\[([^\[\]技能]+?)\]/g, '<span style="color:#3d9147">[$1]</span>'),
|
props.suit?.value?.replace(
|
||||||
|
/\[(?![^\]]*技能)[^\[\]]+\]/g,
|
||||||
|
(match) => `<span style="color:#3d9147">${match}</span>`,
|
||||||
|
),
|
||||||
)
|
)
|
||||||
|
|
||||||
const bufferDetail = computed(() => {
|
const bufferDetail = computed(() => {
|
||||||
const detail = props.suit?.bufferValue
|
const detail = props.suit?.bufferValue
|
||||||
if (!detail || detail == '-') return undefined
|
if (!detail || detail == '-') return undefined
|
||||||
return props.suit?.bufferValue.replace(
|
return props.suit?.bufferValue?.replace(
|
||||||
/\[(?![^\]]*技能)[^\[\]]+\]/g, match => `<span style="color:#3d9147">${match}</span>`
|
/\[(?![^\]]*技能)[^\[\]]+\]/g,
|
||||||
|
(match) => `<span style="color:#3d9147">${match}</span>`,
|
||||||
)
|
)
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ export default defineComponent({
|
|||||||
const { state, execute, isLoading } = useAsyncState(
|
const { state, execute, isLoading } = useAsyncState(
|
||||||
async () => {
|
async () => {
|
||||||
const res = await api.getSkillFromCode(skillCode.value)
|
const res = await api.getSkillFromCode(skillCode.value)
|
||||||
console.log(res)
|
// console.log(res)
|
||||||
configStore.config.skills = res.skills
|
configStore.config.skills = res.skills
|
||||||
const { alert } = useDialog()
|
const { alert } = useDialog()
|
||||||
visible.value = false
|
visible.value = false
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ const weapons = computed(() => {
|
|||||||
const items = infoStore.equips.filter(
|
const items = infoStore.equips.filter(
|
||||||
(equip) => equip.itemType === '武器' && equip.itemDetailType == '光剑',
|
(equip) => equip.itemType === '武器' && equip.itemDetailType == '光剑',
|
||||||
)
|
)
|
||||||
console.log(items)
|
// console.log(items)
|
||||||
const res: (IEquipment | undefined)[] = []
|
const res: (IEquipment | undefined)[] = []
|
||||||
Array.from(new Set(items.map((item) => item.itemDetailType))).forEach((type) => {
|
Array.from(new Set(items.map((item) => item.itemDetailType))).forEach((type) => {
|
||||||
const weapon = items.filter((item) => item.itemDetailType === type)
|
const weapon = items.filter((item) => item.itemDetailType === type)
|
||||||
|
|||||||
@@ -358,7 +358,7 @@ const curOathSkillInfo = computed(() => {
|
|||||||
if (!res) {
|
if (!res) {
|
||||||
return undefined
|
return undefined
|
||||||
}
|
}
|
||||||
console.log(curEquInfo.value?.suit[0])
|
// console.log(curEquInfo.value?.suit[0])
|
||||||
return {
|
return {
|
||||||
...res,
|
...res,
|
||||||
SkillAttack: parseFloat(res.SkillAttack.toString().split(',')[curOathSkillLv.value.lv - 1]),
|
SkillAttack: parseFloat(res.SkillAttack.toString().split(',')[curOathSkillLv.value.lv - 1]),
|
||||||
|
|||||||
@@ -67,7 +67,7 @@ const clearStandard = () => {
|
|||||||
|
|
||||||
const chooseCategory = (cat: 'equ' | 'oath') => {
|
const chooseCategory = (cat: 'equ' | 'oath') => {
|
||||||
type.value = cat
|
type.value = cat
|
||||||
console.log(type.value)
|
// console.log(type.value)
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|||||||
@@ -86,7 +86,7 @@ const order = ref<'asc' | 'desc'>('desc')
|
|||||||
const config = useConfigStore()
|
const config = useConfigStore()
|
||||||
|
|
||||||
const data = computed(() => {
|
const data = computed(() => {
|
||||||
return props.data.sort((a, b) => {
|
return [...props.data].sort((a, b) => {
|
||||||
let aValue = 0
|
let aValue = 0
|
||||||
let bValue = 0
|
let bValue = 0
|
||||||
if (['cd', 'name'].includes(sort.value)) {
|
if (['cd', 'name'].includes(sort.value)) {
|
||||||
|
|||||||
@@ -208,7 +208,7 @@ const correction = computed(() => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
const changeSkillId = (skill: { skillId: string; enable: boolean }) => {
|
const changeSkillId = (skill: { skillId: string; enable: boolean }) => {
|
||||||
console.log(skill)
|
// console.log(skill)
|
||||||
if (!skill.enable) return
|
if (!skill.enable) return
|
||||||
if (activeSkillId.value !== skill.skillId) {
|
if (activeSkillId.value !== skill.skillId) {
|
||||||
activeSkillId.value = skill.skillId
|
activeSkillId.value = skill.skillId
|
||||||
@@ -218,7 +218,7 @@ const changeSkillId = (skill: { skillId: string; enable: boolean }) => {
|
|||||||
const oathSkills = computed(() => {
|
const oathSkills = computed(() => {
|
||||||
const skillOrder = ['2', '1', '3']
|
const skillOrder = ['2', '1', '3']
|
||||||
|
|
||||||
const res = props.suits.oath?.skills.sort((left, right) => {
|
const res = [...(props.suits.oath?.skills ?? [])].sort((left, right) => {
|
||||||
const leftIndex = skillOrder.indexOf(left.skillId)
|
const leftIndex = skillOrder.indexOf(left.skillId)
|
||||||
const rightIndex = skillOrder.indexOf(right.skillId)
|
const rightIndex = skillOrder.indexOf(right.skillId)
|
||||||
const normalizedLeftIndex = leftIndex === -1 ? skillOrder.length : leftIndex
|
const normalizedLeftIndex = leftIndex === -1 ? skillOrder.length : leftIndex
|
||||||
@@ -236,7 +236,7 @@ const oathSkills = computed(() => {
|
|||||||
|
|
||||||
const equ = (id: string) => {
|
const equ = (id: string) => {
|
||||||
if (props.display == 'oath') {
|
if (props.display == 'oath') {
|
||||||
console.log(props.oaths, id)
|
// console.log(props.oaths, id)
|
||||||
return infoStore.oaths.find((e) => e.id == id)
|
return infoStore.oaths.find((e) => e.id == id)
|
||||||
}
|
}
|
||||||
return infoStore.equips.find((e) => e.id == id)
|
return infoStore.equips.find((e) => e.id == id)
|
||||||
|
|||||||
@@ -353,7 +353,7 @@ export const decrypt = (encryptedData: string) => {
|
|||||||
time: parseInt(decryptedTimestamp),
|
time: parseInt(decryptedTimestamp),
|
||||||
}
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.log(e)
|
// console.log(e)
|
||||||
return {
|
return {
|
||||||
uid: -1,
|
uid: -1,
|
||||||
time: 0,
|
time: 0,
|
||||||
|
|||||||
Reference in New Issue
Block a user