mirror of
https://github.com/ZZZure/ZZZ-Plugin.git
synced 2025-12-16 13:17:32 +00:00
新增星见雅伤害计算等
1、新增星见雅面板伤害计算 2、补充星见雅技能倍率、专属音擎属性参数 3、补充折枝剑歌套装效果计算 4、补充霞落星殿音擎效果计算 5、补充伤害计算抗性区计算缺失 6、完善伤害计算防御区针对技能生效减抗 7、修改伤害计算失衡易伤区为1.0 8、删除无用重复计算 9、修正艾莲连携技倍率参数错误 10、补充角色属性map
This commit is contained in:
parent
8312fc9c56
commit
e73c0178c3
10 changed files with 325 additions and 71 deletions
|
|
@ -12,12 +12,28 @@ export const calculate_damage = (
|
|||
const merged_attr = merge_attribute(base_detail, bonus_detail);
|
||||
logger.debug('merged_attr', merged_attr);
|
||||
|
||||
logger.debug(logger.green(skill_type + `(${add_skill_type})伤害乘区计算:`));
|
||||
const attack = merged_attr.attack;
|
||||
logger.debug('攻击区', attack);
|
||||
|
||||
const defence_multiplier = get_defence_multiplier(merged_attr, level);
|
||||
logger.debug('技能倍率', skill_multiplier);
|
||||
|
||||
const defence_multiplier = get_defence_multiplier(
|
||||
merged_attr,
|
||||
level,
|
||||
skill_type,
|
||||
add_skill_type,
|
||||
);
|
||||
logger.debug('防御区', defence_multiplier);
|
||||
|
||||
const resistance_area = get_resistance_area(
|
||||
merged_attr,
|
||||
skill_type,
|
||||
add_skill_type,
|
||||
avatar_element
|
||||
);
|
||||
logger.debug('抗性区', resistance_area);
|
||||
|
||||
const injury_area = get_injury_area(
|
||||
merged_attr,
|
||||
skill_type,
|
||||
|
|
@ -57,25 +73,26 @@ export const calculate_damage = (
|
|||
attack *
|
||||
skill_multiplier *
|
||||
defence_multiplier *
|
||||
resistance_area *
|
||||
injury_area *
|
||||
damage_ratio *
|
||||
critical_damage_base *
|
||||
1.2 *
|
||||
1.5;
|
||||
1.0; // 失衡易伤不计
|
||||
const damage_qw =
|
||||
attack *
|
||||
skill_multiplier *
|
||||
defence_multiplier *
|
||||
resistance_area *
|
||||
injury_area *
|
||||
damage_ratio *
|
||||
qiwang_damage *
|
||||
1.2 *
|
||||
1.5;
|
||||
1.0;
|
||||
|
||||
const damagelist = {
|
||||
cd: damage_cd,
|
||||
qw: damage_qw,
|
||||
};
|
||||
logger.debug('最终伤害', damagelist);
|
||||
return damagelist;
|
||||
};
|
||||
|
||||
|
|
@ -152,6 +169,27 @@ export const get_damage_ratio = (
|
|||
return damage_ratio + 1;
|
||||
};
|
||||
|
||||
export const get_resistance_area = (
|
||||
merged_attr,
|
||||
skill_type,
|
||||
add_skill_type,
|
||||
avatar_element
|
||||
) => {
|
||||
let resistance_area = 1.2
|
||||
for (const attr in merged_attr) {
|
||||
if (attr.search('_ResistancePenetration') != -1) {
|
||||
const attr_name = attr.split('_ResistancePenetration')[0]
|
||||
if (
|
||||
[skill_type, add_skill_type, 'All', avatar_element].includes(attr_name)
|
||||
) {
|
||||
logger.debug(attr + '对' + attr_name + '有' + merged_attr[attr] + '减抗')
|
||||
resistance_area += merged_attr[attr]
|
||||
}
|
||||
}
|
||||
}
|
||||
return resistance_area
|
||||
}
|
||||
|
||||
export const get_injury_area = (
|
||||
merged_attr,
|
||||
skill_type,
|
||||
|
|
@ -185,13 +223,32 @@ export const get_injury_area = (
|
|||
return injury_area;
|
||||
};
|
||||
|
||||
export const get_defence_multiplier = (merged_attr, level) => {
|
||||
export const get_defence_multiplier = (
|
||||
merged_attr,
|
||||
level,
|
||||
skill_type,
|
||||
add_skill_type
|
||||
) => {
|
||||
/** 计算防御基础值 */
|
||||
const defadd = 0.155 * (level * level) + 3.12 * level + 46.95;
|
||||
/** 计算降防 */
|
||||
let ignore_defence = 1.0;
|
||||
const merged_attrkey = Object.keys(merged_attr);
|
||||
for (const attr of merged_attrkey) {
|
||||
if (attr.search('_IgnoreDefence') != -1) {
|
||||
const attr_name = attr.split('_IgnoreDefence')[0];
|
||||
if (
|
||||
[skill_type, add_skill_type, 'All'].includes(attr_name)
|
||||
) {
|
||||
logger.debug(
|
||||
attr + '对' + attr_name + '有' + merged_attr[attr] + '无视防御'
|
||||
);
|
||||
ignore_defence -= merged_attr[attr];
|
||||
}
|
||||
}
|
||||
}
|
||||
if (merged_attr.ignore_defence) {
|
||||
ignore_defence = 1 - merged_attr.ignore_defence;
|
||||
ignore_defence -= merged_attr.ignore_defence;
|
||||
}
|
||||
/** 计算穿透率 */
|
||||
let penratio = 1.0;
|
||||
|
|
@ -212,7 +269,7 @@ export const merge_attribute = (base_detail, bonus_detail) => {
|
|||
for (const merged of bonus_detailkey) {
|
||||
if (
|
||||
merged.search('Attack') != -1 ||
|
||||
merged.search('Defence') != -1 ||
|
||||
(merged.search('Defence') != -1 && merged.search('IgnoreDefence') === -1) ||
|
||||
merged.search('HP') != -1
|
||||
) {
|
||||
continue;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue