mirror of
https://github.com/ZZZure/ZZZ-Plugin.git
synced 2025-12-15 12:47:48 +00:00
84 lines
3.7 KiB
JavaScript
84 lines
3.7 KiB
JavaScript
import _ from 'lodash';
|
|
import { getMapData } from '../../utils/file.js';
|
|
import { ZZZAvatarInfo } from '../avatar.js';
|
|
const weapon_effect = getMapData('weapon_effect');
|
|
|
|
/**
|
|
* 武器加成
|
|
* @param {ZZZAvatarInfo['weapon']} equipment 武器
|
|
* @param {ZZZAvatarInfo['damage_basic_properties']['base_detail']} base_detail 基础属性
|
|
* @param {ZZZAvatarInfo['damage_basic_properties']['bonus_detail']} bonus_detail 套装加成
|
|
* @returns {ZZZAvatarInfo['damage_basic_properties']['bonus_detail']} 套装加成
|
|
*/
|
|
export const weapon_ability = (equipment, base_detail, bonus_detail) => {
|
|
let equipid = equipment.id
|
|
switch (equipid) {
|
|
case 14109:{
|
|
let CriticalDamageBase = _.get(bonus_detail, 'CriticalDamageBase', 0);
|
|
bonus_detail['CriticalDamageBase'] = CriticalDamageBase + weapon_effect[equipment.id]['Param']['CriticalDamageBase'][equipment.star - 1];
|
|
|
|
let IceDmgAdd = _.get(bonus_detail, 'Ice_DmgAdd', 0);
|
|
bonus_detail['Ice_DmgAdd'] = IceDmgAdd + weapon_effect[equipment.id]['Param']['IceDmgAdd'][equipment.star - 1] * 2;
|
|
break;
|
|
}
|
|
case 14119:{
|
|
let IceDmgAdd = _.get(bonus_detail, 'Ice_DmgAdd', 0);
|
|
bonus_detail['Ice_DmgAdd'] = IceDmgAdd + weapon_effect[equipment.id]['Param']['IceDmgAdd'][equipment.star - 1];
|
|
|
|
let CriticalChanceBase = _.get(bonus_detail, 'CriticalChanceBase', 0);
|
|
bonus_detail['CriticalChanceBase'] = CriticalChanceBase +weapon_effect[equipment.id]['Param']['CriticalChanceBase'][equipment.star - 1];
|
|
break;
|
|
}
|
|
case 14102:{
|
|
let Physical_DmgAdd = _.get(bonus_detail, 'Physical_DmgAdd', 0);
|
|
bonus_detail['Physical_DmgAdd'] = Physical_DmgAdd + weapon_effect[equipment.id]['Param']['Physical_DmgAdd'][equipment.star - 1];
|
|
|
|
let All_DmgAdd = _.get(bonus_detail, 'All_DmgAdd', 0);
|
|
bonus_detail['All_DmgAdd'] = All_DmgAdd + weapon_effect[equipment.id]['Param']['All_DmgAdd'][equipment.star - 1];
|
|
break;
|
|
}
|
|
case 14104:{
|
|
let AttackAddedRatio = _.get(bonus_detail, 'AttackAddedRatio', 0);
|
|
bonus_detail['AttackAddedRatio'] = AttackAddedRatio + weapon_effect[equipment.id]['Param']['AttackAddedRatio'][equipment.star - 1] * 8;
|
|
break;
|
|
}
|
|
case 14124:{
|
|
let A_DmgAdd = _.get(bonus_detail, 'A_DmgAdd', 0);
|
|
bonus_detail['A_DmgAdd'] = A_DmgAdd + weapon_effect[equipment.id]['Param']['A_DmgAdd'][equipment.star - 1] * 8;
|
|
break;
|
|
}
|
|
case 13001:{
|
|
let R_DmgAdd = _.get(bonus_detail, 'R_DmgAdd', 0);
|
|
bonus_detail['R_DmgAdd'] = R_DmgAdd + weapon_effect[equipment.id]['Param']['R_DmgAdd'][equipment.star - 1] * 3;
|
|
break;
|
|
}
|
|
case 13004:{
|
|
let AttackAddedRatio = _.get(bonus_detail, 'AttackAddedRatio', 0);
|
|
bonus_detail['AttackAddedRatio'] = AttackAddedRatio + weapon_effect[equipment.id]['Param']['AttackAddedRatio'][equipment.star - 1];
|
|
break;
|
|
}
|
|
case 13013:{
|
|
let EUP_DmgAdd = _.get(bonus_detail, 'EUP_DmgAdd', 0);
|
|
bonus_detail['EUP_DmgAdd'] = EUP_DmgAdd + weapon_effect[equipment.id]['Param']['EUP_DmgAdd'][equipment.star - 1];
|
|
break;
|
|
}
|
|
case 13106:{
|
|
let EUP_DmgAdd = _.get(bonus_detail, 'EUP_DmgAdd', 0);
|
|
bonus_detail['EUP_DmgAdd'] = EUP_DmgAdd + weapon_effect[equipment.id]['Param']['EUP_DmgAdd'][equipment.star - 1] * 15;
|
|
break;
|
|
}
|
|
case 13108:{
|
|
let Physical_DmgAdd = _.get(bonus_detail, 'Physical_DmgAdd', 0);
|
|
bonus_detail['Physical_DmgAdd'] = Physical_DmgAdd + weapon_effect[equipment.id]['Param']['Physical_DmgAdd'][equipment.star - 1];
|
|
break;
|
|
}
|
|
case 13111:{
|
|
let A_DmgAdd = _.get(bonus_detail, 'A_DmgAdd', 0);
|
|
bonus_detail['A_DmgAdd'] = A_DmgAdd + weapon_effect[equipment.id]['Param']['A_DmgAdd'][equipment.star - 1];
|
|
let C_DmgAdd = _.get(bonus_detail, 'C_DmgAdd', 0);
|
|
bonus_detail['C_DmgAdd'] = C_DmgAdd + weapon_effect[equipment.id]['Param']['A_DmgAdd'][equipment.star - 1];
|
|
break;
|
|
}
|
|
}
|
|
return bonus_detail;
|
|
};
|