diff --git a/models/artis/ArtisMarkCfg.js b/models/artis/ArtisMarkCfg.js index c14c90d1..7b97c322 100644 --- a/models/artis/ArtisMarkCfg.js +++ b/models/artis/ArtisMarkCfg.js @@ -5,11 +5,9 @@ import { Meta } from '#miao' const weaponCfg = { 磐岩结绿: { attr: 'hp', - abbr: '绿剑' - }, - 赤角石溃杵: { - attr: 'def', - abbr: '赤角' + abbr: '绿剑', + max: 30, + min: 15 }, 猎人之径: { attr: 'mastery' @@ -20,7 +18,9 @@ const weaponCfg = { }, 护摩之杖: { attr: 'hp', - abbr: '护摩' + abbr: '护摩', + max: 18, + min: 10 } } @@ -51,6 +51,19 @@ const ArtisMarkCfg = { return false } + /* maxAffix_attr 精5武器权重 + minAffix_attr 精1武器权重 */ + let weaponCheck = (key, maxAffix_attr = 20, minAffix_attr = 10, max = 100) => { + let original = weight[key] || 0 + if (original == max) { + return false + } else { + let plus = minAffix_attr + (maxAffix_attr - minAffix_attr) * (weapon.affix - 1) / 4 + weight[key] = Math.min(Math.round(original + plus), max) + return true + } + } + let wn = weapon?.name || '' if (isGs) { @@ -59,16 +72,11 @@ const ArtisMarkCfg = { // 增加攻击力或直接伤害类武器判定 if (weight.atk > 0 && weaponCfg[wn]) { let wCfg = weaponCfg[wn] - if (check(wCfg.attr, wCfg.max || 75, wCfg.plus || 75)) { + if (weaponCheck(wCfg.attr, wCfg.max || 20, wCfg.min || 10)) { title.push(wCfg.abbr || wn) } } - // 不与攻击力挂钩的武器判定 - if (wn === '辰砂之纺锤' && check('def')) { - title.push('纺锤') - } - // 圣遗物判定,如果是绝缘4,将充能权重拉高至沙漏圣遗物当前最高权重齐平 let maxWeight = Math.max(weight.atk || 0, weight.hp || 0, weight.def || 0, weight.mastery || 0) if (artis.is('绝缘4') && check('recharge', maxWeight, 75, false)) { diff --git a/resources/meta-gs/artifact/artis-mark.js b/resources/meta-gs/artifact/artis-mark.js index 34cf18ba..4c0bdc10 100644 --- a/resources/meta-gs/artifact/artis-mark.js +++ b/resources/meta-gs/artifact/artis-mark.js @@ -15,9 +15,9 @@ export const usefulAttr = { 班尼特: { hp: 100, atk: 50, def: 0, cpct: 50, cdmg: 50, mastery: 0, dmg: 80, phy: 0, recharge: 75, heal: 100 }, 枫原万叶: { hp: 0, atk: 50, def: 0, cpct: 50, cdmg: 50, mastery: 100, dmg: 80, phy: 0, recharge: 55, heal: 0 }, 行秋: { hp: 0, atk: 75, def: 0, cpct: 100, cdmg: 100, mastery: 0, dmg: 100, phy: 0, recharge: 75, heal: 0 }, - 钟离: { hp: 80, atk: 75, def: 0, cpct: 100, cdmg: 100, mastery: 0, dmg: 100, phy: 50, recharge: 55, heal: 0 }, - 神里绫华: { hp: 0, atk: 85, def: 0, cpct: 100, cdmg: 100, mastery: 0, dmg: 100, phy: 0, recharge: 30, heal: 0 }, - 香菱: { hp: 0, atk: 75, def: 0, cpct: 100, cdmg: 100, mastery: 75, dmg: 100, phy: 0, recharge: 55, heal: 0 }, + 钟离: { hp: 100, atk: 30, def: 0, cpct: 40, cdmg: 40, mastery: 0, dmg: 80, phy: 0, recharge: 55, heal: 0 }, + 神里绫华: { hp: 0, atk: 85, def: 0, cpct: 100, cdmg: 100, mastery: 0, dmg: 100, phy: 0, recharge: 45, heal: 0 }, + 香菱: { hp: 0, atk: 75, def: 0, cpct: 100, cdmg: 100, mastery: 75, dmg: 100, phy: 0, recharge: 75, heal: 0 }, 胡桃: { hp: 80, atk: 50, def: 0, cpct: 100, cdmg: 100, mastery: 75, dmg: 100, phy: 0, recharge: 0, heal: 0 }, 温迪: { hp: 0, atk: 75, def: 0, cpct: 80, cdmg: 80, mastery: 75, dmg: 100, phy: 0, recharge: 55, heal: 0 }, 珊瑚宫心海: { hp: 100, atk: 50, def: 0, cpct: 0, cdmg: 0, mastery: 75, dmg: 100, phy: 0, recharge: 55, heal: 100 }, diff --git a/resources/meta-gs/character/希诺宁/artis.js b/resources/meta-gs/character/希诺宁/artis.js new file mode 100644 index 00000000..e8a070e2 --- /dev/null +++ b/resources/meta-gs/character/希诺宁/artis.js @@ -0,0 +1,21 @@ +import { usefulAttr } from "../../artifact/artis-mark.js" + +export default function ({ weapon, rule, def }) { + let title = [] + let particularAttr = JSON.parse(JSON.stringify(usefulAttr['希诺宁'])) + if (weapon.name === '西风剑') { + title.push('西风剑') + particularAttr.cpct = 100 + } + if (attr.cpct * 2 + attr.cdmg > 240) { + title.push('战斗') + particularAttr.cpct = 100 + particularAttr.cdmg = 100 + particularAttr.recharge = 55 + particularAttr.heal = 70 + } + if (title.length > 0) { + return rule(`希诺宁-${title.join('')}`, particularAttr) + } + return def(usefulAttr['希诺宁']) +} diff --git a/resources/meta-gs/character/神里绫华/artis.js b/resources/meta-gs/character/神里绫华/artis.js index c1c22d62..d295a1da 100644 --- a/resources/meta-gs/character/神里绫华/artis.js +++ b/resources/meta-gs/character/神里绫华/artis.js @@ -1,6 +1,10 @@ +import { usefulAttr } from "../../artifact/artis-mark.js" + export default function ({ attr, rule, def }) { + let particularAttr = JSON.parse(JSON.stringify(usefulAttr['神里绫华'])) if (attr.mastery > 120) { - return rule('神里-精通', { atk: 75, cpct: 100, cdmg: 100, mastery: 75, dmg: 100, recharge: 30 }) + particularAttr.mastery = 75 + return rule(`神里-精通`, particularAttr) } - return def({ atk: 75, cpct: 100, cdmg: 100, dmg: 100, phy: 0, recharge: 30 }) + return def(usefulAttr['神里绫华']) } \ No newline at end of file diff --git a/resources/meta-gs/character/钟离/artis.js b/resources/meta-gs/character/钟离/artis.js index e998d161..3329e79c 100644 --- a/resources/meta-gs/character/钟离/artis.js +++ b/resources/meta-gs/character/钟离/artis.js @@ -1,7 +1,23 @@ -export default function ({ attr, artis, rule, def }) { - if (artis.is('hp', '3,4,5') && attr.hp > 40000 && attr.cpct * 2 + attr.cdmg < 100) { - // 血牛钟离,其余词缀权重不高于41.84,确保小生命命中副词缀最高权重 - return rule('钟离-血牛', { hp: 100, atk: 30, cpct: 41, cdmg: 41, recharge: 30 }) +import { usefulAttr } from "../../artifact/artis-mark.js" + +export default function ({ attr, weapon, rule, def }) { + let title = [] + let particularAttr = JSON.parse(JSON.stringify(usefulAttr['钟离'])) + if (weapon.name === '西风长枪') { + title.push('西风枪') + particularAttr.cpct = 100 } - return def({ hp: 80, atk: 75, cpct: 100, cdmg: 100, dmg: 80, phy: 80, recharge: 55 }) + if (attr.cpct * 2 + attr.cdmg > 240) { + title.push('战斗') + particularAttr.hp = 80 + particularAttr.atk = 75 + particularAttr.cpct = 100 + particularAttr.cdmg = 100 + particularAttr.dmg = 100 + particularAttr.recharge = 30 + } + if (title.length > 0) { + return rule(`钟离-${title.join('')}`, particularAttr) + } + return def(usefulAttr['钟离']) }