mirror of
https://github.com/ZZZure/ZZZ-Plugin.git
synced 2025-12-16 13:17:32 +00:00
新增柚叶伤害计算
This commit is contained in:
parent
46af7f3482
commit
0aff315d5a
7 changed files with 132 additions and 9 deletions
|
|
@ -95,8 +95,8 @@ export interface buff {
|
|||
* @function
|
||||
* 音擎会自动添加职业检查
|
||||
* @number
|
||||
* - buff.source为Set时,判断套装数量>=该值
|
||||
* - buff.source为Rank时,判断影画数量>=该值
|
||||
* - buff.source为**套装**时,判断套装数量>=该值
|
||||
* - buff.source为**影画**时,判断影画数量>=该值
|
||||
*/
|
||||
check?: (({ avatar, buffM, calc }: {
|
||||
avatar: ZZZAvatarInfo
|
||||
|
|
|
|||
|
|
@ -528,6 +528,8 @@ export function calc(buffM, calc, avatar) {
|
|||
- [x] 驱动盘词条差异计算
|
||||
- [ ] 伤害计算buff指令热注入
|
||||
- [ ] 伤害计算敌人自定义
|
||||
- [ ] %XX面板换XXX指令
|
||||
- [ ] 角色伤害、防卫战层数耗时、危局星数得分、爬塔排名
|
||||
- [ ] 组队伤害计算
|
||||
- [ ] 失衡值累积计算
|
||||
- [ ] ~~异常积蓄值计算~~
|
||||
|
|
|
|||
|
|
@ -113,8 +113,10 @@ export function avatar_calc(avatar) {
|
|||
logger.debug('initial_properties', avatar.initial_properties);
|
||||
weapon_buff(avatar.weapon, buffM);
|
||||
set_buff(avatar.equip, buffM);
|
||||
if (m.buffs)
|
||||
buffM.new(m.buffs);
|
||||
if (m.buffs) {
|
||||
const vaildBuffs = m.buffs.filter(v => (v.source && v.source !== '影画') || typeof v.check !== 'number' || v.check <= avatar.rank);
|
||||
buffM.new(vaildBuffs);
|
||||
}
|
||||
if (m.skills)
|
||||
calc.new(m.skills);
|
||||
if (m.calc)
|
||||
|
|
@ -164,8 +166,10 @@ export function set_buff(equips, buffM) {
|
|||
if (!m)
|
||||
continue;
|
||||
buffM.default('name', name);
|
||||
if (m.buffs)
|
||||
buffM.new(m.buffs);
|
||||
if (m.buffs) {
|
||||
const vaildBuffs = m.buffs.filter(v => (v.source && v.source !== '套装') || typeof v.check !== 'number' || v.check <= count);
|
||||
buffM.new(vaildBuffs);
|
||||
}
|
||||
if (m.calc)
|
||||
m.calc(buffM, count);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -147,7 +147,10 @@ export function avatar_calc(avatar: ZZZAvatarInfo) {
|
|||
logger.debug('initial_properties', avatar.initial_properties)
|
||||
weapon_buff(avatar.weapon, buffM)
|
||||
set_buff(avatar.equip, buffM)
|
||||
if (m.buffs) buffM.new(m.buffs)
|
||||
if (m.buffs) {
|
||||
const vaildBuffs = m.buffs.filter(v => (v.source && v.source !== '影画') || typeof v.check !== 'number' || v.check <= avatar.rank)
|
||||
buffM.new(vaildBuffs)
|
||||
}
|
||||
if (m.skills) calc.new(m.skills)
|
||||
if (m.calc) m.calc(buffM, calc, avatar)
|
||||
logger.debug(`Buff*${buffM.buffs.length}:`, buffM.buffs)
|
||||
|
|
@ -195,7 +198,10 @@ export function set_buff(equips: ZZZAvatarInfo['equip'], buffM: BuffManager) {
|
|||
const m = calcFnc.set[name]
|
||||
if (!m) continue
|
||||
buffM.default('name', name)
|
||||
if (m.buffs) buffM.new(m.buffs)
|
||||
if (m.buffs) {
|
||||
const vaildBuffs = m.buffs.filter(v => (v.source && v.source !== '套装') || typeof v.check !== 'number' || v.check <= count)
|
||||
buffM.new(vaildBuffs)
|
||||
}
|
||||
if (m.calc) m.calc(buffM, count)
|
||||
}
|
||||
buffM.default({})
|
||||
|
|
|
|||
77
model/damage/character/柚叶/calc.js
Normal file
77
model/damage/character/柚叶/calc.js
Normal file
|
|
@ -0,0 +1,77 @@
|
|||
/** @type {import('../../BuffManager.ts').BuffManager['buffs']} */
|
||||
export const buffs = [
|
||||
{
|
||||
name: '1影',
|
||||
type: '无视抗性',
|
||||
value: 0.1,
|
||||
is: { team: true }
|
||||
},
|
||||
{
|
||||
name: '2影',
|
||||
type: '增伤',
|
||||
value: 0.15,
|
||||
is: { team: true }
|
||||
},
|
||||
{
|
||||
name: '4影',
|
||||
type: '增伤',
|
||||
value: 0.3,
|
||||
range: ['LT']
|
||||
},
|
||||
{
|
||||
name: '6影',
|
||||
type: '倍率',
|
||||
value: 1.05 * 3,
|
||||
range: ['紊乱']
|
||||
},
|
||||
{
|
||||
name: '核心被动:奇巧缤纷',
|
||||
type: '攻击力',
|
||||
value: ({ avatar, calc }) => {
|
||||
const initial_ATK = avatar.initial_properties.ATK
|
||||
const level = calc.get_SkillLevel('T')
|
||||
const max = [600, 700, 800, 900, 1000, 1100, 1200][level - 1]
|
||||
return Math.min(max, initial_ATK * 0.4)
|
||||
},
|
||||
is: { team: true }
|
||||
},
|
||||
{
|
||||
name: '核心被动:奇巧缤纷',
|
||||
type: '增伤',
|
||||
value: 0.15,
|
||||
is: { team: true }
|
||||
},
|
||||
{
|
||||
name: '额外能力:人多乐趣大',
|
||||
type: '异常增伤',
|
||||
value: ({ avatar }) => {
|
||||
const { AnomalyMastery } = avatar.initial_properties
|
||||
if (AnomalyMastery <= 100) return 0
|
||||
return Math.min(0.2, (AnomalyMastery - 100) * 0.002) * (avatar.rank >= 1 ? 1.3 : 1)
|
||||
},
|
||||
is: { team: true }
|
||||
}
|
||||
]
|
||||
|
||||
/** @type {import('../../Calculator.ts').Calculator['skills']} */
|
||||
export const skills = [
|
||||
{ name: '强击', type: '强击' },
|
||||
{ name: '紊乱', type: '紊乱' },
|
||||
{ name: '普攻:狸之爪五段', type: 'AP5' },
|
||||
{ name: '普攻:硬糖射击', type: 'AY' },
|
||||
{ name: '普攻:彩糖花火·极', type: 'ACS' },
|
||||
{ name: '闪避反击:报复开始~', type: 'CF' },
|
||||
{ name: '支援突击:来块曲奇', type: 'LTP' },
|
||||
{ name: '支援突击:夹心硬糖射击', type: 'LTS' },
|
||||
{ name: '强E:小心蛀牙', type: 'EQP', isMain: true },
|
||||
{ name: '强E:小心蛀牙,就是现在!', type: 'EQS' },
|
||||
{ name: '连携技:恶作剧合战', type: 'RL' },
|
||||
{ name: '终结技:不投降就捣乱', type: 'RZ' },
|
||||
{
|
||||
name: '6影支援突击蓄力每炮弹',
|
||||
type: 'Y6',
|
||||
check: 6,
|
||||
multiplier: 3,
|
||||
redirect: 'LTS'
|
||||
}
|
||||
]
|
||||
34
model/damage/character/柚叶/data.json
Normal file
34
model/damage/character/柚叶/data.json
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
{
|
||||
"skill": {
|
||||
"AP5": [
|
||||
1.641,1.791,1.941,2.091,2.241,2.391,2.541,2.691,2.841,2.991,3.141,3.291,3.441,3.591,3.741,3.891
|
||||
],
|
||||
"AY": [
|
||||
1.32,1.44,1.56,1.68,1.8,1.92,2.04,2.16,2.28,2.4,2.52,2.64,2.76,2.88,3,3.12
|
||||
],
|
||||
"ACS": [
|
||||
3.08,3.36,3.64,3.92,4.2,4.48,4.76,5.04,5.32,5.6,5.88,6.16,6.44,6.72,7,7.28
|
||||
],
|
||||
"CF": [
|
||||
2.769,3.021,3.273,3.525,3.777,4.029,4.281,4.533,4.785,5.037,5.289,5.541,5.793,6.045,6.297,6.549
|
||||
],
|
||||
"LTP": [
|
||||
2.943,3.211,3.479,3.747,4.015,4.283,4.551,4.819,5.087,5.355,5.623,5.891,6.159,6.427,6.695,6.963
|
||||
],
|
||||
"LTS": [
|
||||
4.636,5.058,5.48,5.902,6.324,6.746,7.168,7.59,8.012,8.434,8.856,9.278,9.7,10.122,10.544,10.966
|
||||
],
|
||||
"EQP": [
|
||||
4.21,4.593,4.976,5.359,5.742,6.125,6.508,6.891,7.274,7.657,8.04,8.423,8.806,9.189,9.572,9.955
|
||||
],
|
||||
"EQS": [
|
||||
2.414,2.634,2.854,3.074,3.294,3.514,3.734,3.954,4.174,4.394,4.614,4.834,5.054,5.274,5.494,5.714
|
||||
],
|
||||
"RL": [
|
||||
5.987,6.532,7.077,7.622,8.167,8.712,9.257,9.802,10.347,10.892,11.437,11.982,12.527,13.072,13.617,14.162
|
||||
],
|
||||
"RZ": [
|
||||
14.432,15.744,17.056,18.368,19.68,20.992,22.304,23.616,24.928,26.24,27.552,28.864,30.176,31.488,32.8,34.112
|
||||
]
|
||||
}
|
||||
}
|
||||
|
|
@ -114,8 +114,8 @@ export const buffs = [
|
|||
/** @type {import('../../Calculator.ts').Calculator['skills']} */
|
||||
export const skills = [
|
||||
{ name: '普攻:', type: 'AP' },
|
||||
{ name: '冲刺攻击:', type: 'CC' },
|
||||
{ name: '闪避反击:', type: 'CF' },
|
||||
{ name: '支援突击:', type: 'LT' },
|
||||
{ name: '强化特殊技:', type: 'EQ' },
|
||||
{ name: '连携技:', type: 'RL' },
|
||||
{ name: '终结技:', type: 'RZ' },
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue