rebase: 优化

This commit is contained in:
bietiaop 2024-07-26 17:22:19 +08:00
parent 62952f33b1
commit 5a3d7502f9
2 changed files with 194 additions and 150 deletions

View file

@ -15,149 +15,190 @@ 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 = [];
if (data.id == 1191) { switch (data.id) {
/** 处理命座加成 */ case 1191:
if (data.rank >= 1) { /** 处理命座加成 */
const CriticalChanceBase = _.get(bonus_detail, 'CriticalChanceBase', 0); if (data.rank >= 1) {
bonus_detail['CriticalChanceBase'] = CriticalChanceBase + 0.12; const CriticalChanceBase = _.get(bonus_detail, 'CriticalChanceBase', 0);
} bonus_detail['CriticalChanceBase'] = CriticalChanceBase + 0.12;
if (data.rank >= 2) { }
const ES_CriticalDamageBase = _.get( if (data.rank >= 2) {
const ES_CriticalDamageBase = _.get(
bonus_detail,
'ES_CriticalDamageBase',
0
);
bonus_detail['ES_CriticalDamageBase'] = ES_CriticalDamageBase + 0.6;
const EH_CriticalDamageBase = _.get(
bonus_detail,
'EH_CriticalDamageBase',
0
);
bonus_detail['EH_CriticalDamageBase'] = EH_CriticalDamageBase + 0.6;
}
if (data.rank >= 6) {
const PenRatio = _.get(bonus_detail, 'PenRatioBase', 0);
bonus_detail['PenRatioBase'] = PenRatio + 0.2;
const C_DmgAdd = _.get(bonus_detail, 'C_DmgAdd', 0);
bonus_detail['C_DmgAdd'] = C_DmgAdd + 2.5;
}
/** 处理天赋加成 */
/** 获取天赋等级与加成倍率 */
const CDB = getskilllevelnum(data.id, data.skills, 'T', 'T');
const C_CriticalDamageBase = _.get(
bonus_detail, bonus_detail,
'ES_CriticalDamageBase', 'C_CriticalDamageBase',
0 0
); );
bonus_detail['ES_CriticalDamageBase'] = ES_CriticalDamageBase + 0.6; bonus_detail['C_CriticalDamageBase'] = C_CriticalDamageBase + CDB;
const EH_CriticalDamageBase = _.get( const A_CriticalDamageBase = _.get(
bonus_detail, bonus_detail,
'EH_CriticalDamageBase', 'A_CriticalDamageBase',
0 0
); );
bonus_detail['EH_CriticalDamageBase'] = EH_CriticalDamageBase + 0.6; bonus_detail['A_CriticalDamageBase'] = A_CriticalDamageBase + CDB;
}
if (data.rank >= 6) {
const PenRatio = _.get(bonus_detail, 'PenRatioBase', 0);
bonus_detail['PenRatioBase'] = PenRatio + 0.2;
const C_DmgAdd = _.get(bonus_detail, 'C_DmgAdd', 0); const IceDmgAdd = _.get(bonus_detail, 'Ice_DmgAdd', 0);
bonus_detail['C_DmgAdd'] = C_DmgAdd + 2.5; bonus_detail['Ice_DmgAdd'] = IceDmgAdd + 0.3;
}
/** 处理天赋加成 */ /** 计算伤害 */
/** 获取天赋等级与加成倍率 */ /** 计算普攻伤害 */
const CDB = getskilllevelnum(data.id, data.skills, 'T', 'T'); const skill_multiplier1 = getskilllevelnum(
const C_CriticalDamageBase = _.get(bonus_detail, 'C_CriticalDamageBase', 0); data.id,
bonus_detail['C_CriticalDamageBase'] = C_CriticalDamageBase + CDB; data.skills,
const A_CriticalDamageBase = _.get(bonus_detail, 'A_CriticalDamageBase', 0); 'A',
bonus_detail['A_CriticalDamageBase'] = A_CriticalDamageBase + CDB; 'A'
);
const damagelist1 = calculate_damage(
base_detail,
bonus_detail,
'A',
'A',
'Ice',
skill_multiplier1,
data.level
);
const damage1 = {
title: '普通攻击:急冻修剪法',
value: damagelist1,
};
damagelist.push(damage1);
const IceDmgAdd = _.get(bonus_detail, 'Ice_DmgAdd', 0); /** 计算冲刺伤害 */
bonus_detail['Ice_DmgAdd'] = IceDmgAdd + 0.3; const skill_multiplier2 = getskilllevelnum(
data.id,
data.skills,
'C',
'C'
);
const damagelist2 = calculate_damage(
base_detail,
bonus_detail,
'C',
'C',
'Ice',
skill_multiplier2,
data.level
);
const damage2 = {
title: '冲刺攻击:冰渊潜袭',
value: damagelist2,
};
damagelist.push(damage2);
/** 计算伤害 */ /** 计算特殊技伤害 */
/** 计算普攻伤害 */ const skill_multiplier3 = getskilllevelnum(
const skill_multiplier1 = getskilllevelnum(data.id, data.skills, 'A', 'A'); data.id,
const damagelist1 = calculate_damage( data.skills,
base_detail, 'E',
bonus_detail, 'EH'
'A', );
'A', const damagelist3 = calculate_damage(
'Ice', base_detail,
skill_multiplier1, bonus_detail,
data.level 'E',
); 'EH',
const damage1 = { 'Ice',
title: '普通攻击:急冻修剪法', skill_multiplier3,
value: damagelist1, data.level
}; );
damagelist.push(damage1); const damage3 = {
title: '强化特殊技:横扫',
value: damagelist3,
};
damagelist.push(damage3);
/** 计算冲刺伤害 */ const skill_multiplier4 = getskilllevelnum(
const skill_multiplier2 = getskilllevelnum(data.id, data.skills, 'C', 'C'); data.id,
const damagelist2 = calculate_damage( data.skills,
base_detail, 'E',
bonus_detail, 'ES'
'C', );
'C', const damagelist4 = calculate_damage(
'Ice', base_detail,
skill_multiplier2, bonus_detail,
data.level 'E',
); 'ES',
const damage2 = { 'Ice',
title: '冲刺攻击:冰渊潜袭', skill_multiplier4,
value: damagelist2, data.level
}; );
damagelist.push(damage2); const damage4 = {
title: '强化特殊技:鲨卷风',
value: damagelist4,
};
damagelist.push(damage4);
/** 计算特殊技伤害 */ /** 计算连携技伤害 */
const skill_multiplier3 = getskilllevelnum(data.id, data.skills, 'E', 'EH'); const skill_multiplier5 = getskilllevelnum(
const damagelist3 = calculate_damage( data.id,
base_detail, data.skills,
bonus_detail, 'R',
'E', 'RL'
'EH', );
'Ice', const damagelist5 = calculate_damage(
skill_multiplier3, base_detail,
data.level bonus_detail,
); 'RL',
const damage3 = { 'RL',
title: '强化特殊技:横扫', 'Ice',
value: damagelist3, skill_multiplier5,
}; data.level
damagelist.push(damage3); );
const damage5 = {
title: '连携技:雪崩',
value: damagelist5,
};
damagelist.push(damage5);
const skill_multiplier4 = getskilllevelnum(data.id, data.skills, 'E', 'ES'); /** 计算终结技伤害 */
const damagelist4 = calculate_damage( const skill_multiplier6 = getskilllevelnum(
base_detail, data.id,
bonus_detail, data.skills,
'E', 'R',
'ES', 'R'
'Ice', );
skill_multiplier4, const damagelist6 = calculate_damage(
data.level base_detail,
); bonus_detail,
const damage4 = { 'R',
title: '强化特殊技:鲨卷风', 'R',
value: damagelist4, 'Ice',
}; skill_multiplier6,
damagelist.push(damage4); data.level
);
const damage6 = {
title: '终结技:永冬狂宴',
value: damagelist6,
};
damagelist.push(damage6);
/** 计算连携技伤害 */ logger.debug('伤害', damagelist);
const skill_multiplier5 = getskilllevelnum(data.id, data.skills, 'R', 'RL'); break;
const damagelist5 = calculate_damage(
base_detail,
bonus_detail,
'RL',
'RL',
'Ice',
skill_multiplier5,
data.level
);
const damage5 = {
title: '连携技:雪崩',
value: damagelist5,
};
damagelist.push(damage5);
/** 计算终结技伤害 */
const skill_multiplier6 = getskilllevelnum(data.id, data.skills, 'R', 'R');
const damagelist6 = calculate_damage(
base_detail,
bonus_detail,
'R',
'R',
'Ice',
skill_multiplier6,
data.level
);
const damage6 = {
title: '终结技:永冬狂宴',
value: damagelist6,
};
damagelist.push(damage6);
logger.debug('伤害', damagelist);
} }
return damagelist; return damagelist;
}; };

View file

@ -10,28 +10,31 @@ 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) => {
if (set_id == '31100') { switch (set_id) {
if (set_num >= 4) { case '31100':
let R_DmgAdd = _.get(bonus_detail, 'R_DmgAdd', 0); if (set_num >= 4) {
bonus_detail['R_DmgAdd'] = R_DmgAdd + 0.2; let R_DmgAdd = _.get(bonus_detail, 'R_DmgAdd', 0);
let AttackAddedRatio = _.get(bonus_detail, 'AttackAddedRatio', 0); bonus_detail['R_DmgAdd'] = R_DmgAdd + 0.2;
bonus_detail['AttackAddedRatio'] = AttackAddedRatio + 0.15; let AttackAddedRatio = _.get(bonus_detail, 'AttackAddedRatio', 0);
logger.debug('relicGetter,4,R_DmgAdd'); bonus_detail['AttackAddedRatio'] = AttackAddedRatio + 0.15;
} logger.debug('relicGetter,4,R_DmgAdd');
} else if (set_id == '32500') { }
if (set_num >= 2) { break;
let IceDmgAdd = _.get(bonus_detail, 'Ice_DmgAdd', 0); case '32500':
bonus_detail['Ice_DmgAdd'] = IceDmgAdd + 0.1; if (set_num >= 2) {
logger.debug('32500,2,Ice_DmgAdd'); let IceDmgAdd = _.get(bonus_detail, 'Ice_DmgAdd', 0);
} bonus_detail['Ice_DmgAdd'] = IceDmgAdd + 0.1;
if (set_num >= 4) { logger.debug('32500,2,Ice_DmgAdd');
let A_DmgAdd = _.get(bonus_detail, 'A_DmgAdd', 0); }
bonus_detail['A_DmgAdd'] = A_DmgAdd + 0.4; if (set_num >= 4) {
let C_DmgAdd = _.get(bonus_detail, 'C_DmgAdd', 0); let A_DmgAdd = _.get(bonus_detail, 'A_DmgAdd', 0);
bonus_detail['C_DmgAdd'] = C_DmgAdd + 0.4; bonus_detail['A_DmgAdd'] = A_DmgAdd + 0.4;
logger.debug('32500,4,A_DmgAdd'); let C_DmgAdd = _.get(bonus_detail, 'C_DmgAdd', 0);
logger.debug('32500,4,C_DmgAdd'); bonus_detail['C_DmgAdd'] = C_DmgAdd + 0.4;
} logger.debug('32500,4,A_DmgAdd');
logger.debug('32500,4,C_DmgAdd');
}
break;
} }
return bonus_detail; return bonus_detail;
}; };