mirror of
https://github.com/ZZZure/ZZZ-Plugin.git
synced 2025-12-16 21:27:47 +00:00
添加[朱鸢]伤害计算,完善驱动盘与强攻武器的计算
This commit is contained in:
parent
96dd423b84
commit
e76a9ed7ed
5 changed files with 627 additions and 216 deletions
|
|
@ -14,192 +14,341 @@ const skilldict = getMapData('SkillData');
|
||||||
* }[]} 伤害列表
|
* }[]} 伤害列表
|
||||||
*/
|
*/
|
||||||
export const avatar_ability = (data, base_detail, bonus_detail) => {
|
export const avatar_ability = (data, base_detail, bonus_detail) => {
|
||||||
const damagelist = [];
|
const damagelist = [];
|
||||||
switch (data.id) {
|
switch (data.id) {
|
||||||
case 1191:
|
case 1191:{
|
||||||
/** 处理命座加成 */
|
/** 处理命座加成 */
|
||||||
if (data.rank >= 1) {
|
if (data.rank >= 1) {
|
||||||
const CriticalChanceBase = _.get(bonus_detail, 'CriticalChanceBase', 0);
|
const CriticalChanceBase = _.get(bonus_detail, 'CriticalChanceBase', 0);
|
||||||
bonus_detail['CriticalChanceBase'] = CriticalChanceBase + 0.12;
|
bonus_detail['CriticalChanceBase'] = CriticalChanceBase + 0.12;
|
||||||
}
|
}
|
||||||
if (data.rank >= 2) {
|
if (data.rank >= 2) {
|
||||||
const ES_CriticalDamageBase = _.get(
|
const ES_CriticalDamageBase = _.get(
|
||||||
bonus_detail,
|
bonus_detail,
|
||||||
'ES_CriticalDamageBase',
|
'ES_CriticalDamageBase',
|
||||||
0
|
0
|
||||||
);
|
);
|
||||||
bonus_detail['ES_CriticalDamageBase'] = ES_CriticalDamageBase + 0.6;
|
bonus_detail['ES_CriticalDamageBase'] = ES_CriticalDamageBase + 0.6;
|
||||||
const EH_CriticalDamageBase = _.get(
|
const EH_CriticalDamageBase = _.get(
|
||||||
bonus_detail,
|
bonus_detail,
|
||||||
'EH_CriticalDamageBase',
|
'EH_CriticalDamageBase',
|
||||||
0
|
0
|
||||||
);
|
);
|
||||||
bonus_detail['EH_CriticalDamageBase'] = EH_CriticalDamageBase + 0.6;
|
bonus_detail['EH_CriticalDamageBase'] = EH_CriticalDamageBase + 0.6;
|
||||||
}
|
}
|
||||||
if (data.rank >= 6) {
|
if (data.rank >= 6) {
|
||||||
const PenRatio = _.get(bonus_detail, 'PenRatioBase', 0);
|
const PenRatio = _.get(bonus_detail, 'PenRatioBase', 0);
|
||||||
bonus_detail['PenRatioBase'] = PenRatio + 0.2;
|
bonus_detail['PenRatioBase'] = PenRatio + 0.2;
|
||||||
|
|
||||||
const C_DmgAdd = _.get(bonus_detail, 'C_DmgAdd', 0);
|
const C_DmgAdd = _.get(bonus_detail, 'C_DmgAdd', 0);
|
||||||
bonus_detail['C_DmgAdd'] = C_DmgAdd + 2.5;
|
bonus_detail['C_DmgAdd'] = C_DmgAdd + 2.5;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** 处理天赋加成 */
|
/** 处理天赋加成 */
|
||||||
/** 获取天赋等级与加成倍率 */
|
/** 获取天赋等级与加成倍率 */
|
||||||
const CDB = getskilllevelnum(data.id, data.skills, 'T', 'T');
|
const CDB = getskilllevelnum(data.id, data.skills, 'T', 'T');
|
||||||
const C_CriticalDamageBase = _.get(
|
const C_CriticalDamageBase = _.get(
|
||||||
bonus_detail,
|
bonus_detail,
|
||||||
'C_CriticalDamageBase',
|
'C_CriticalDamageBase',
|
||||||
0
|
0
|
||||||
);
|
);
|
||||||
bonus_detail['C_CriticalDamageBase'] = C_CriticalDamageBase + CDB;
|
bonus_detail['C_CriticalDamageBase'] = C_CriticalDamageBase + CDB;
|
||||||
const A_CriticalDamageBase = _.get(
|
const A_CriticalDamageBase = _.get(
|
||||||
bonus_detail,
|
bonus_detail,
|
||||||
'A_CriticalDamageBase',
|
'A_CriticalDamageBase',
|
||||||
0
|
0
|
||||||
);
|
);
|
||||||
bonus_detail['A_CriticalDamageBase'] = A_CriticalDamageBase + CDB;
|
bonus_detail['A_CriticalDamageBase'] = A_CriticalDamageBase + CDB;
|
||||||
|
|
||||||
const IceDmgAdd = _.get(bonus_detail, 'Ice_DmgAdd', 0);
|
const IceDmgAdd = _.get(bonus_detail, 'Ice_DmgAdd', 0);
|
||||||
bonus_detail['Ice_DmgAdd'] = IceDmgAdd + 0.3;
|
bonus_detail['Ice_DmgAdd'] = IceDmgAdd + 0.3;
|
||||||
|
|
||||||
/** 计算伤害 */
|
/** 计算伤害 */
|
||||||
/** 计算普攻伤害 */
|
/** 计算普攻伤害 */
|
||||||
const skill_multiplier1 = getskilllevelnum(
|
const skill_multiplier1 = getskilllevelnum(
|
||||||
data.id,
|
data.id,
|
||||||
data.skills,
|
data.skills,
|
||||||
'A',
|
'A',
|
||||||
'A'
|
'A'
|
||||||
);
|
);
|
||||||
const damagelist1 = calculate_damage(
|
const damagelist1 = calculate_damage(
|
||||||
base_detail,
|
base_detail,
|
||||||
bonus_detail,
|
bonus_detail,
|
||||||
'A',
|
'A',
|
||||||
'A',
|
'A',
|
||||||
'Ice',
|
'Ice',
|
||||||
skill_multiplier1,
|
skill_multiplier1,
|
||||||
data.level
|
data.level
|
||||||
);
|
);
|
||||||
const damage1 = {
|
const damage1 = {
|
||||||
title: '普通攻击:急冻修剪法',
|
title: '普通攻击:急冻修剪法',
|
||||||
value: damagelist1,
|
value: damagelist1,
|
||||||
};
|
};
|
||||||
damagelist.push(damage1);
|
damagelist.push(damage1);
|
||||||
|
|
||||||
/** 计算冲刺伤害 */
|
/** 计算冲刺伤害 */
|
||||||
const skill_multiplier2 = getskilllevelnum(
|
const skill_multiplier2 = getskilllevelnum(
|
||||||
data.id,
|
data.id,
|
||||||
data.skills,
|
data.skills,
|
||||||
'C',
|
'C',
|
||||||
'C'
|
'C'
|
||||||
);
|
);
|
||||||
const damagelist2 = calculate_damage(
|
const damagelist2 = calculate_damage(
|
||||||
base_detail,
|
base_detail,
|
||||||
bonus_detail,
|
bonus_detail,
|
||||||
'C',
|
'C',
|
||||||
'C',
|
'C',
|
||||||
'Ice',
|
'Ice',
|
||||||
skill_multiplier2,
|
skill_multiplier2,
|
||||||
data.level
|
data.level
|
||||||
);
|
);
|
||||||
const damage2 = {
|
const damage2 = {
|
||||||
title: '冲刺攻击:冰渊潜袭',
|
title: '冲刺攻击:冰渊潜袭',
|
||||||
value: damagelist2,
|
value: damagelist2,
|
||||||
};
|
};
|
||||||
damagelist.push(damage2);
|
damagelist.push(damage2);
|
||||||
|
|
||||||
/** 计算特殊技伤害 */
|
/** 计算特殊技伤害 */
|
||||||
const skill_multiplier3 = getskilllevelnum(
|
const skill_multiplier3 = getskilllevelnum(
|
||||||
data.id,
|
data.id,
|
||||||
data.skills,
|
data.skills,
|
||||||
'E',
|
'E',
|
||||||
'EH'
|
'EH'
|
||||||
);
|
);
|
||||||
const damagelist3 = calculate_damage(
|
const damagelist3 = calculate_damage(
|
||||||
base_detail,
|
base_detail,
|
||||||
bonus_detail,
|
bonus_detail,
|
||||||
'E',
|
'EUP',
|
||||||
'EH',
|
'EH',
|
||||||
'Ice',
|
'Ice',
|
||||||
skill_multiplier3,
|
skill_multiplier3,
|
||||||
data.level
|
data.level
|
||||||
);
|
);
|
||||||
const damage3 = {
|
const damage3 = {
|
||||||
title: '强化特殊技:横扫',
|
title: '强化特殊技:横扫',
|
||||||
value: damagelist3,
|
value: damagelist3,
|
||||||
};
|
};
|
||||||
damagelist.push(damage3);
|
damagelist.push(damage3);
|
||||||
|
|
||||||
const skill_multiplier4 = getskilllevelnum(
|
const skill_multiplier4 = getskilllevelnum(
|
||||||
data.id,
|
data.id,
|
||||||
data.skills,
|
data.skills,
|
||||||
'E',
|
'E',
|
||||||
'ES'
|
'ES'
|
||||||
);
|
);
|
||||||
const damagelist4 = calculate_damage(
|
const damagelist4 = calculate_damage(
|
||||||
base_detail,
|
base_detail,
|
||||||
bonus_detail,
|
bonus_detail,
|
||||||
'E',
|
'EUP',
|
||||||
'ES',
|
'ES',
|
||||||
'Ice',
|
'Ice',
|
||||||
skill_multiplier4,
|
skill_multiplier4,
|
||||||
data.level
|
data.level
|
||||||
);
|
);
|
||||||
const damage4 = {
|
const damage4 = {
|
||||||
title: '强化特殊技:鲨卷风',
|
title: '强化特殊技:鲨卷风',
|
||||||
value: damagelist4,
|
value: damagelist4,
|
||||||
};
|
};
|
||||||
damagelist.push(damage4);
|
damagelist.push(damage4);
|
||||||
|
|
||||||
/** 计算连携技伤害 */
|
/** 计算连携技伤害 */
|
||||||
const skill_multiplier5 = getskilllevelnum(
|
const skill_multiplier5 = getskilllevelnum(
|
||||||
data.id,
|
data.id,
|
||||||
data.skills,
|
data.skills,
|
||||||
'R',
|
'R',
|
||||||
'RL'
|
'RL'
|
||||||
);
|
);
|
||||||
const damagelist5 = calculate_damage(
|
const damagelist5 = calculate_damage(
|
||||||
base_detail,
|
base_detail,
|
||||||
bonus_detail,
|
bonus_detail,
|
||||||
'RL',
|
'RL',
|
||||||
'RL',
|
'RL',
|
||||||
'Ice',
|
'Ice',
|
||||||
skill_multiplier5,
|
skill_multiplier5,
|
||||||
data.level
|
data.level
|
||||||
);
|
);
|
||||||
const damage5 = {
|
const damage5 = {
|
||||||
title: '连携技:雪崩',
|
title: '连携技:雪崩',
|
||||||
value: damagelist5,
|
value: damagelist5,
|
||||||
};
|
};
|
||||||
damagelist.push(damage5);
|
damagelist.push(damage5);
|
||||||
|
|
||||||
/** 计算终结技伤害 */
|
/** 计算终结技伤害 */
|
||||||
const skill_multiplier6 = getskilllevelnum(
|
const skill_multiplier6 = getskilllevelnum(
|
||||||
data.id,
|
data.id,
|
||||||
data.skills,
|
data.skills,
|
||||||
'R',
|
'R',
|
||||||
'R'
|
'R'
|
||||||
);
|
);
|
||||||
const damagelist6 = calculate_damage(
|
const damagelist6 = calculate_damage(
|
||||||
base_detail,
|
base_detail,
|
||||||
bonus_detail,
|
bonus_detail,
|
||||||
'R',
|
'R',
|
||||||
'R',
|
'R',
|
||||||
'Ice',
|
'Ice',
|
||||||
skill_multiplier6,
|
skill_multiplier6,
|
||||||
data.level
|
data.level
|
||||||
);
|
);
|
||||||
const damage6 = {
|
const damage6 = {
|
||||||
title: '终结技:永冬狂宴',
|
title: '终结技:永冬狂宴',
|
||||||
value: damagelist6,
|
value: damagelist6,
|
||||||
};
|
};
|
||||||
damagelist.push(damage6);
|
damagelist.push(damage6);
|
||||||
|
logger.debug('伤害', damagelist);
|
||||||
logger.debug('伤害', damagelist);
|
break;
|
||||||
break;
|
}
|
||||||
}
|
case 1241:{
|
||||||
|
/** 处理命座加成 */
|
||||||
return damagelist;
|
if (data.rank >= 2) {
|
||||||
|
let A_DmgAdd = _.get(bonus_detail, 'A_DmgAdd', 0);
|
||||||
|
bonus_detail['A_DmgAdd'] = A_DmgAdd + 0.5;
|
||||||
|
let C_DmgAdd = _.get(bonus_detail, 'C_DmgAdd', 0);
|
||||||
|
bonus_detail['C_DmgAdd'] = C_DmgAdd + 0.5;
|
||||||
|
}
|
||||||
|
if (data.rank >= 4) {
|
||||||
|
let Ether_ResistancePenetration = _.get(bonus_detail, 'Ether_ResistancePenetration', 0);
|
||||||
|
bonus_detail['Ether_ResistancePenetration'] = Ether_ResistancePenetration + 0.25;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** 处理天赋加成 */
|
||||||
|
/** 获取天赋等级与加成倍率 */
|
||||||
|
const DMG_ADD = getskilllevelnum(data.id, data.skills, 'T', 'T');
|
||||||
|
let A_DmgAdd = _.get(bonus_detail, 'A_DmgAdd', 0);
|
||||||
|
bonus_detail['A_DmgAdd'] = A_DmgAdd + DMG_ADD;
|
||||||
|
|
||||||
|
let C_DmgAdd = _.get(bonus_detail, 'C_DmgAdd', 0);
|
||||||
|
bonus_detail['C_DmgAdd'] = C_DmgAdd + DMG_ADD;
|
||||||
|
|
||||||
|
let CriticalChanceBase = _.get(bonus_detail, 'CriticalChanceBase', 0);
|
||||||
|
bonus_detail['CriticalChanceBase'] = CriticalChanceBase + 0.3;
|
||||||
|
|
||||||
|
/** 计算伤害 */
|
||||||
|
/** 计算普攻伤害 */
|
||||||
|
const skill_multiplier1 = getskilllevelnum(
|
||||||
|
data.id,
|
||||||
|
data.skills,
|
||||||
|
'A',
|
||||||
|
'A'
|
||||||
|
);
|
||||||
|
const damagelist1 = calculate_damage(
|
||||||
|
base_detail,
|
||||||
|
bonus_detail,
|
||||||
|
'A',
|
||||||
|
'A',
|
||||||
|
'Ether',
|
||||||
|
skill_multiplier1,
|
||||||
|
data.level
|
||||||
|
);
|
||||||
|
const damage1 = {
|
||||||
|
title: '普通攻击:请勿抵抗',
|
||||||
|
value: damagelist1,
|
||||||
|
};
|
||||||
|
damagelist.push(damage1);
|
||||||
|
|
||||||
|
/** 计算冲刺伤害 */
|
||||||
|
const skill_multiplier2 = getskilllevelnum(
|
||||||
|
data.id,
|
||||||
|
data.skills,
|
||||||
|
'C',
|
||||||
|
'C'
|
||||||
|
);
|
||||||
|
const damagelist2 = calculate_damage(
|
||||||
|
base_detail,
|
||||||
|
bonus_detail,
|
||||||
|
'C',
|
||||||
|
'C',
|
||||||
|
'Ether',
|
||||||
|
skill_multiplier2,
|
||||||
|
data.level
|
||||||
|
);
|
||||||
|
const damage2 = {
|
||||||
|
title: '冲刺攻击:火力压制',
|
||||||
|
value: damagelist2,
|
||||||
|
};
|
||||||
|
damagelist.push(damage2);
|
||||||
|
|
||||||
|
/** 计算强化特殊技伤害 */
|
||||||
|
const skill_multiplier3 = getskilllevelnum(
|
||||||
|
data.id,
|
||||||
|
data.skills,
|
||||||
|
'E',
|
||||||
|
'EUP'
|
||||||
|
);
|
||||||
|
let damagelist3 = calculate_damage(
|
||||||
|
base_detail,
|
||||||
|
bonus_detail,
|
||||||
|
'EUP',
|
||||||
|
'EUP',
|
||||||
|
'Ether',
|
||||||
|
skill_multiplier3,
|
||||||
|
data.level
|
||||||
|
);
|
||||||
|
if (data.rank >= 6) {
|
||||||
|
let damagelist_add = calculate_damage(
|
||||||
|
base_detail,
|
||||||
|
bonus_detail,
|
||||||
|
'EUP',
|
||||||
|
'EUP',
|
||||||
|
'Ether',
|
||||||
|
2.2,
|
||||||
|
data.level
|
||||||
|
);
|
||||||
|
damagelist3['cd'] = damagelist3['cd'] + damagelist_add['cd'] * 4
|
||||||
|
damagelist3['qw'] = damagelist3['qw'] + damagelist_add['qw'] * 4
|
||||||
|
}
|
||||||
|
const damage3 = {
|
||||||
|
title: '强化特殊技:全弹连射',
|
||||||
|
value: damagelist3,
|
||||||
|
};
|
||||||
|
damagelist.push(damage3);
|
||||||
|
|
||||||
|
/** 计算连携技伤害 */
|
||||||
|
const skill_multiplier4 = getskilllevelnum(
|
||||||
|
data.id,
|
||||||
|
data.skills,
|
||||||
|
'R',
|
||||||
|
'RL'
|
||||||
|
);
|
||||||
|
const damagelist4 = calculate_damage(
|
||||||
|
base_detail,
|
||||||
|
bonus_detail,
|
||||||
|
'RL',
|
||||||
|
'RL',
|
||||||
|
'Ether',
|
||||||
|
skill_multiplier4,
|
||||||
|
data.level
|
||||||
|
);
|
||||||
|
const damage4 = {
|
||||||
|
title: '连携技:歼灭模式',
|
||||||
|
value: damagelist4,
|
||||||
|
};
|
||||||
|
damagelist.push(damage4);
|
||||||
|
|
||||||
|
/** 计算终结技伤害 */
|
||||||
|
const skill_multiplier5 = getskilllevelnum(
|
||||||
|
data.id,
|
||||||
|
data.skills,
|
||||||
|
'R',
|
||||||
|
'R'
|
||||||
|
);
|
||||||
|
const damagelist5 = calculate_damage(
|
||||||
|
base_detail,
|
||||||
|
bonus_detail,
|
||||||
|
'R',
|
||||||
|
'R',
|
||||||
|
'Ether',
|
||||||
|
skill_multiplier5,
|
||||||
|
data.level
|
||||||
|
);
|
||||||
|
const damage5 = {
|
||||||
|
title: '终结技:歼灭模式MAX',
|
||||||
|
value: damagelist5,
|
||||||
|
};
|
||||||
|
damagelist.push(damage5);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return damagelist;
|
||||||
};
|
};
|
||||||
|
|
||||||
export const getskilllevelnum = (avatarId, skills, skilltype, skillname) => {
|
export const getskilllevelnum = (avatarId, skills, skilltype, skillname) => {
|
||||||
|
|
|
||||||
|
|
@ -10,31 +10,100 @@ import { ZZZAvatarInfo } from '../avatar.js';
|
||||||
* @returns {ZZZAvatarInfo['damage_basic_properties']['bonus_detail']} 套装加成
|
* @returns {ZZZAvatarInfo['damage_basic_properties']['bonus_detail']} 套装加成
|
||||||
*/
|
*/
|
||||||
export const relice_ability = (set_id, set_num, base_detail, bonus_detail) => {
|
export const relice_ability = (set_id, set_num, base_detail, bonus_detail) => {
|
||||||
switch (set_id) {
|
switch (set_id) {
|
||||||
case '31100':
|
case '31100':
|
||||||
if (set_num >= 4) {
|
if (set_num >= 4) {
|
||||||
let R_DmgAdd = _.get(bonus_detail, 'R_DmgAdd', 0);
|
let R_DmgAdd = _.get(bonus_detail, 'R_DmgAdd', 0);
|
||||||
bonus_detail['R_DmgAdd'] = R_DmgAdd + 0.2;
|
bonus_detail['R_DmgAdd'] = R_DmgAdd + 0.2;
|
||||||
let AttackAddedRatio = _.get(bonus_detail, 'AttackAddedRatio', 0);
|
let AttackAddedRatio = _.get(bonus_detail, 'AttackAddedRatio', 0);
|
||||||
bonus_detail['AttackAddedRatio'] = AttackAddedRatio + 0.15;
|
bonus_detail['AttackAddedRatio'] = AttackAddedRatio + 0.15;
|
||||||
logger.debug('relicGetter,4,R_DmgAdd');
|
logger.debug('relicGetter,4,R_DmgAdd');
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case '32500':
|
case '32500':
|
||||||
if (set_num >= 2) {
|
if (set_num >= 2) {
|
||||||
let IceDmgAdd = _.get(bonus_detail, 'Ice_DmgAdd', 0);
|
let IceDmgAdd = _.get(bonus_detail, 'Ice_DmgAdd', 0);
|
||||||
bonus_detail['Ice_DmgAdd'] = IceDmgAdd + 0.1;
|
bonus_detail['Ice_DmgAdd'] = IceDmgAdd + 0.1;
|
||||||
logger.debug('32500,2,Ice_DmgAdd');
|
logger.debug('32500,2,Ice_DmgAdd');
|
||||||
}
|
}
|
||||||
if (set_num >= 4) {
|
if (set_num >= 4) {
|
||||||
let A_DmgAdd = _.get(bonus_detail, 'A_DmgAdd', 0);
|
let A_DmgAdd = _.get(bonus_detail, 'A_DmgAdd', 0);
|
||||||
bonus_detail['A_DmgAdd'] = A_DmgAdd + 0.4;
|
bonus_detail['A_DmgAdd'] = A_DmgAdd + 0.4;
|
||||||
let C_DmgAdd = _.get(bonus_detail, 'C_DmgAdd', 0);
|
let C_DmgAdd = _.get(bonus_detail, 'C_DmgAdd', 0);
|
||||||
bonus_detail['C_DmgAdd'] = C_DmgAdd + 0.4;
|
bonus_detail['C_DmgAdd'] = C_DmgAdd + 0.4;
|
||||||
logger.debug('32500,4,A_DmgAdd');
|
logger.debug('32500,4,A_DmgAdd');
|
||||||
logger.debug('32500,4,C_DmgAdd');
|
logger.debug('32500,4,C_DmgAdd');
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
case '32600':
|
||||||
return bonus_detail;
|
if (set_num >= 2) {
|
||||||
|
let PhysicalDmgAdd = _.get(bonus_detail, 'Physical_DmgAdd', 0);
|
||||||
|
bonus_detail['Physical_DmgAdd'] = PhysicalDmgAdd + 0.1;
|
||||||
|
logger.debug('32600,2,Physical_DmgAdd');
|
||||||
|
}
|
||||||
|
if (set_num >= 4) {
|
||||||
|
let AllDmgAdd = _.get(bonus_detail, 'All_DmgAdd', 0);
|
||||||
|
bonus_detail['All_DmgAdd'] = AllDmgAdd + 0.35;
|
||||||
|
logger.debug('32600,4,All_DmgAdd');
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case '32400':
|
||||||
|
if (set_num >= 2) {
|
||||||
|
let Electric_DmgAdd = _.get(bonus_detail, 'Electric_DmgAdd', 0);
|
||||||
|
bonus_detail['Electric_DmgAdd'] = Electric_DmgAdd + 0.1;
|
||||||
|
logger.debug('32400,2,Electric_DmgAdd');
|
||||||
|
}
|
||||||
|
if (set_num >= 4) {
|
||||||
|
let AttackAddedRatio = _.get(bonus_detail, 'AttackAddedRatio', 0);
|
||||||
|
bonus_detail['AttackAddedRatio'] = AttackAddedRatio + 0.28;
|
||||||
|
logger.debug('32400,4,AttackAddedRatio');
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case '32200':
|
||||||
|
if (set_num >= 2) {
|
||||||
|
let Fire_DmgAdd = _.get(bonus_detail, 'Fire_DmgAdd', 0);
|
||||||
|
bonus_detail['Fire_DmgAdd'] = Fire_DmgAdd + 0.1;
|
||||||
|
logger.debug('32200,4,Fire_DmgAdd');
|
||||||
|
}
|
||||||
|
if (set_num >= 4) {
|
||||||
|
let CriticalChanceBase = _.get(bonus_detail, 'CriticalChanceBase', 0);
|
||||||
|
bonus_detail['CriticalChanceBase'] = CriticalChanceBase + 0.28;
|
||||||
|
logger.debug('32200,4,CriticalChanceBase');
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case '32300':
|
||||||
|
if (set_num >= 2) {
|
||||||
|
let Ether_DmgAdd = _.get(bonus_detail, 'Ether_DmgAdd', 0);
|
||||||
|
bonus_detail['Ether_DmgAdd'] = Ether_DmgAdd + 0.1;
|
||||||
|
logger.debug('32300,4,Ether_DmgAdd');
|
||||||
|
}
|
||||||
|
if (set_num >= 4) {
|
||||||
|
let CriticalDamageBase = _.get(bonus_detail, 'CriticalDamageBase', 0);
|
||||||
|
bonus_detail['CriticalDamageBase'] = CriticalDamageBase + 0.53;
|
||||||
|
logger.debug('32300,4,CriticalDamageBase');
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case '31600':
|
||||||
|
if (set_num >= 4) {
|
||||||
|
let All_DmgAdd = _.get(bonus_detail, 'All_DmgAdd', 0);
|
||||||
|
bonus_detail['All_DmgAdd'] = All_DmgAdd + 0.53;
|
||||||
|
logger.debug('31600,4,All_DmgAdd');
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case '31400':
|
||||||
|
if (set_num >= 4) {
|
||||||
|
let AttackAddedRatio = _.get(bonus_detail, 'AttackAddedRatio', 0);
|
||||||
|
bonus_detail['AttackAddedRatio'] = AttackAddedRatio + 0.25;
|
||||||
|
logger.debug('31400,4,AttackAddedRatio');
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case '31000':
|
||||||
|
if (set_num >= 4) {
|
||||||
|
let AttackAddedRatio = _.get(bonus_detail, 'AttackAddedRatio', 0);
|
||||||
|
bonus_detail['AttackAddedRatio'] = AttackAddedRatio + 0.27;
|
||||||
|
logger.debug('31400,4,AttackAddedRatio');
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return bonus_detail;
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -11,17 +11,66 @@ const weapon_effect = getMapData('weapon_effect');
|
||||||
* @returns {ZZZAvatarInfo['damage_basic_properties']['bonus_detail']} 套装加成
|
* @returns {ZZZAvatarInfo['damage_basic_properties']['bonus_detail']} 套装加成
|
||||||
*/
|
*/
|
||||||
export const weapon_ability = (equipment, base_detail, bonus_detail) => {
|
export const weapon_ability = (equipment, base_detail, bonus_detail) => {
|
||||||
if (equipment.id == 14119) {
|
let equipid = equipment.id
|
||||||
let IceDmgAdd = _.get(bonus_detail, 'Ice_DmgAdd', 0);
|
switch (equipid) {
|
||||||
bonus_detail['Ice_DmgAdd'] =
|
case 14119:{
|
||||||
IceDmgAdd +
|
let IceDmgAdd = _.get(bonus_detail, 'Ice_DmgAdd', 0);
|
||||||
weapon_effect['14119']['Param']['IceDmgAdd'][equipment.star - 1];
|
bonus_detail['Ice_DmgAdd'] = IceDmgAdd + weapon_effect[equipment.id]['Param']['IceDmgAdd'][equipment.star - 1];
|
||||||
logger.debug('14119,IceDmgAdd');
|
|
||||||
|
|
||||||
let CriticalChanceBase = _.get(bonus_detail, 'CriticalChanceBase', 0);
|
let CriticalChanceBase = _.get(bonus_detail, 'CriticalChanceBase', 0);
|
||||||
bonus_detail['CriticalChanceBase'] =
|
bonus_detail['CriticalChanceBase'] = CriticalChanceBase +weapon_effect[equipment.id]['Param']['CriticalChanceBase'][equipment.star - 1];
|
||||||
CriticalChanceBase +
|
break;
|
||||||
weapon_effect['14119']['Param']['CriticalChanceBase'][equipment.star - 1];
|
}
|
||||||
}
|
case 14102:{
|
||||||
return bonus_detail;
|
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;
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -21,5 +21,25 @@
|
||||||
"T": [
|
"T": [
|
||||||
0.5, 0.583, 0.666, 0.75, 0.833, 0.916, 1
|
0.5, 0.583, 0.666, 0.75, 0.833, 0.916, 1
|
||||||
]
|
]
|
||||||
|
},
|
||||||
|
"1241": {
|
||||||
|
"A": [
|
||||||
|
4.077,4.448,4.819,5.19,5.561,5.932,6.303,6.674,7.045,7.416,7.787,8.158,8.529,8.9,9.271,9.642
|
||||||
|
],
|
||||||
|
"C": [
|
||||||
|
1.359,1.483,1.607,1.731,1.855,1.979,2.103,2.227,2.351,2.475,2.599,2.723,2.847,2.971,3.095,3.219
|
||||||
|
],
|
||||||
|
"EUP": [
|
||||||
|
5.874,6.408,6.942,7.476,8.01,8.544,9.078,9.612,10.146,10.68,11.214,11.748,12.282,12.816,13.35,13.88
|
||||||
|
],
|
||||||
|
"R": [
|
||||||
|
19.776,21.574,23.372,25.17,26.968,28.766,30.564,32.362,34.16,35.958,37.756,39.554,41.352,43.15,44.948,46.746
|
||||||
|
],
|
||||||
|
"RL": [
|
||||||
|
5.875,6.41,6.945,7.48,8.015,8.55,9.085,9.62,10.155,10.69,11.225,11.76,12.295,12.83,13.35,13.9
|
||||||
|
],
|
||||||
|
"T": [
|
||||||
|
0.4, 0.466, 0.532, 0.6, 0.666, 0.732, 0.8
|
||||||
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -16,5 +16,129 @@
|
||||||
0.4
|
0.4
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"14102": {
|
||||||
|
"Param": {
|
||||||
|
"All_DmgAdd": [
|
||||||
|
0.25,
|
||||||
|
0.315,
|
||||||
|
0.38,
|
||||||
|
0.445,
|
||||||
|
0.5
|
||||||
|
],
|
||||||
|
"Physical_DmgAdd": [
|
||||||
|
0.2,
|
||||||
|
0.25,
|
||||||
|
0.3,
|
||||||
|
0.35,
|
||||||
|
0.4
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"14104": {
|
||||||
|
"Param": {
|
||||||
|
"AttackAddedRatio": [
|
||||||
|
0.035,
|
||||||
|
0.044,
|
||||||
|
0.052,
|
||||||
|
0.06,
|
||||||
|
0.07
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"14124": {
|
||||||
|
"Param": {
|
||||||
|
"A_DmgAdd": [
|
||||||
|
0.35,
|
||||||
|
0.435,
|
||||||
|
0.52,
|
||||||
|
0.605,
|
||||||
|
0.7
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"13001": {
|
||||||
|
"Param": {
|
||||||
|
"R_DmgAdd": [
|
||||||
|
0.15,
|
||||||
|
0.172,
|
||||||
|
0.195,
|
||||||
|
0.217,
|
||||||
|
0.24
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"13004": {
|
||||||
|
"Param": {
|
||||||
|
"AttackAddedRatio": [
|
||||||
|
0.12,
|
||||||
|
0.138,
|
||||||
|
0.156,
|
||||||
|
0.174,
|
||||||
|
0.192
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"13013": {
|
||||||
|
"Param": {
|
||||||
|
"EUP_DmgAdd": [
|
||||||
|
0.15,
|
||||||
|
0.172,
|
||||||
|
0.195,
|
||||||
|
0.217,
|
||||||
|
0.24
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"13106": {
|
||||||
|
"Param": {
|
||||||
|
"EUP_DmgAdd": [
|
||||||
|
0.03,
|
||||||
|
0.035,
|
||||||
|
0.04,
|
||||||
|
0.044,
|
||||||
|
0.048
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"13108": {
|
||||||
|
"Param": {
|
||||||
|
"Physical_DmgAdd": [
|
||||||
|
0.36,
|
||||||
|
0.41,
|
||||||
|
0.465,
|
||||||
|
0.52,
|
||||||
|
0.575
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"13111": {
|
||||||
|
"Param": {
|
||||||
|
"A_DmgAdd": [
|
||||||
|
0.50,
|
||||||
|
0.575,
|
||||||
|
0.65,
|
||||||
|
0.725,
|
||||||
|
0.80
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"14121": {
|
||||||
|
"Param": {
|
||||||
|
"All_DmgAdd": [
|
||||||
|
0.1,
|
||||||
|
0.125,
|
||||||
|
0.15,
|
||||||
|
0.175,
|
||||||
|
0.20
|
||||||
|
],
|
||||||
|
"All_DmgAdd_Max": [
|
||||||
|
0.102,
|
||||||
|
0.12,
|
||||||
|
0.15,
|
||||||
|
0.18,
|
||||||
|
0.198
|
||||||
|
]
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue