更新嘉音别名;修复等

This commit is contained in:
UCPr 2025-01-22 23:59:12 +08:00
parent 2ee4b2ef09
commit 4f189cbb71
7 changed files with 35 additions and 385 deletions

View file

@ -1,4 +1,3 @@
import { weaponIDToProfession } from '../../lib/convert/weapon.js';
import _ from 'lodash';
export var elementEnum;
(function (elementEnum) {
@ -90,8 +89,10 @@ export class BuffManager {
// 武器buff职业检查
if (buff.source === 'Weapon') {
const professionCheck = (avatar) => {
const weapon_profession = weaponIDToProfession(avatar.weapon.id);
return !weapon_profession || avatar.avatar_profession === weapon_profession;
const weapon_profession = avatar.weapon?.profession;
if (!weapon_profession)
return true;
return avatar.avatar_profession === weapon_profession;
};
const oriCheck = typeof buff.check === 'function' && buff.check;
buff.check = ({ avatar, buffM, calc }) => professionCheck(avatar) && (!oriCheck || oriCheck({ avatar, buffM, calc }));

View file

@ -1,6 +1,5 @@
import type { ZZZAvatarInfo } from '../avatar.js'
import type { Calculator, skill } from './Calculator.ts'
import { weaponIDToProfession } from '../../lib/convert/weapon.js'
import _ from 'lodash'
export enum elementEnum {
@ -139,8 +138,9 @@ export class BuffManager {
// 武器buff职业检查
if (buff.source === 'Weapon') {
const professionCheck = (avatar: ZZZAvatarInfo) => {
const weapon_profession = weaponIDToProfession(avatar.weapon.id)
return !weapon_profession || avatar.avatar_profession === weapon_profession
const weapon_profession = avatar.weapon?.profession
if (!weapon_profession) return true
return avatar.avatar_profession === weapon_profession
}
const oriCheck = typeof buff.check === 'function' && buff.check
buff.check = ({ avatar, buffM, calc }) => professionCheck(avatar) && (!oriCheck || oriCheck({ avatar, buffM, calc }))

View file

@ -106,8 +106,10 @@ export function avatar_ability(avatar) {
return calc.calc();
}
/** 武器加成 */
export function weapon_buff(equipment, buffM) {
const name = equipment.name;
export function weapon_buff(weapon, buffM) {
const name = weapon?.name;
if (!name)
return;
logger.debug('武器:' + name);
const m = calcFnc.weapon[name];
if (!m)
@ -116,29 +118,29 @@ export function weapon_buff(equipment, buffM) {
if (m.buffs)
buffM.new(m.buffs);
if (m.calc)
m.calc(buffM, equipment.star);
m.calc(buffM, weapon.star);
buffM.default({});
}
/** 套装加成 */
export function set_buff(equip, buffM) {
export function set_buff(equips, buffM) {
buffM.default({ name: '', source: 'Set' });
const setCount = {};
for (const equip_detail of equip) {
if (equip_detail.equipment_type == 5) {
for (const equip of equips) {
if (equip.equipment_type == 5) {
// 属伤加成
const index = [31503, 31603, 31703, 31803, 31903].indexOf(equip_detail.main_properties[0].property_id);
const index = [31503, 31603, 31703, 31803, 31903].indexOf(equip.main_properties[0].property_id);
if (index > -1 && elementEnum[index]) {
// @ts-ignore
buffM.new({
name: '驱动盘5号位',
type: '增伤',
value: Number(equip_detail.main_properties[0].base.replace('%', '')) / 100,
value: Number(equip.main_properties[0].base.replace('%', '')) / 100,
isForever: true,
element: elementEnum[index]
});
}
}
const suit_name = equip_detail.equip_suit.name;
const suit_name = equip.equip_suit.name;
setCount[suit_name] = (setCount[suit_name] || 0) + 1;
}
buffM.setCount = setCount;

View file

@ -133,37 +133,38 @@ export function avatar_ability(avatar: ZZZAvatarInfo) {
}
/** 武器加成 */
export function weapon_buff(equipment: ZZZAvatarInfo['weapon'], buffM: BuffManager) {
const name = equipment.name
export function weapon_buff(weapon: ZZZAvatarInfo['weapon'], buffM: BuffManager) {
const name = weapon?.name
if (!name) return
logger.debug('武器:' + name)
const m = calcFnc.weapon[name]
if (!m) return
buffM.default({ name, source: 'Weapon' })
if (m.buffs) buffM.new(m.buffs)
if (m.calc) m.calc(buffM, equipment.star)
if (m.calc) m.calc(buffM, weapon.star)
buffM.default({})
}
/** 套装加成 */
export function set_buff(equip: ZZZAvatarInfo['equip'], buffM: BuffManager) {
export function set_buff(equips: ZZZAvatarInfo['equip'], buffM: BuffManager) {
buffM.default({ name: '', source: 'Set' })
const setCount: { [name: string]: number } = {}
for (const equip_detail of equip) {
if (equip_detail.equipment_type == 5) {
for (const equip of equips) {
if (equip.equipment_type == 5) {
// 属伤加成
const index = [31503, 31603, 31703, 31803, 31903].indexOf(equip_detail.main_properties[0].property_id)
const index = [31503, 31603, 31703, 31803, 31903].indexOf(equip.main_properties[0].property_id)
if (index > -1 && elementEnum[index]) {
// @ts-ignore
buffM.new({
name: '驱动盘5号位',
type: '增伤',
value: Number(equip_detail.main_properties[0].base.replace('%', '')) / 100,
value: Number(equip.main_properties[0].base.replace('%', '')) / 100,
isForever: true,
element: elementEnum[index]
})
}
}
const suit_name = equip_detail.equip_suit.name
const suit_name = equip.equip_suit.name
setCount[suit_name] = (setCount[suit_name] || 0) + 1
}
buffM.setCount = setCount