feedback5 CB3: the "受到攻击时" counters answer every damage instance from an enemy, not its attacks only — 菲莱 S2 now blasts on 深溟巢涌者's pulse, so do 星熊 S2, 泡泡, 刺玫 S2, 余 S1, 玛恩纳 无动于衷, 年 S2 and 斩业星熊 (community report of 2026-10-06, item 30)
The report's 退行的潮涌者 is the 巢涌者 (深溟 / 富营养的巢涌者 in this mode): no normal attack, its talent hurts every operator in range once a second. Official (ArknightsGameData buff_template_data): its pulse is an AdvancedApplyDamage with the enemy as source (enemy_dsubrl_aoe[aura]); the counters fire on ON_TAKE_DAMAGE — philae_s_2 with no filter, inverse_damage (星熊 S2), inverse_damage[magic] + nian_s_2 (年 S2), bubble_s_2 / bubble_t_1 (泡泡), vendla_s_2 (刺玫), yu_s_1[inverse_damage] (余 S1), hsgma2_s_1 / hsgma2_e_003_tr_take (斩业星熊), mlynar_t_2[inverse] (玛恩纳) on a source of the other side; 棘刺 S2 (普通伤害 filter) and 信仰搅拌机 S3 already took any damage. Cause: the kits required dmg.isAttack. Now kits/shared/tier1.js byEnemyAttack = any enemy damage instance but a 流失, an element 损伤, 无来源 damage or another counter / reflection (tags 'counter' / 'reflect'); 菲莱 S2 any instance but a 流失 or a counter. test/content/op_nian.test.js pinned "a non-attack hit returns nothing" for 年 S2 — updated on purpose (answered now; a 流失 still is not). Golden: 19 scenarios where an enemy's non-attack damage (skills, pulses, areas) reached one of these operators — their counter now answers it (more damage, fx thorns / aoe): roster-002, -005, -008, -010, -012, -016, -033, -044; bond-lateranoShip-low; fields boss-boss_2-solo, boss-boss_4-pair, boss-boss_4-solo, hidden-boss_8-pair, hidden-boss_8-solo; matches solo-FUNNY-1, solo-FUNNY-2, coop4-ABYSS-7, coop2-ABYSS-10-boosted; diy-051. Tests: test/sim/feedback5-counters-any-damage.test.js (6; 5 fail on the parent, the first checks the 巢涌者 never attacks). Docs: docs/SIM.md (re-entrancy rule).
This commit is contained in:
1 parent
9b164fdc66
commit
5877800a67
16 files changed
+341
-182
No files matched your search
+4
-1
@@ -798,7 +798,10 @@ registration order. `battle.off(handle)` / `battle.off(name, fn)` / `battle.offO
|
|||||||
"bonus damage on hit") must not react to its own output or to other reactive damage, or two such effects ping-pong
|
"bonus damage on hit") must not react to its own output or to other reactive damage, or two such effects ping-pong
|
||||||
until the nesting guard trips (the guard then skips *every* nested handler, including `kill`/`death` bookkeeping of
|
until the nesting guard trips (the guard then skips *every* nested handler, including `kill`/`death` bookkeeping of
|
||||||
content). Respond only to `dmg.isAttack` (normal attacks), tag your damage (`tags: ['counter']`) and skip tagged damage,
|
content). Respond only to `dmg.isAttack` (normal attacks), tag your damage (`tags: ['counter']`) and skip tagged damage,
|
||||||
or guard with a per-unit flag while dealing it. When the guard trips, the logged error names the open frames
|
or guard with a per-unit flag while dealing it. The "受到攻击时" counters take the second way: the official ones fire on
|
||||||
|
every damage instance from an enemy (ON_TAKE_DAMAGE — its attack, a skill hit, 深溟巢涌者's pulse; never a 流失), so they
|
||||||
|
answer `kits/shared/tier1.js byEnemyAttack` (星熊 S2, 泡泡, 刺玫 S2, 余 S1, 玛恩纳 无动于衷, 年 S2, 斩业星熊; 菲莱 S2 any
|
||||||
|
instance) and skip `'counter'` / `'reflect'` damage. When the guard trips, the logged error names the open frames
|
||||||
(`chain: hit(enemy_x→chess_y) > damaged(chess_y) > …`).
|
(`chain: hit(enemy_x→chess_y) > damaged(chess_y) > …`).
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|||||||
@@ -6,8 +6,9 @@ import { onDefaultSkill } from '../shared/tier2.js';
|
|||||||
|
|
||||||
export default {
|
export default {
|
||||||
// ---------------------------------------------------------------------------------------------------------------
|
// ---------------------------------------------------------------------------------------------------------------
|
||||||
// 2_08 泡泡 “挨打”: stops attacking; DEF +def, taunt +taunt_level, each attack received returns atk_scale × DEF phys
|
// 2_08 泡泡 “挨打”: stops attacking; DEF +def, taunt +taunt_level, each enemy damage instance received (its attack or not:
|
||||||
// damage to the attacker. 尖刺盾: attackers get ATK −atk for `duration` s. Elite module (PRO-X): DEF +def while blocking.
|
// the official bubble_s_2 / bubble_t_1 fire on ON_TAKE_DAMAGE — tier1 byEnemyAttack) returns atk_scale × DEF phys damage
|
||||||
|
// to its source. 尖刺盾: that source gets ATK −atk for `duration` s. Elite module (PRO-X): DEF +def while blocking.
|
||||||
// S1 防御力强化·β型 (alt, TAKE_DAMAGE from data): DEF +def for its duration; the counter belongs to “挨打” only.
|
// S1 防御力强化·β型 (alt, TAKE_DAMAGE from data): DEF +def for its duration; the counter belongs to “挨打” only.
|
||||||
chess_char_2_08_a: (bb, chess) => {
|
chess_char_2_08_a: (bb, chess) => {
|
||||||
const t = talentBb(chess, 0);
|
const t = talentBb(chess, 0);
|
||||||
|
|||||||
@@ -2,10 +2,12 @@
|
|||||||
// Conventions of the tier-3 kits: ../shared/tier3.js; kit contract and rules: ../README.md.
|
// Conventions of the tier-3 kits: ../shared/tier3.js; kit contract and rules: ../README.md.
|
||||||
|
|
||||||
import { num, defOf, talentBb, traitBb, selectedId, altSkills, fx, NINE, giveSp } from '../shared/tier3.js';
|
import { num, defOf, talentBb, traitBb, selectedId, altSkills, fx, NINE, giveSp } from '../shared/tier3.js';
|
||||||
|
import { isHpLoss } from '../../../damage.js';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
// ---- 3_06 菲莱 · 本源铁卫 — S2 冥河诅咒: stops attacking, HP +; when attacked blasts the ground enemies of the 3×3
|
// ---- 3_06 菲莱 · 本源铁卫 — S2 冥河诅咒: stops attacking, HP +; "受到攻击时" — any damage instance she takes (official
|
||||||
// around her (PRTS 备注: range x-4; arts + ep_damage_ratio × ATK apoptosis, aoe_cd); ATK + once hit by element
|
// philae_s_2: ON_TAKE_DAMAGE with no source or attack filter) — blasts the ground enemies of the 3×3 around her
|
||||||
|
// (PRTS 备注: range x-4; arts + ep_damage_ratio × ATK apoptosis, aoe_cd); ATK + once hit by element
|
||||||
// damage; 神河谕使: 元素损伤 taken −damage_resistance, +SP on apoptosis
|
// damage; 神河谕使: 元素损伤 taken −damage_resistance, +SP on apoptosis
|
||||||
// 精锐 module PRP-X "阻挡敌人时,自身造成的元素损伤提升15%": EVERY element fill she deals (the S2 blast, a 灼燃维式重锤
|
// 精锐 module PRP-X "阻挡敌人时,自身造成的元素损伤提升15%": EVERY element fill she deals (the S2 blast, a 灼燃维式重锤
|
||||||
// she carries …) ×ep_damage_scale while she blocks — an `elementHit` multiplier, like 余's
|
// she carries …) ×ep_damage_scale while she blocks — an `elementHit` multiplier, like 余's
|
||||||
@@ -85,7 +87,11 @@ export default {
|
|||||||
if (isS2 && sk && sk.active && !unit.findBuff('skill:philae_rage')) battle.addBuff(unit, { key: 'skill:philae_rage', mods: { atkPct: num(bb.atk) }, visible: true });
|
if (isS2 && sk && sk.active && !unit.findBuff('skill:philae_rage')) battle.addBuff(unit, { key: 'skill:philae_rage', mods: { atkPct: num(bb.atk) }, visible: true });
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (!isS2 || !sk || !sk.active || !ctx.dmg?.isAttack || !ctx.source || ctx.source.side !== 'enemy') return;
|
// the official philae_s_2 (buff_template_data) fires on ON_TAKE_DAMAGE with no filter: any damage instance — an
|
||||||
|
// enemy's attack, a skill hit, 深溟巢涌者's pulse, a 无来源 hit — never a 流失 or an element 损伤 (above), nor a
|
||||||
|
// counter / reflection. Until 0.2.0 enemy attacks only (community report of 2026-10-06, item 30)
|
||||||
|
const d = ctx.dmg;
|
||||||
|
if (!isS2 || !sk || !sk.active || !d || isHpLoss(d) || (d.tags || []).some((t) => t === 'counter' || t === 'reflect')) return;
|
||||||
if (battle.time < (unit.mem.philaeCd ?? -Infinity)) return;
|
if (battle.time < (unit.mem.philaeCd ?? -Infinity)) return;
|
||||||
unit.mem.philaeCd = battle.time + cd;
|
unit.mem.philaeCd = battle.time + cd;
|
||||||
// "周围的地面敌人" = range x-4, the 3×3 tiles around her (PRTS 备注)
|
// "周围的地面敌人" = range x-4, the 3×3 tiles around her (PRTS 备注)
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
// Conventions of the tier-4 kits: ../shared/tier4.js; kit contract and rules: ../README.md.
|
// Conventions of the tier-4 kits: ../shared/tier4.js; kit contract and rules: ../README.md.
|
||||||
|
|
||||||
import { AURA, num, tbb, whileDeployed, pulse, toggleBuff, isSel, alt, withDefaults } from '../shared/tier4.js';
|
import { AURA, num, tbb, whileDeployed, pulse, toggleBuff, isSel, alt, withDefaults } from '../shared/tier4.js';
|
||||||
|
import { byEnemyAttack } from '../shared/tier1.js';
|
||||||
|
|
||||||
export default withDefaults({
|
export default withDefaults({
|
||||||
// ===== 星熊 (protector) S2 荆棘 (passive) — DEF +13 %, counters every attacker for 65 % ATK phys; talents
|
// ===== 星熊 (protector) S2 荆棘 (passive) — DEF +13 %, counters every attacker for 65 % ATK phys; talents
|
||||||
@@ -40,7 +41,8 @@ export default withDefaults({
|
|||||||
if (!S2) return;
|
if (!S2) return;
|
||||||
battle.on('damaged', (c) => {
|
battle.on('damaged', (c) => {
|
||||||
const src = c.source;
|
const src = c.source;
|
||||||
if (c.target !== unit || !unit.alive || !src || src.side !== 'enemy' || !src.alive || !c.dmg?.isAttack) return;
|
// 荆棘 = the official inverse_damage: every enemy damage instance, not its attacks only (tier1 byEnemyAttack)
|
||||||
|
if (c.target !== unit || !unit.alive || !byEnemyAttack(c) || !src.alive) return;
|
||||||
battle.dealDamage(unit, src, { amount: unit.s.atk * num(bb.atk_scale, 0.65), type: 'phys', canDodge: false, isSkill: true, tags: ['counter'] });
|
battle.dealDamage(unit, src, { amount: unit.s.atk * num(bb.atk_scale, 0.65), type: 'phys', canDodge: false, isSkill: true, tags: ['counter'] });
|
||||||
battle.fx('thorns', { x: unit.x, y: unit.y, id: unit.id });
|
battle.fx('thorns', { x: unit.x, y: unit.y, id: unit.id });
|
||||||
}, { owner: unit });
|
}, { owner: unit });
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import {
|
|||||||
num, on, inRange, talent, skillGrid, batPct, mods, inFaction, isOp, selectedId, lazySkills, skillRange, leaderOf,
|
num, on, inRange, talent, skillGrid, batPct, mods, inFaction, isOp, selectedId, lazySkills, skillRange, leaderOf,
|
||||||
whileOn, permBuff,
|
whileOn, permBuff,
|
||||||
} from '../shared/tier5.js';
|
} from '../shared/tier5.js';
|
||||||
|
import { byEnemyAttack } from '../shared/tier1.js';
|
||||||
|
|
||||||
/** 玛恩纳 游侠 "周围存在3名及以上敌人" radius (8-neighbourhood). */
|
/** 玛恩纳 游侠 "周围存在3名及以上敌人" radius (8-neighbourhood). */
|
||||||
const AROUND_RADIUS = 1.5;
|
const AROUND_RADIUS = 1.5;
|
||||||
@@ -18,7 +19,7 @@ export default {
|
|||||||
// PRTS 备注 the trait bonus drops by 10 % (per_kill_reduce, absolute: +400 % → +390 %) for each enemy knocked out by
|
// PRTS 备注 the trait bonus drops by 10 % (per_kill_reduce, absolute: +400 % → +390 %) for each enemy knocked out by
|
||||||
// his own attack (or the damage it carries — not 无动于衷's reflection, not a mark another operator's attack set off),
|
// his own attack (or the damage it carries — not 无动于衷's reflection, not a mark another operator's attack set off),
|
||||||
// settled after that attack, never below +0 %. T1 游侠: ×1.1 ATK on attacks (×1.15 and −15 % damage taken with ≥3
|
// settled after that attack, never below +0 %. T1 游侠: ×1.1 ATK on attacks (×1.15 and −15 % damage taken with ≥3
|
||||||
// enemies around). T2 无动于衷: taunt +1, Kazimierz ops reflect 15 % of his ATK as true damage when attacked.
|
// enemies around). T2 无动于衷: taunt +1, Kazimierz ops reflect 15 % of his ATK as true damage when an enemy damages them.
|
||||||
// S1 未声张的怒火 (duration, SEARCH): attacks attack@atk_scale × ATK, DEF +. S2 未宽解的悲哀 (duration): skill range,
|
// S1 未声张的怒火 (duration, SEARCH): attacks attack@atk_scale × ATK, DEF +. S2 未宽解的悲哀 (duration): skill range,
|
||||||
// BAT +0.3 s, attacks attack@atk_scale × ATK twice; a kill of his own attacks during the skill keeps the trait ramp
|
// BAT +0.3 s, attacks attack@atk_scale × ATK twice; a kill of his own attacks during the skill keeps the trait ramp
|
||||||
// when it ends. S1 / S2 have no 对空 note: ground only, like his trait. S2's data rule is ACTIVE_RANGE on its 2-3 (the
|
// when it ends. S1 / S2 have no 对空 note: ground only, like his trait. S2's data rule is ACTIVE_RANGE on its 2-3 (the
|
||||||
@@ -85,7 +86,9 @@ export default {
|
|||||||
if (!(scale > 0)) return;
|
if (!(scale > 0)) return;
|
||||||
battle.on('damaged', (c) => {
|
battle.on('damaged', (c) => {
|
||||||
const a = c.target, src = c.source;
|
const a = c.target, src = c.source;
|
||||||
if (a.side !== 'ally' || !isOp(a) || !isKazimierz(a) || !src || src.side !== 'enemy' || !src.alive || !c.dmg?.isAttack) return;
|
// the official mlynar_t_2[inverse] (ON_TAKE_DAMAGE, InverseDamage from an enemy source): every enemy damage instance
|
||||||
|
// a Kazimierz operator takes, not its attacks only (tier1 byEnemyAttack)
|
||||||
|
if (a.side !== 'ally' || !isOp(a) || !isKazimierz(a) || !byEnemyAttack(c) || !src.alive) return;
|
||||||
if (!on(unit) || leaderOf(battle, unit) !== unit) return;
|
if (!on(unit) || leaderOf(battle, unit) !== unit) return;
|
||||||
battle.dealDamage(unit, src, { amount: unit.s.atk * scale, type: 'true', canDodge: false, tags: ['talent', 'reflect'] });
|
battle.dealDamage(unit, src, { amount: unit.s.atk * scale, type: 'true', canDodge: false, tags: ['talent', 'reflect'] });
|
||||||
}, { owner: unit });
|
}, { owner: unit });
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ import {
|
|||||||
num, bv, tbb, moduleBb, live, opsOf, ANY, onDefaultSkill, selectedSkill, skillGridOf, AROUND8, onElementHit,
|
num, bv, tbb, moduleBb, live, opsOf, ANY, onDefaultSkill, selectedSkill, skillGridOf, AROUND8, onElementHit,
|
||||||
elementDmg, aura,
|
elementDmg, aura,
|
||||||
} from '../shared/tier6.js';
|
} from '../shared/tier6.js';
|
||||||
import { holdProtect } from '../shared/tier1.js';
|
import { holdProtect, byEnemyAttack } from '../shared/tier1.js';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* "传送至自身位置": a ground enemy that can reach `unit`'s tile on the ground grid is moved onto it (unblocked, its
|
* "传送至自身位置": a ground enemy that can reach `unit`'s tile on the ground grid is moved onto it (unblocked, its
|
||||||
@@ -71,7 +71,8 @@ function yu(bb, chess, def) {
|
|||||||
battle.addBuff(unit, { key: 'yu:host', mods: { taunt: num(bb.taunt_level, 1) }, persist: true, allowDead: true });
|
battle.addBuff(unit, { key: 'yu:host', mods: { taunt: num(bb.taunt_level, 1) }, persist: true, allowDead: true });
|
||||||
battle.on('damaged', (ctx) => {
|
battle.on('damaged', (ctx) => {
|
||||||
const s = ctx.source;
|
const s = ctx.source;
|
||||||
if (ctx.target !== unit || !unit.skill?.active || !s || s.side !== 'enemy' || !s.alive || !ctx.dmg?.isAttack) return;
|
// "每次受到攻击" = the official yu_s_1[inverse_damage]: every enemy damage instance (tier1 byEnemyAttack)
|
||||||
|
if (ctx.target !== unit || !unit.skill?.active || !byEnemyAttack(ctx) || !s.alive) return;
|
||||||
elementDmg(battle, unit, s, 'burn', unit.s.atk * num(bb.ep_damage_ratio), ['skill']);
|
elementDmg(battle, unit, s, 'burn', unit.s.atk * num(bb.ep_damage_ratio), ['skill']);
|
||||||
}, { owner: unit });
|
}, { owner: unit });
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -52,7 +52,7 @@
|
|||||||
// refund of a withdrawal is not modelled — no retreat in the sim refunds DP). No strategy of this mode closes it: PRTS
|
// refund of a withdrawal is not modelled — no retreat in the sim refunds DP). No strategy of this mode closes it: PRTS
|
||||||
// 帮助 lists the 上半 row that did as removed in 下半, so in a fight the skill simply runs its `duration`.
|
// 帮助 lists the 上半 row that did as removed in 下半, so in a fight the skill simply runs its `duration`.
|
||||||
|
|
||||||
import { num, talentBb, traitBb, skillRec, up } from '../shared/tier1.js';
|
import { num, talentBb, traitBb, skillRec, up, byEnemyAttack } from '../shared/tier1.js';
|
||||||
import { canTargetEnemy } from '../../../targeting.js';
|
import { canTargetEnemy } from '../../../targeting.js';
|
||||||
import { bodyInRadius } from '../../../body.js';
|
import { bodyInRadius } from '../../../body.js';
|
||||||
import { hasHp } from '../../../damage.js';
|
import { hasHp } from '../../../damage.js';
|
||||||
@@ -252,15 +252,17 @@ export default {
|
|||||||
} },
|
} },
|
||||||
],
|
],
|
||||||
install(battle, unit) {
|
install(battle, unit) {
|
||||||
// S1 恶业苦果: every enemy attack she takes ⇒ atk_scale × ATK arts back to the attacker
|
// S1 恶业苦果: every enemy damage instance she takes (the official hsgma2_s_1 on ON_TAKE_DAMAGE, not its attacks only:
|
||||||
|
// tier1 byEnemyAttack) ⇒ atk_scale × ATK arts back to its source
|
||||||
battle.on('damaged', (c) => {
|
battle.on('damaged', (c) => {
|
||||||
const s = c.source;
|
const s = c.source;
|
||||||
if (c.target !== unit || !unit.alive || unit.skill?.id !== S1 || !unit.skill.active) return;
|
if (c.target !== unit || !unit.alive || unit.skill?.id !== S1 || !unit.skill.active) return;
|
||||||
if (!s || s.side !== 'enemy' || !s.alive || !c.dmg?.isAttack) return;
|
if (!byEnemyAttack(c) || !s.alive) return;
|
||||||
battle.dealDamage(unit, s, { amount: unit.s.atk * num(b1.atk_scale), type: 'arts', canDodge: false, isSkill: true, ignoreSelect: true, tags: ['skill', 'counter'] });
|
battle.dealDamage(unit, s, { amount: unit.s.atk * num(b1.atk_scale), type: 'arts', canDodge: false, isSkill: true, ignoreSelect: true, tags: ['skill', 'counter'] });
|
||||||
battle.fx('counter', { x: s.x, y: s.y, id: unit.id });
|
battle.fx('counter', { x: s.x, y: s.y, id: unit.id });
|
||||||
}, { owner: unit });
|
}, { owner: unit });
|
||||||
// AST-X 无迹: her attack damage ⇒ +atk_scale × ATK arts (附加伤害); an enemy attack she takes ⇒ atk_scale × ATK arts back
|
// AST-X 无迹: her attack damage ⇒ +atk_scale × ATK arts (附加伤害); an enemy damage instance she takes (the official
|
||||||
|
// hsgma2_e_003_tr_take: ON_TAKE_DAMAGE from the other side) ⇒ atk_scale × ATK arts back
|
||||||
const astx = num(tb.atk_scale);
|
const astx = num(tb.atk_scale);
|
||||||
if (astx > 0) {
|
if (astx > 0) {
|
||||||
battle.on('damaged', (c) => {
|
battle.on('damaged', (c) => {
|
||||||
@@ -270,7 +272,7 @@ export default {
|
|||||||
}, { owner: unit, priority: -20 });
|
}, { owner: unit, priority: -20 });
|
||||||
battle.on('damaged', (c) => {
|
battle.on('damaged', (c) => {
|
||||||
const s = c.source;
|
const s = c.source;
|
||||||
if (c.target !== unit || !unit.alive || !s || s.side !== 'enemy' || !s.alive || !c.dmg?.isAttack) return;
|
if (c.target !== unit || !unit.alive || !byEnemyAttack(c) || !s.alive) return;
|
||||||
battle.dealDamage(unit, s, { amount: unit.s.atk * astx, type: 'arts', ignoreSelect: true, tags: ['module', ASTX, 'counter'] });
|
battle.dealDamage(unit, s, { amount: unit.s.atk * astx, type: 'arts', ignoreSelect: true, tags: ['module', ASTX, 'counter'] });
|
||||||
}, { owner: unit });
|
}, { owner: unit });
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -37,7 +37,7 @@
|
|||||||
// −one_minus_status_resistance), refreshed every AURA s while the skill runs; two 年 of a shared field keep the stronger
|
// −one_minus_status_resistance), refreshed every AURA s while the skill runs; two 年 of a shared field keep the stronger
|
||||||
// (installAura's rule). The DEF / block buff ends with the skill, the 抵抗 within AURA_DUR.
|
// (installAura's rule). The DEF / block buff ends with the skill, the 抵抗 within AURA_DUR.
|
||||||
|
|
||||||
import { num, talentBb, traitBb, skillRec, statBuff, toggleBuff, up, giveSp } from '../shared/tier1.js';
|
import { num, talentBb, traitBb, skillRec, statBuff, toggleBuff, up, giveSp, byEnemyAttack } from '../shared/tier1.js';
|
||||||
import { absoluteRangeKeys } from '../../../targeting.js';
|
import { absoluteRangeKeys } from '../../../targeting.js';
|
||||||
import { COLS } from '../../../constants.js';
|
import { COLS } from '../../../constants.js';
|
||||||
|
|
||||||
@@ -154,12 +154,13 @@ export default {
|
|||||||
battle.addBuff(unit, { key: FORT, mods: nz({ hpPct: perHp * n, healingTakenMul: Math.min(healMax, healBase + healAdd * n) }), data: { n }, tags: ['trait'] });
|
battle.addBuff(unit, { key: FORT, mods: nz({ hpPct: perHp * n, healingTakenMul: Math.min(healMax, healBase + healAdd * n) }), data: { n }, tags: ['trait'] });
|
||||||
}, { owner: unit });
|
}, { owner: unit });
|
||||||
}
|
}
|
||||||
// S2 铜印: every enemy attack she takes ⇒ atk_scale × ATK arts back to the attacker + silence `silence` s
|
// S2 铜印: every enemy damage instance she takes (the official inverse_damage[magic] + nian_s_2 on ON_TAKE_DAMAGE, not
|
||||||
|
// its attacks only: tier1 byEnemyAttack) ⇒ atk_scale × ATK arts back to its source + silence `silence` s
|
||||||
const scale = num(b2.atk_scale), sil = num(b2.silence);
|
const scale = num(b2.atk_scale), sil = num(b2.silence);
|
||||||
battle.on('damaged', (c) => {
|
battle.on('damaged', (c) => {
|
||||||
const src = c.source;
|
const src = c.source;
|
||||||
if (c.target !== unit || !unit.alive || unit.skill?.id !== S2 || !unit.skill.active) return;
|
if (c.target !== unit || !unit.alive || unit.skill?.id !== S2 || !unit.skill.active) return;
|
||||||
if (!src || src.side !== 'enemy' || !src.alive || !c.dmg?.isAttack) return;
|
if (!byEnemyAttack(c) || !src.alive) return;
|
||||||
if (scale > 0) battle.dealDamage(unit, src, { amount: unit.s.atk * scale, type: 'arts', canDodge: false, isSkill: true, ignoreSelect: true, tags: ['skill', 'counter'] });
|
if (scale > 0) battle.dealDamage(unit, src, { amount: unit.s.atk * scale, type: 'arts', canDodge: false, isSkill: true, ignoreSelect: true, tags: ['skill', 'counter'] });
|
||||||
if (sil > 0 && src.alive) battle.applyStatus(src, 'silence', { duration: sil, source: unit });
|
if (sil > 0 && src.alive) battle.applyStatus(src, 'silence', { duration: sil, source: unit });
|
||||||
battle.fx('counter', { x: src.x, y: src.y, id: unit.id });
|
battle.fx('counter', { x: src.x, y: src.y, id: unit.id });
|
||||||
|
|||||||
@@ -31,6 +31,7 @@ import { COLS, TICK } from '../../../constants.js';
|
|||||||
import { absoluteRangeKeys, sortEnemyTargets } from '../../../targeting.js';
|
import { absoluteRangeKeys, sortEnemyTargets } from '../../../targeting.js';
|
||||||
import { offsetTile } from '../../../dir.js';
|
import { offsetTile } from '../../../dir.js';
|
||||||
import { bodyInKeys, bodyTileReach } from '../../../body.js';
|
import { bodyInKeys, bodyTileReach } from '../../../body.js';
|
||||||
|
import { isHpLoss } from '../../../damage.js';
|
||||||
|
|
||||||
// =================================================================================================================
|
// =================================================================================================================
|
||||||
// shared helpers (named exports; content/index.js only merges the default export)
|
// shared helpers (named exports; content/index.js only merges the default export)
|
||||||
@@ -66,8 +67,21 @@ export const cheb = (a, b) => (b.hitArea ? bodyTileReach(b, Math.round(a.y), Mat
|
|||||||
: Math.max(Math.abs(Math.round(a.y) - Math.round(b.y)), Math.abs(Math.round(a.x) - Math.round(b.x))));
|
: Math.max(Math.abs(Math.round(a.y) - Math.round(b.y)), Math.abs(Math.round(a.x) - Math.round(b.x))));
|
||||||
/** Normal attack hit on its primary target (no splash, no chain jump). */
|
/** Normal attack hit on its primary target (no splash, no chain jump). */
|
||||||
export const isMainHit = (dmg) => !!dmg && dmg.isAttack && !dmg.isSplash && !(dmg.tags && dmg.tags.includes('chain'));
|
export const isMainHit = (dmg) => !!dmg && dmg.isAttack && !dmg.isSplash && !(dmg.tags && dmg.tags.includes('chain'));
|
||||||
/** Damage ctx caused by an enemy's attack. */
|
/**
|
||||||
export const byEnemyAttack = (ctx) => !!ctx.source && ctx.source.side === 'enemy' && !!ctx.dmg && ctx.dmg.isAttack;
|
* `damaged` ctx that sets off a "受到攻击时" counter: a damage instance from an enemy, of any kind — its normal attack, a
|
||||||
|
* skill hit, an area pulse (深溟巢涌者's 无途径 法术伤害). The official counters fire on ON_TAKE_DAMAGE from a source of the
|
||||||
|
* other side, not on attacks only (ArknightsGameData buff_template_data: inverse_damage / inverse_damage[magic] — 星熊 S2,
|
||||||
|
* 年 S2 —, bubble_s_2 / bubble_t_1 — 泡泡 —, vendla_s_2 — 刺玫 —, yu_s_1[inverse_damage] — 余 S1 —, hsgma2_s_1 /
|
||||||
|
* hsgma2_e_003_tr_take — 斩业星熊 —, mlynar_t_2[inverse] — 玛恩纳 无动于衷; 菲莱 S2's philae_s_2 checks no source at all).
|
||||||
|
* Never a 流失 (PRTS 作战机制 "生命流失…不会触发反伤、受击回复等受到攻击触发的时点"), an element 损伤 (its own event), 无来源 damage
|
||||||
|
* (no source to strike back) or another counter / reflection (tags 'counter' / 'reflect': no ping-pong). Community report
|
||||||
|
* of 2026-10-06 (item 30): it took enemy attacks only, so 深溟巢涌者's pulse never set a counter off.
|
||||||
|
*/
|
||||||
|
export const byEnemyAttack = (ctx) => {
|
||||||
|
const s = ctx.source, d = ctx.dmg;
|
||||||
|
if (!s || s.side !== 'enemy' || !d || d.sourceless || ctx.type === 'element' || isHpLoss(d)) return false;
|
||||||
|
return !(Array.isArray(d.tags) && (d.tags.includes('counter') || d.tags.includes('reflect')));
|
||||||
|
};
|
||||||
/**
|
/**
|
||||||
* `damaged` ctx of a damage that removed HP and can give 受击回复 SP — the engine's rule (damage.js applyHpLoss: not a 流失
|
* `damaged` ctx of a damage that removed HP and can give 受击回复 SP — the engine's rule (damage.js applyHpLoss: not a 流失
|
||||||
* (`noSp`, Battle.loseHp), not an element 损伤), whatever its source: an attack, a zone, the 无来源 源石溶剂 tick.
|
* (`noSp`, Battle.loseHp), not an element 损伤), whatever its source: an attack, a zone, the 无来源 源石溶剂 tick.
|
||||||
|
|||||||
@@ -127,7 +127,7 @@ test('S1 锡灼 (23 / 26 s): DEF +40 % / +55 %, ATK +20 % / +30 %, her normal at
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
test('S2 铜印 (31 / 32 s): stops attacking; DEF +80 % / +100 %, block +1; every enemy attack she takes returns 60 % / 70 % ATK arts to the attacker (ranged ones too, a direct pick) and silences it 3 s; nothing for a non-attack hit, nothing once it ends', () => {
|
test('S2 铜印 (31 / 32 s): stops attacking; DEF +80 % / +100 %, block +1; every enemy damage instance she takes (its attack or not — official ON_TAKE_DAMAGE) returns 60 % / 70 % ATK arts to its source (ranged ones too, a direct pick) and silences it 3 s; nothing for a 流失, nothing once it ends', () => {
|
||||||
for (const [tier, elite, mod] of [[5, false, null], [6, true, null], [6, true, PROY]]) {
|
for (const [tier, elite, mod] of [[5, false, null], [6, true, null], [6, true, PROY]]) {
|
||||||
const sk = skillOf(tier, elite, S2);
|
const sk = skillOf(tier, elite, S2);
|
||||||
const { h, u } = field({ tier, elite, mod, skill: 1 });
|
const { h, u } = field({ tier, elite, mod, skill: 1 });
|
||||||
@@ -151,9 +151,14 @@ test('S2 铜印 (31 / 32 s): stops attacking; DEF +80 % / +100 %, block +1; ever
|
|||||||
const sil = h.hooksOf('statusApplied').filter((c) => c.source === u && c.target === src && c.status === 'silence').slice(-1)[0];
|
const sil = h.hooksOf('statusApplied').filter((c) => c.source === u && c.target === src && c.status === 'silence').slice(-1)[0];
|
||||||
assert.ok(sil && Math.abs(sil.duration - 3) < 1e-9, `T${tier}: ${src.defId} silenced 3 s`);
|
assert.ok(sil && Math.abs(sil.duration - 3) < 1e-9, `T${tier}: ${src.defId} silenced 3 s`);
|
||||||
}
|
}
|
||||||
|
// updated on purpose by the community report of 2026-10-06 (item 30): the official inverse_damage[magic] / nian_s_2 fire on
|
||||||
|
// ON_TAKE_DAMAGE from an enemy source — a non-attack hit is answered too (it returned nothing up to 0.2.0); a 流失 is not
|
||||||
const before = h.hooksOf('damaged').length;
|
const before = h.hooksOf('damaged').length;
|
||||||
h.b.dealDamage(near, u, { amount: 100, type: 'phys' });
|
h.b.dealDamage(near, u, { amount: 100, type: 'phys' });
|
||||||
assert.ok(!h.hooksOf('damaged').slice(before).some((c) => c.source === u), `T${tier}: a non-attack hit returns nothing`);
|
assert.equal(h.hooksOf('damaged').slice(before).filter((c) => c.source === u && c.target === near).length, 1, `T${tier}: a non-attack hit is answered`);
|
||||||
|
const beforeLoss = h.hooksOf('damaged').length;
|
||||||
|
h.b.loseHp(u, 100, { source: near });
|
||||||
|
assert.ok(!h.hooksOf('damaged').slice(beforeLoss).some((c) => c.source === u), `T${tier}: a 流失 returns nothing`);
|
||||||
u.skill.extend(-999);
|
u.skill.extend(-999);
|
||||||
h.run(0.1);
|
h.run(0.1);
|
||||||
const after = h.hooksOf('damaged').length;
|
const after = h.hooksOf('damaged').length;
|
||||||
|
|||||||
@@ -670,20 +670,20 @@
|
|||||||
"p1": {"killed":17,"total":17,"perfect":true,"leaks":0,"leaksUncounted":0,"coins":0,"dmg":94536,"bossDmg":0,"heal":0,"deaths":3,"layerGains":{"lateranoShip":3}}
|
"p1": {"killed":17,"total":17,"perfect":true,"leaks":0,"leaksUncounted":0,"coins":0,"dmg":94536,"bossDmg":0,"heal":0,"deaths":3,"layerGains":{"lateranoShip":3}}
|
||||||
},
|
},
|
||||||
"units": [
|
"units": [
|
||||||
["p1",1,"op","chess_char_3_06_a",1,null,3066.32,1,2,0,0,400,0,0,1],
|
["p1",1,"op","chess_char_3_06_a",1,null,3066.32,1,2,0,450,400,0,0,1],
|
||||||
["p1",2,"op","chess_char_3_05_a",2,null,4697.91,1,4,3,8989,737,0,10,1],
|
["p1",2,"op","chess_char_3_05_a",2,null,4697.91,1,4,2,8751,737,0,9,1],
|
||||||
["p1",3,"op","chess_char_1_01_a",1,null,223,1,7,2,13909,900,0,35,1],
|
["p1",3,"op","chess_char_1_01_a",1,null,223,1,7,2,13909,900,0,35,1],
|
||||||
["p1",4,"op","chess_char_2_01_a",1,null,0,0,8,1,7351,1694,0,10,0],
|
["p1",4,"op","chess_char_2_01_a",1,null,0,0,8,1,7351,1694,0,10,0],
|
||||||
["p1",5,"op","chess_char_3_01_a",2,null,1071.8,1,1,7,6614,400,0,32,1],
|
["p1",5,"op","chess_char_3_01_a",2,null,1071.8,1,1,8,6403,400,0,32,1],
|
||||||
["p1",6,"op","chess_char_3_08_a",1,null,1194,1,3,0,5328,400,0,6,1],
|
["p1",6,"op","chess_char_3_08_a",1,null,1194,1,3,0,5328,400,0,6,1],
|
||||||
["p1",7,"op","chess_char_3_09_a",1,null,0,0,5,3,16254,1267,0,21,1],
|
["p1",7,"op","chess_char_3_09_a",1,null,0,0,5,3,16254,1267,0,21,1],
|
||||||
["p1",8,"op","chess_char_3_10_a",1,null,0,0,6,0,36092,1650,0,15,1]
|
["p1",8,"op","chess_char_3_10_a",1,null,0,0,6,0,36092,1650,0,15,1]
|
||||||
],
|
],
|
||||||
"enemies": {"enemy_1267_nhpbr":[11,11,0,4668,57024],"enemy_1267_nhpbr_2":[5,5,0,1141,31680],"enemy_1272_nhtank":[1,1,0,1639,13824]},
|
"enemies": {"enemy_1267_nhpbr":[11,11,0,4668,57024],"enemy_1267_nhpbr_2":[5,5,0,1141,31680],"enemy_1272_nhtank":[1,1,0,1639,13824]},
|
||||||
"hooks": [1,25,1853,134,134,488,488,0,20,20,7,4,15,7720,0,3,17,0,1,20,1,0,0],
|
"hooks": [1,25,1853,133,133,488,489,0,20,20,7,4,15,7720,0,3,17,0,1,20,1,0,0],
|
||||||
"events": {"atk":174,"deploy":8,"die":20,"dmg":488,"engage":7,"fx":28,"layer":1,"skill":11,"spawn":25,"status":1},
|
"events": {"atk":173,"deploy":8,"die":20,"dmg":489,"engage":7,"fx":32,"layer":1,"skill":11,"spawn":25,"status":1},
|
||||||
"fx": {"buff":1,"displace":4,"garrison":1,"pull":4,"zone":18},
|
"fx": {"aoe":4,"buff":1,"displace":4,"garrison":1,"pull":4,"zone":18},
|
||||||
"snaps": "c9571e9b 447301c4 c2a9024c efb0fbd5 235c33ca 49372e4b f842196b"
|
"snaps": "c9571e9b 447301c4 c2a9024c efb0fbd5 235c33ca 426df9e4 5d2597e0"
|
||||||
},
|
},
|
||||||
"bond-lateranoShip-high": {
|
"bond-lateranoShip-high": {
|
||||||
"about": "拉特兰 high: tier 2 layers 999; chess_char_4_01_b chess_char_5_13_b chess_char_5_14_b chess_char_1_01_b chess_char_2_01_b chess_char_3_01_b chess_char_3_21_b chess_char_4_02_b",
|
"about": "拉特兰 high: tier 2 layers 999; chess_char_4_01_b chess_char_5_13_b chess_char_5_14_b chess_char_1_01_b chess_char_2_01_b chess_char_3_01_b chess_char_3_21_b chess_char_4_02_b",
|
||||||
|
|||||||
@@ -2069,28 +2069,28 @@
|
|||||||
"bossHpLeft": null,
|
"bossHpLeft": null,
|
||||||
"rngDraws": 0,
|
"rngDraws": 0,
|
||||||
"errors": {"count":0,"kinds":[]},
|
"errors": {"count":0,"kinds":[]},
|
||||||
"players": {"p1":{"killed":85,"total":99,"perfect":false,"leaks":14,"leaksUncounted":0,"coins":0,"dmg":1118348,"bossDmg":0,"heal":39314,"deaths":11,"layerGains":{}}},
|
"players": {"p1":{"killed":85,"total":99,"perfect":false,"leaks":14,"leaksUncounted":0,"coins":0,"dmg":1118419,"bossDmg":0,"heal":39314,"deaths":11,"layerGains":{}}},
|
||||||
"units": [
|
"units": [
|
||||||
["p1",1,"op","chess_char_5_diy1_a",0,null,2592,1,120,0,6323,2592,0,24,0],
|
["p1",1,"op","chess_char_5_diy1_a",0,null,2592,1,120,0,6323,2592,0,24,0],
|
||||||
["p1",2,"op","chess_char_5_diy2_a",1,null,2592,1,113,1,21971,2592,1520,19,1],
|
["p1",2,"op","chess_char_5_diy2_a",1,null,2592,1,113,1,21971,2592,1520,19,1],
|
||||||
["p1",3,"op","chess_char_5_diy1_a",2,null,2592,1,111,2,58248,3442,0,36,1],
|
["p1",3,"op","chess_char_5_diy1_a",2,null,2592,1,111,2,58248,3442,0,36,1],
|
||||||
["p1",4,"op","chess_char_5_diy2_b",0,"none",3228,1,121,12,109351,3228,0,74,1],
|
["p1",4,"op","chess_char_5_diy2_b",0,"none",3228,1,121,12,109351,3228,0,74,1],
|
||||||
["p1",5,"op","chess_char_5_diy1_b",1,"none",3032.16,1,12,19,263069,21223,23687,95,6],
|
["p1",5,"op","chess_char_5_diy1_b",1,"none",3032.16,1,12,19,262996,21223,23687,95,6],
|
||||||
["p1",6,"op","chess_char_5_diy2_b",2,"none",732.33,1,93,16,190077,6715,0,82,2],
|
["p1",6,"op","chess_char_5_diy2_b",2,"none",732.33,1,93,16,190077,6715,0,82,2],
|
||||||
["p1",7,"op","chess_char_5_diy1_b",0,"uniequip_002_hsgma2",27.21,1,75,12,127942,6809,0,83,1],
|
["p1",7,"op","chess_char_5_diy1_b",0,"uniequip_002_hsgma2",27.21,1,75,12,128015,6809,0,83,1],
|
||||||
["p1",8,"op","chess_char_5_diy2_b",1,"uniequip_002_hsgma2",1,1,3,5,67826,7203,6378,42,4],
|
["p1",8,"op","chess_char_5_diy2_b",1,"uniequip_002_hsgma2",1,1,3,5,67837,7203,6378,42,4],
|
||||||
["p1",9,"op","chess_char_5_diy1_b",2,"uniequip_002_hsgma2",0,0,5,2,79393,4086,0,44,2],
|
["p1",9,"op","chess_char_5_diy1_b",2,"uniequip_002_hsgma2",0,0,5,2,79453,4086,0,44,2],
|
||||||
["p1",10,"op","chess_char_6_diy1_a",0,null,0,0,118,0,1484,5185,605,43,0],
|
["p1",10,"op","chess_char_6_diy1_a",0,null,0,0,118,0,1484,5185,605,43,0],
|
||||||
["p1",11,"op","chess_char_6_diy2_a",1,null,2592,1,119,2,62301,2644,6236,42,2],
|
["p1",11,"op","chess_char_6_diy2_a",1,null,2592,1,119,2,62301,2644,6236,42,2],
|
||||||
["p1",12,"op","chess_char_6_diy1_a",2,null,0,0,11,14,130362,3304,888,80,2],
|
["p1",12,"op","chess_char_6_diy1_a",2,null,0,0,11,14,130362,3304,888,80,2],
|
||||||
["-","~1","device","trap_1105_accrate",null,null,100,1,1,0,0,0,0,0,null],
|
["-","~1","device","trap_1105_accrate",null,null,100,1,1,0,0,0,0,0,null],
|
||||||
["-","~2","device","trap_1105_accrate",null,null,100,1,2,0,0,0,0,0,null]
|
["-","~2","device","trap_1105_accrate",null,null,100,1,2,0,0,0,0,0,null]
|
||||||
],
|
],
|
||||||
"enemies": {"enemy_1010_demon":[42,38,4,21593,454505],"enemy_1320_wdrrl_2":[12,6,5,44200,309455],"enemy_1422_lrsldr_2":[45,41,4,3230,354388]},
|
"enemies": {"enemy_1010_demon":[42,38,4,21593,454505],"enemy_1320_wdrrl_2":[12,6,5,44200,309526],"enemy_1422_lrsldr_2":[45,41,4,3230,354388]},
|
||||||
"hooks": [1,121,6900,1369,1369,2970,2970,1467,96,109,22,20,0,11502,695,97,99,13,1,96,0,0,0],
|
"hooks": [1,121,6900,1369,1369,2973,2973,1467,96,109,22,20,0,11502,695,97,99,13,1,96,0,0,0],
|
||||||
"events": {"atk":1482,"deploy":20,"die":96,"dmg":2756,"engage":12,"fx":893,"heal":574,"leak":13,"skill":42,"spawn":113,"status":264},
|
"events": {"atk":1482,"deploy":20,"die":96,"dmg":2759,"engage":12,"fx":893,"heal":574,"leak":13,"skill":42,"spawn":113,"status":264},
|
||||||
"fx": {"counter":154,"explode":10,"strike":695,"undying":21,"zone":13},
|
"fx": {"counter":154,"explode":10,"strike":695,"undying":21,"zone":13},
|
||||||
"snaps": "3178290b a1e79565 3e8d348d 5df93583 8eaac70b 4fd00ffb c91cde31 fe3a467d bc262795 604cd633 bbf789d3 7026fba9 19512d4c 51ebad00 91169fd0 b7c98067 f6a5313f f592cfc9 b78c6faf 3522036e 0ff4b89b dc781b7a c895cf51"
|
"snaps": "3178290b a1e79565 3e8d348d 57d8c0ec 693d384c 31d69b16 e600d9d0 18d1f8ba 6b8f73c6 556d017a e6dbe7c7 a8f52db3 e86e3395 6f0b94e1 5de77001 0f5c8e43 2d22cb67 9d427bb7 b213b370 79e1e980 6dbddd86 d243d612 6b2385d8"
|
||||||
},
|
},
|
||||||
"diy-052": {
|
"diy-052": {
|
||||||
"about": "6_diy1_b=hsgma2/S1 6_diy2_b=hsgma2/S2 6_diy1_b=hsgma2/S3 6_diy2_b=hsgma2/S1/002_hsgma2 6_diy1_b=hsgma2/S2/002_hsgma2 6_diy2_b=hsgma2/S3/002_hsgma2 5_diy1_a=thumpy/S1 5_diy2_a=thumpy/S2 5_diy1_a=thumpy/S3 5_diy2_b=thumpy/S1 5_diy1_b=thumpy/S2 5_diy2_b=thumpy/S3",
|
"about": "6_diy1_b=hsgma2/S1 6_diy2_b=hsgma2/S2 6_diy1_b=hsgma2/S3 6_diy2_b=hsgma2/S1/002_hsgma2 6_diy1_b=hsgma2/S2/002_hsgma2 6_diy2_b=hsgma2/S3/002_hsgma2 5_diy1_a=thumpy/S1 5_diy2_a=thumpy/S2 5_diy1_a=thumpy/S3 5_diy2_b=thumpy/S1 5_diy1_b=thumpy/S2 5_diy2_b=thumpy/S3",
|
||||||
|
|||||||
+55
-55
@@ -193,12 +193,12 @@
|
|||||||
"killed": 5,
|
"killed": 5,
|
||||||
"total": 7,
|
"total": 7,
|
||||||
"unspawned": 0,
|
"unspawned": 0,
|
||||||
"bossHpLeft": 2859626,
|
"bossHpLeft": 2859549,
|
||||||
"rngDraws": 58,
|
"rngDraws": 58,
|
||||||
"errors": {"count":0,"kinds":[]},
|
"errors": {"count":0,"kinds":[]},
|
||||||
"players": {"p1":{"killed":5,"total":7,"perfect":false,"leaks":2,"leaksUncounted":0,"coins":0,"dmg":299098,"bossDmg":134272,"heal":35078,"deaths":3,"layerGains":{}}},
|
"players": {"p1":{"killed":5,"total":7,"perfect":false,"leaks":2,"leaksUncounted":0,"coins":0,"dmg":299175,"bossDmg":134349,"heal":35078,"deaths":3,"layerGains":{}}},
|
||||||
"units": [
|
"units": [
|
||||||
["p1",1,"op","chess_char_4_17_b",1,"uniequip_002_hsguma",1986.83,1,18,0,1827,13433,11108,37,0],
|
["p1",1,"op","chess_char_4_17_b",1,"uniequip_002_hsguma",1986.83,1,18,0,1903,13433,11108,37,0],
|
||||||
["p1",2,"op","chess_char_4_18_b",1,"uniequip_002_mudrok",6104,1,4,0,37730,0,0,35,2],
|
["p1",2,"op","chess_char_4_18_b",1,"uniequip_002_mudrok",6104,1,4,0,37730,0,0,35,2],
|
||||||
["p1",3,"op","chess_char_4_23_b",2,"uniequip_002_gvial2",2811,1,6,0,16657,4105,2581,25,3],
|
["p1",3,"op","chess_char_4_23_b",2,"uniequip_002_gvial2",2811,1,6,0,16657,4105,2581,25,3],
|
||||||
["p1",4,"op","chess_char_4_19_b",2,"uniequip_002_flamtl",2118,1,7,1,21419,5053,804,44,5],
|
["p1",4,"op","chess_char_4_19_b",2,"uniequip_002_flamtl",2118,1,7,1,21419,5053,804,44,5],
|
||||||
@@ -209,11 +209,11 @@
|
|||||||
["p1",9,"op","chess_char_4_25_b",2,"uniequip_002_cetsyr",1671,1,3,0,0,0,305,0,3],
|
["p1",9,"op","chess_char_4_25_b",2,"uniequip_002_cetsyr",1671,1,3,0,0,0,305,0,3],
|
||||||
["p1",10,"op","chess_char_4_26_b",0,"uniequip_002_bldsk",1522,1,5,0,0,1296,18849,34,3]
|
["p1",10,"op","chess_char_4_26_b",0,"uniequip_002_bldsk",1522,1,5,0,0,1296,18849,34,3]
|
||||||
],
|
],
|
||||||
"enemies": {"enemy_1249_lysdb_2":[5,5,0,9688,107495],"enemy_1430_lrrook":[2,0,2,0,62729],"enemy_9017_achunt":[1,0,0,20116,140374]},
|
"enemies": {"enemy_1249_lysdb_2":[5,5,0,9688,107495],"enemy_1430_lrrook":[2,0,2,0,62729],"enemy_9017_achunt":[1,0,0,20116,140451]},
|
||||||
"hooks": [1,21,6000,385,385,1023,1424,4394,8,10,26,25,0,13111,66,5,8,2,1,11,0,3,1],
|
"hooks": [1,21,6000,385,385,1025,1426,4394,8,10,26,25,0,13111,66,5,8,2,1,11,0,3,1],
|
||||||
"events": {"atk":403,"deploy":13,"die":8,"dmg":1420,"engage":7,"fx":263,"heal":40,"leak":2,"skill":54,"spawn":18,"status":411},
|
"events": {"atk":403,"deploy":13,"die":8,"dmg":1422,"engage":7,"fx":265,"heal":40,"leak":2,"skill":54,"spawn":18,"status":411},
|
||||||
"fx": {"bandage":3,"block":3,"burst":3,"charge":7,"dodge":1,"featherArrow":1,"flame":5,"garrisonGrant":1,"healField":1,"jungleSoul":3,"mote":102,"redistribute":45,"reweave":3,"riposte":1,"rockslide":2,"sandChains":3,"sandChainsCharged":2,"shieldBreak":9,"slash":55,"spGift":5,"thorns":5,"truesilver":3},
|
"fx": {"bandage":3,"block":3,"burst":3,"charge":7,"dodge":1,"featherArrow":1,"flame":5,"garrisonGrant":1,"healField":1,"jungleSoul":3,"mote":102,"redistribute":45,"reweave":3,"riposte":1,"rockslide":2,"sandChains":3,"sandChainsCharged":2,"shieldBreak":9,"slash":55,"spGift":5,"thorns":7,"truesilver":3},
|
||||||
"snaps": "cfcfbf4d 2e36f4c4 d86de811 0291110d a7bef78a 57650c6e 1788104a a346a2f4 ac587ca9 03b1a538 d546b910 cb6e362b 1d445bed 6fb308e1 46e3cb1a 26076bc9 1f093b66 58befce9 abcdba0e 4123d12c"
|
"snaps": "cfcfbf4d 2e36f4c4 d86de811 0291110d 4f29388b e434804a d530cfc9 d89605a6 4a75903e ddfff266 80cd13ba 850aef17 c3b00acb 56dc7d74 bd189bf7 7feda4fd 3278f83b a5ac2ad0 e0909387 8bd04ac0"
|
||||||
},
|
},
|
||||||
"boss-boss_3-pair": {
|
"boss-boss_3-pair": {
|
||||||
"about": "假想敌:管 pair pool 4000000: chess_char_6_03_b chess_char_6_06_b chess_char_6_07_b chess_char_6_01_b chess_char_6_02_b chess_char_6_04_b chess_char_6_05_b chess_char_6_08_b chess_char_6_09_b chess_char_6_11_b token_10017_skadi2_dedant | chess_char_6_15_b chess_char_6_19_b chess_char_5_01_b chess_char_6_17_b chess_char_6_12_b chess_char_6_13_b chess_char_6_14_b chess_char_6_16_b chess_char_6_18_b chess_char_6_20_b",
|
"about": "假想敌:管 pair pool 4000000: chess_char_6_03_b chess_char_6_06_b chess_char_6_07_b chess_char_6_01_b chess_char_6_02_b chess_char_6_04_b chess_char_6_05_b chess_char_6_08_b chess_char_6_09_b chess_char_6_11_b token_10017_skadi2_dedant | chess_char_6_15_b chess_char_6_19_b chess_char_5_01_b chess_char_6_17_b chess_char_6_12_b chess_char_6_13_b chess_char_6_14_b chess_char_6_16_b chess_char_6_18_b chess_char_6_20_b",
|
||||||
@@ -393,15 +393,15 @@
|
|||||||
"killed": 9,
|
"killed": 9,
|
||||||
"total": 14,
|
"total": 14,
|
||||||
"unspawned": 0,
|
"unspawned": 0,
|
||||||
"bossHpLeft": 7601883,
|
"bossHpLeft": 7601606,
|
||||||
"rngDraws": 496,
|
"rngDraws": 496,
|
||||||
"errors": {"count":0,"kinds":[]},
|
"errors": {"count":0,"kinds":[]},
|
||||||
"players": {
|
"players": {
|
||||||
"p1": {"killed":9,"total":14,"perfect":false,"leaks":3,"leaksUncounted":0,"coins":0,"dmg":832066,"bossDmg":272991,"heal":24644,"deaths":21,"layerGains":{}},
|
"p1": {"killed":9,"total":14,"perfect":false,"leaks":3,"leaksUncounted":0,"coins":0,"dmg":832342,"bossDmg":273268,"heal":24644,"deaths":21,"layerGains":{}},
|
||||||
"p2": {"killed":0,"total":0,"perfect":false,"leaks":2,"leaksUncounted":0,"coins":0,"dmg":815098,"bossDmg":525125,"heal":3151,"deaths":24,"layerGains":{}}
|
"p2": {"killed":0,"total":0,"perfect":false,"leaks":2,"leaksUncounted":0,"coins":0,"dmg":815098,"bossDmg":525125,"heal":3151,"deaths":24,"layerGains":{}}
|
||||||
},
|
},
|
||||||
"units": [
|
"units": [
|
||||||
["p1",1,"op","chess_char_5_19_b",2,"uniequip_002_mlynar",0,0,51,3,138264,7838,24,22,1],
|
["p1",1,"op","chess_char_5_19_b",2,"uniequip_002_mlynar",0,0,51,3,138541,7838,24,22,1],
|
||||||
["p1",2,"op","chess_char_4_01_b",2,"uniequip_002_rmixer",0,0,5,0,16815,6179,893,10,1],
|
["p1",2,"op","chess_char_4_01_b",2,"uniequip_002_rmixer",0,0,5,0,16815,6179,893,10,1],
|
||||||
["p1",3,"op","chess_char_5_14_b",1,"none",0,0,62,0,49407,10951,912,3,8],
|
["p1",3,"op","chess_char_5_14_b",1,"none",0,0,62,0,49407,10951,912,3,8],
|
||||||
["p1",4,"op","chess_char_5_17_b",1,"uniequip_002_f12yin",0,0,59,0,4545,12126,187,2,1],
|
["p1",4,"op","chess_char_5_17_b",1,"uniequip_002_f12yin",0,0,59,0,4545,12126,187,2,1],
|
||||||
@@ -424,9 +424,9 @@
|
|||||||
["p2",21,"token","token_10041_cathy_catsld",null,null,100,1,21,0,0,0,0,0,null],
|
["p2",21,"token","token_10041_cathy_catsld",null,null,100,1,21,0,0,0,0,0,null],
|
||||||
["p2",22,"token","token_10041_cathy_catsld",null,null,100,1,22,0,0,0,0,0,null]
|
["p2",22,"token","token_10041_cathy_catsld",null,null,100,1,22,0,0,0,0,0,null]
|
||||||
],
|
],
|
||||||
"enemies": {"enemy_1010_demon":[4,4,0,1913,200612],"enemy_1438_dspred":[10,5,5,22724,648434],"enemy_1521_dslily":[1,0,0,93299,798117]},
|
"enemies": {"enemy_1010_demon":[4,4,0,1913,200612],"enemy_1438_dspred":[10,5,5,22724,648434],"enemy_1521_dslily":[1,0,0,93299,798394]},
|
||||||
"hooks": [1,66,6000,1002,1068,2527,2646,4783,54,61,108,107,10,27478,1110,16,15,5,1,57,0,24,2],
|
"hooks": [1,66,6000,1002,1068,2528,2647,4783,54,61,108,107,10,27478,1110,16,15,5,1,57,0,24,2],
|
||||||
"events": {"atk":1226,"deploy":51,"die":56,"dmg":2639,"engage":17,"fx":653,"heal":160,"leak":5,"skill":215,"spawn":37,"status":755},
|
"events": {"atk":1226,"deploy":51,"die":56,"dmg":2640,"engage":17,"fx":653,"heal":160,"leak":5,"skill":215,"spawn":37,"status":755},
|
||||||
"fx": {
|
"fx": {
|
||||||
"aoe": 21,
|
"aoe": 21,
|
||||||
"appear": 9,
|
"appear": 9,
|
||||||
@@ -464,7 +464,7 @@
|
|||||||
"weightless": 4,
|
"weightless": 4,
|
||||||
"zone": 230
|
"zone": 230
|
||||||
},
|
},
|
||||||
"snaps": "9d889e0e f29df90d 7a4bf6fc 19fe1302 bbe35359 e3aae426 3f978616 3d9f6e1d dcc49f9b e2e26bac eaf0159e 0d0a2271 04949e73 baad20e5 dca9ced6 a4351d0b b4846197 afc80a44 a6e80893 96d194a3"
|
"snaps": "9d889e0e f29df90d 7a4bf6fc 19fe1302 f02b38cf 1043fb86 f6c0e4b0 3f6edb60 1d12afb7 e637500a db80ed0c 3cead573 35c6b311 0b15df1a 28462491 e9ff6747 4e0ef05e fc5ac3ae fb26886b e2eae1b8"
|
||||||
},
|
},
|
||||||
"boss-boss_4-solo": {
|
"boss-boss_4-solo": {
|
||||||
"about": "盐风主教昆图斯 solo pool 4200000: chess_char_4_17_b chess_char_4_18_b chess_char_4_23_b chess_char_4_19_b chess_char_4_22_b chess_char_4_20_b chess_char_4_21_b chess_char_4_24_b chess_char_4_25_b chess_char_4_26_b",
|
"about": "盐风主教昆图斯 solo pool 4200000: chess_char_4_17_b chess_char_4_18_b chess_char_4_23_b chess_char_4_19_b chess_char_4_22_b chess_char_4_20_b chess_char_4_21_b chess_char_4_24_b chess_char_4_25_b chess_char_4_26_b",
|
||||||
@@ -481,12 +481,12 @@
|
|||||||
"killed": 3,
|
"killed": 3,
|
||||||
"total": 7,
|
"total": 7,
|
||||||
"unspawned": 0,
|
"unspawned": 0,
|
||||||
"bossHpLeft": 3784802,
|
"bossHpLeft": 3782696,
|
||||||
"rngDraws": 93,
|
"rngDraws": 93,
|
||||||
"errors": {"count":0,"kinds":[]},
|
"errors": {"count":0,"kinds":[]},
|
||||||
"players": {"p1":{"killed":3,"total":7,"perfect":false,"leaks":4,"leaksUncounted":0,"coins":0,"dmg":684711,"bossDmg":415198,"heal":102513,"deaths":4,"layerGains":{}}},
|
"players": {"p1":{"killed":3,"total":7,"perfect":false,"leaks":4,"leaksUncounted":0,"coins":0,"dmg":686816,"bossDmg":417304,"heal":102513,"deaths":4,"layerGains":{}}},
|
||||||
"units": [
|
"units": [
|
||||||
["p1",1,"op","chess_char_4_17_b",1,"uniequip_002_hsguma",2960.13,1,4,0,24792,17230,20988,31,0],
|
["p1",1,"op","chess_char_4_17_b",1,"uniequip_002_hsguma",2960.13,1,4,0,26897,17230,20988,31,0],
|
||||||
["p1",2,"op","chess_char_4_18_b",1,"uniequip_002_mudrok",5988.52,1,22,1,44133,24266,18046,14,7],
|
["p1",2,"op","chess_char_4_18_b",1,"uniequip_002_mudrok",5988.52,1,22,1,44133,24266,18046,14,7],
|
||||||
["p1",3,"op","chess_char_4_23_b",2,"uniequip_002_gvial2",2811,1,21,2,195258,38908,13125,40,1],
|
["p1",3,"op","chess_char_4_23_b",2,"uniequip_002_gvial2",2811,1,21,2,195258,38908,13125,40,1],
|
||||||
["p1",4,"op","chess_char_4_19_b",2,"uniequip_002_flamtl",3388.8,1,9,0,0,5388,0,0,0],
|
["p1",4,"op","chess_char_4_19_b",2,"uniequip_002_flamtl",3388.8,1,9,0,0,5388,0,0,0],
|
||||||
@@ -499,11 +499,11 @@
|
|||||||
["-","~1","device","trap_1105_accrate",null,null,100,1,1,0,0,0,0,0,null],
|
["-","~1","device","trap_1105_accrate",null,null,100,1,1,0,0,0,0,0,null],
|
||||||
["-","~2","device","trap_1105_accrate",null,null,100,1,2,0,0,0,0,0,null]
|
["-","~2","device","trap_1105_accrate",null,null,100,1,2,0,0,0,0,0,null]
|
||||||
],
|
],
|
||||||
"enemies": {"enemy_1010_demon_2":[2,2,0,6788,107495],"enemy_1438_dspred":[5,1,4,35508,162017],"enemy_1521_dslily":[1,0,0,69173,415198]},
|
"enemies": {"enemy_1010_demon_2":[2,2,0,6788,107495],"enemy_1438_dspred":[5,1,4,35508,162017],"enemy_1521_dslily":[1,0,0,69173,417304]},
|
||||||
"hooks": [1,23,6000,585,585,998,1144,8285,7,11,30,30,0,13584,137,13,8,4,1,7,0,31,0],
|
"hooks": [1,23,6000,585,585,1005,1151,8285,7,11,30,30,0,13584,137,13,8,4,1,7,0,31,0],
|
||||||
"events": {"atk":794,"deploy":13,"die":7,"dmg":1126,"engage":6,"fx":343,"heal":107,"leak":4,"skill":62,"spawn":20,"status":525},
|
"events": {"atk":794,"deploy":13,"die":7,"dmg":1133,"engage":6,"fx":350,"heal":107,"leak":4,"skill":62,"spawn":20,"status":525},
|
||||||
"fx": {"bandage":4,"block":19,"burst":31,"camouflage":1,"featherArrow":5,"garrisonGrant":1,"grow":1,"healField":2,"jungleSoul":1,"mote":68,"redistribute":45,"reweave":3,"rockfall":18,"rockslide":7,"sandChains":5,"shieldBreak":18,"slash":46,"spGift":3,"tentacle":6,"thorns":51,"tide":5,"truesilver":3},
|
"fx": {"bandage":4,"block":19,"burst":31,"camouflage":1,"featherArrow":5,"garrisonGrant":1,"grow":1,"healField":2,"jungleSoul":1,"mote":68,"redistribute":45,"reweave":3,"rockfall":18,"rockslide":7,"sandChains":5,"shieldBreak":18,"slash":46,"spGift":3,"tentacle":6,"thorns":58,"tide":5,"truesilver":3},
|
||||||
"snaps": "501b4dd4 877a4d48 68f61133 0c4f2d25 66d31d7d 2f1febdd 16d86817 be1ddbe8 895b5c6a ce7ab97a 2c2c9cff e0efdfa3 98ac6cb8 133c9069 5d797196 35eb846a 463c1d7b 0485eea7 2025f7bd a77ca075"
|
"snaps": "501b4dd4 877a4d48 68f61133 a14c3141 7de19e3d 43935a2d 5e496d64 5114c159 873c19da e4c0f03d 378dbfbd 9372ab33 7c8921ba 1cba8560 7342781f 4e42938d c1a0ccea e8e4755b 44327e56 1337e35b"
|
||||||
},
|
},
|
||||||
"boss-boss_5-pair": {
|
"boss-boss_5-pair": {
|
||||||
"about": "卢西恩,“猩红血钻” pair pool 1560000: chess_char_6_03_b chess_char_6_06_b chess_char_6_07_b chess_char_6_01_b chess_char_6_02_b chess_char_6_04_b chess_char_6_05_b chess_char_6_08_b chess_char_6_09_b chess_char_6_11_b token_10017_skadi2_dedant token_10030_mlyss_wtrman | chess_char_6_15_b chess_char_6_19_b chess_char_5_01_b chess_char_6_17_b chess_char_6_12_b chess_char_6_13_b chess_char_6_14_b chess_char_6_16_b chess_char_6_18_b chess_char_6_20_b",
|
"about": "卢西恩,“猩红血钻” pair pool 1560000: chess_char_6_03_b chess_char_6_06_b chess_char_6_07_b chess_char_6_01_b chess_char_6_02_b chess_char_6_04_b chess_char_6_05_b chess_char_6_08_b chess_char_6_09_b chess_char_6_11_b token_10017_skadi2_dedant token_10030_mlyss_wtrman | chess_char_6_15_b chess_char_6_19_b chess_char_5_01_b chess_char_6_17_b chess_char_6_12_b chess_char_6_13_b chess_char_6_14_b chess_char_6_16_b chess_char_6_18_b chess_char_6_20_b",
|
||||||
@@ -928,53 +928,53 @@
|
|||||||
"killed": 13,
|
"killed": 13,
|
||||||
"total": 18,
|
"total": 18,
|
||||||
"unspawned": 0,
|
"unspawned": 0,
|
||||||
"bossHpLeft": 12749411,
|
"bossHpLeft": 12750934,
|
||||||
"rngDraws": 469,
|
"rngDraws": 469,
|
||||||
"errors": {"count":0,"kinds":[]},
|
"errors": {"count":0,"kinds":[]},
|
||||||
"players": {
|
"players": {
|
||||||
"p1": {"killed":13,"total":18,"perfect":false,"leaks":2,"leaksUncounted":0,"coins":0,"dmg":1782144,"bossDmg":862264,"heal":34974,"deaths":19,"layerGains":{}},
|
"p1": {"killed":13,"total":18,"perfect":false,"leaks":2,"leaksUncounted":0,"coins":0,"dmg":1787115,"bossDmg":862264,"heal":35986,"deaths":19,"layerGains":{}},
|
||||||
"p2": {"killed":0,"total":0,"perfect":false,"leaks":2,"leaksUncounted":0,"coins":0,"dmg":1063494,"bossDmg":787168,"heal":3526,"deaths":23,"layerGains":{}}
|
"p2": {"killed":0,"total":0,"perfect":false,"leaks":2,"leaksUncounted":0,"coins":0,"dmg":1052836,"bossDmg":786217,"heal":3389,"deaths":23,"layerGains":{}}
|
||||||
},
|
},
|
||||||
"units": [
|
"units": [
|
||||||
["p1",1,"op","chess_char_5_19_b",2,"uniequip_002_mlynar",0,0,73,2,70060,30258,344,15,1],
|
["p1",1,"op","chess_char_5_19_b",2,"uniequip_002_mlynar",0,0,73,2,75031,30258,344,15,1],
|
||||||
["p1",2,"op","chess_char_4_01_b",2,"uniequip_002_rmixer",5411.15,1,78,0,6068,12135,463,20,2],
|
["p1",2,"op","chess_char_4_01_b",2,"uniequip_002_rmixer",5411.15,1,78,0,6068,12135,463,20,2],
|
||||||
["p1",3,"op","chess_char_5_14_b",1,"none",0,0,82,0,47436,18275,3606,26,11],
|
["p1",3,"op","chess_char_5_14_b",1,"none",0,0,82,0,47436,18275,3606,26,11],
|
||||||
["p1",4,"op","chess_char_5_17_b",1,"uniequip_002_f12yin",5476,1,88,0,43232,18483,434,21,3],
|
["p1",4,"op","chess_char_5_17_b",1,"uniequip_002_f12yin",5476,1,88,0,43232,18483,434,21,3],
|
||||||
["p1",5,"op","chess_char_5_15_b",1,"uniequip_002_thorn2",161.56,1,79,2,719512,4898,9898,98,11],
|
["p1",5,"op","chess_char_5_15_b",1,"uniequip_002_thorn2",161.56,1,79,2,719512,4898,9898,98,11],
|
||||||
["p1",6,"op","chess_char_5_20_b",2,"uniequip_002_aglina",2764,1,93,1,69538,10605,41,18,2],
|
["p1",6,"op","chess_char_5_20_b",2,"uniequip_002_aglina",2764,1,94,1,69538,11617,41,18,2],
|
||||||
["p1",7,"op","chess_char_5_21_b",1,"uniequip_002_sntlla",2053.18,1,83,1,288400,7730,9,2,1],
|
["p1",7,"op","chess_char_5_21_b",1,"uniequip_002_sntlla",2053.18,1,83,1,288400,7730,9,2,1],
|
||||||
["p1",8,"op","chess_char_5_22_b",1,"uniequip_002_nymph",1084.8,1,72,1,524208,5369,9,40,13],
|
["p1",8,"op","chess_char_5_22_b",1,"uniequip_002_nymph",1084.8,1,72,1,524208,5369,9,40,13],
|
||||||
["p1",9,"op","chess_char_5_23_b",1,"uniequip_002_reckpr",3220,1,90,0,0,11772,20169,18,2],
|
["p1",9,"op","chess_char_5_23_b",1,"uniequip_002_reckpr",3220,1,91,0,0,11772,21181,19,3],
|
||||||
["p1",10,"op","chess_char_4_02_b",2,"uniequip_002_mostma",0,0,80,1,13692,10170,0,9,1],
|
["p1",10,"op","chess_char_4_02_b",2,"uniequip_002_mostma",0,0,80,1,13692,10170,0,9,1],
|
||||||
["p2",11,"op","chess_char_4_11_b",1,"uniequip_002_cathy",0,0,75,0,0,7525,137,0,2],
|
["p2",11,"op","chess_char_4_11_b",1,"uniequip_002_cathy",0,0,75,0,0,6513,137,0,1],
|
||||||
["p2",12,"op","chess_char_4_04_b",1,"uniequip_002_ines",2149,1,84,2,27393,10756,5,74,5],
|
["p2",12,"op","chess_char_4_04_b",1,"uniequip_002_ines",2149,1,84,2,27393,10756,5,74,5],
|
||||||
["p2",13,"op","chess_char_4_07_b",1,"uniequip_002_bpipe",4170.25,1,92,1,15991,9948,1608,6,3],
|
["p2",13,"op","chess_char_4_07_b",1,"uniequip_002_bpipe",4165.58,1,92,1,15991,9958,1613,6,3],
|
||||||
["p2",14,"op","chess_char_4_16_b",2,"uniequip_002_texas2",1619,1,87,0,78679,12401,119,22,8],
|
["p2",14,"op","chess_char_4_16_b",2,"uniequip_002_texas2",1004.13,1,87,0,78679,13018,121,22,8],
|
||||||
["p2",15,"op","chess_char_4_09_b",1,"uniequip_002_mizuki",0,0,67,0,126046,8396,309,30,3],
|
["p2",15,"op","chess_char_4_09_b",1,"uniequip_002_mizuki",0,0,67,0,126046,8396,309,30,3],
|
||||||
["p2",16,"op","chess_char_4_06_b",1,"uniequip_002_kroos2",0,0,71,1,301353,3122,0,77,1],
|
["p2",16,"op","chess_char_4_06_b",1,"uniequip_002_kroos2",0,0,71,1,301353,3122,0,77,1],
|
||||||
["p2",17,"op","chess_char_4_10_b",1,"uniequip_002_aroma",0,0,20,0,52829,6922,264,53,2],
|
["p2",17,"op","chess_char_4_10_b",1,"uniequip_002_aroma",0,0,20,0,52829,6922,264,53,2],
|
||||||
["p2",18,"op","chess_char_4_12_b",2,"uniequip_002_glady",2232,1,86,0,42669,2582,350,30,3],
|
["p2",18,"op","chess_char_4_12_b",2,"uniequip_002_glady",2232,1,86,0,40736,2632,400,25,3],
|
||||||
["p2",19,"op","chess_char_4_13_b",1,"uniequip_002_gnosis",0,0,63,2,356112,4467,489,68,20],
|
["p2",19,"op","chess_char_4_13_b",1,"uniequip_002_gnosis",0,0,63,2,347386,4272,294,61,18],
|
||||||
["p2",20,"op","chess_char_4_14_b",1,"uniequip_002_lionhd",0,0,64,1,62422,3497,245,25,4],
|
["p2",20,"op","chess_char_4_14_b",1,"uniequip_002_lionhd",0,0,64,1,62422,3497,245,25,4],
|
||||||
["p2",21,"token","token_10041_cathy_catsld",null,null,100,1,21,0,0,0,0,0,null],
|
["p2",21,"token","token_10041_cathy_catsld",null,null,100,1,21,0,0,0,0,0,null],
|
||||||
["p2",22,"token","token_10041_cathy_catsld",null,null,100,1,22,0,0,0,0,0,null]
|
["p2",22,"token","token_10041_cathy_catsld",null,null,100,1,22,0,0,0,0,0,null]
|
||||||
],
|
],
|
||||||
"enemies": {
|
"enemies": {
|
||||||
"enemy_10027_vtsk": [6,1,4,138886,892170],
|
"enemy_10027_vtsk": [6,1,4,137679,887524],
|
||||||
"enemy_1005_yokai": [4,4,0,0,1600],
|
"enemy_1005_yokai": [4,4,0,0,1600],
|
||||||
"enemy_1229_darmy_2": [8,8,0,3486,294231],
|
"enemy_1229_darmy_2": [8,8,0,3486,294231],
|
||||||
"enemy_9013_acstmk_2": [1,0,0,45577,1650589],
|
"enemy_9013_acstmk_2": [1,0,0,45637,1649066],
|
||||||
"enemy_9014_acstma": [5,4,0,2385,30898],
|
"enemy_9014_acstma": [5,4,0,2385,29767],
|
||||||
"enemy_9015_acstmb": [2,1,0,8977,5739],
|
"enemy_9015_acstmb": [3,2,0,10607,5347],
|
||||||
"enemy_9016_acstmr": [8,7,0,0,41]
|
"enemy_9016_acstmr": [8,7,0,0,41]
|
||||||
},
|
},
|
||||||
"hooks": [1,91,6000,753,753,2602,2727,3433,67,73,98,95,6,20855,903,13,34,4,1,71,0,4,11],
|
"hooks": [1,92,6000,743,743,2583,2689,3370,68,74,96,92,6,20650,847,13,35,4,1,71,0,4,11],
|
||||||
"events": {"atk":855,"deploy":57,"die":69,"dmg":2724,"engage":17,"fx":566,"heal":95,"leak":4,"skill":193,"spawn":56,"status":571},
|
"events": {"atk":846,"deploy":57,"die":70,"dmg":2686,"engage":17,"fx":564,"heal":96,"leak":4,"skill":188,"spawn":57,"status":548},
|
||||||
"fx": {
|
"fx": {
|
||||||
"aoe": 37,
|
"aoe": 37,
|
||||||
"appear": 8,
|
"appear": 8,
|
||||||
"beam": 48,
|
"beam": 48,
|
||||||
"blink": 13,
|
"blink": 14,
|
||||||
"burst": 4,
|
"burst": 4,
|
||||||
"charge": 9,
|
"charge": 9,
|
||||||
"counter": 6,
|
"counter": 6,
|
||||||
@@ -982,12 +982,12 @@
|
|||||||
"dilemma": 3,
|
"dilemma": 3,
|
||||||
"disappear": 8,
|
"disappear": 8,
|
||||||
"dodge": 11,
|
"dodge": 11,
|
||||||
"explode": 6,
|
"explode": 8,
|
||||||
"explosion": 4,
|
"explosion": 4,
|
||||||
"frostNova": 20,
|
"frostNova": 18,
|
||||||
"iceSpike": 2,
|
"iceSpike": 2,
|
||||||
"overclock": 2,
|
"overclock": 1,
|
||||||
"phase": 3,
|
"phase": 1,
|
||||||
"pull": 2,
|
"pull": 2,
|
||||||
"quadShot": 1,
|
"quadShot": 1,
|
||||||
"revive": 2,
|
"revive": 2,
|
||||||
@@ -1010,7 +1010,7 @@
|
|||||||
"weightless": 2,
|
"weightless": 2,
|
||||||
"zone": 184
|
"zone": 184
|
||||||
},
|
},
|
||||||
"snaps": "1b4d1c90 5e89ae3a 18b0277b 718ea4d9 fb14ee3f 2c5d7b5a 90a9e918 535d6535 ff46bb00 d6a87ebe a53bce20 63043c57 e1656d7b 7fb55cb8 8d7c7ef0 ced6863b 72e4c7b9 574e2998 fcaf465c 0ac59845"
|
"snaps": "1b4d1c90 77ce88df 3b79b01e b459b9fc f1675c08 e80328a4 a83f0016 2753b454 294c4add eb8695c0 9b1bc8a1 4832e0f2 4f466939 23ce7f0c 7f59ea9a f124af52 4fa7d310 e3bd0452 461dc8e9 2f6a9acd"
|
||||||
},
|
},
|
||||||
"hidden-boss_8-solo": {
|
"hidden-boss_8-solo": {
|
||||||
"about": "假想敌:胄 solo pool 7200000: chess_char_4_17_b chess_char_4_18_b chess_char_4_23_b chess_char_4_19_b chess_char_4_22_b chess_char_4_20_b chess_char_4_21_b chess_char_4_24_b chess_char_4_25_b chess_char_4_26_b",
|
"about": "假想敌:胄 solo pool 7200000: chess_char_4_17_b chess_char_4_18_b chess_char_4_23_b chess_char_4_19_b chess_char_4_22_b chess_char_4_20_b chess_char_4_21_b chess_char_4_24_b chess_char_4_25_b chess_char_4_26_b",
|
||||||
@@ -1027,12 +1027,12 @@
|
|||||||
"killed": 6,
|
"killed": 6,
|
||||||
"total": 16,
|
"total": 16,
|
||||||
"unspawned": 0,
|
"unspawned": 0,
|
||||||
"bossHpLeft": 6810440,
|
"bossHpLeft": 6810274,
|
||||||
"rngDraws": 230,
|
"rngDraws": 230,
|
||||||
"errors": {"count":0,"kinds":[]},
|
"errors": {"count":0,"kinds":[]},
|
||||||
"players": {"p1":{"killed":6,"total":16,"perfect":false,"leaks":10,"leaksUncounted":0,"coins":0,"dmg":430027,"bossDmg":389560,"heal":30839,"deaths":21,"layerGains":{}}},
|
"players": {"p1":{"killed":6,"total":16,"perfect":false,"leaks":10,"leaksUncounted":0,"coins":0,"dmg":430335,"bossDmg":389726,"heal":30839,"deaths":21,"layerGains":{}}},
|
||||||
"units": [
|
"units": [
|
||||||
["p1",1,"op","chess_char_4_17_b",1,"uniequip_002_hsguma",0,0,6,1,366,8626,0,14,0],
|
["p1",1,"op","chess_char_4_17_b",1,"uniequip_002_hsguma",0,0,6,1,673,8626,0,14,0],
|
||||||
["p1",2,"op","chess_char_4_18_b",1,"uniequip_002_mudrok",0,0,36,3,17870,18617,6409,9,6],
|
["p1",2,"op","chess_char_4_18_b",1,"uniequip_002_mudrok",0,0,36,3,17870,18617,6409,9,6],
|
||||||
["p1",3,"op","chess_char_4_23_b",2,"uniequip_002_gvial2",0,0,7,0,0,2811,0,0,0],
|
["p1",3,"op","chess_char_4_23_b",2,"uniequip_002_gvial2",0,0,7,0,0,2811,0,0,0],
|
||||||
["p1",4,"op","chess_char_4_19_b",2,"uniequip_002_flamtl",0,0,53,0,0,12061,0,0,0],
|
["p1",4,"op","chess_char_4_19_b",2,"uniequip_002_flamtl",0,0,53,0,0,12061,0,0,0],
|
||||||
@@ -1048,19 +1048,19 @@
|
|||||||
["-","~4","device","trap_1105_accrate",null,null,100,1,4,0,0,0,0,0,null]
|
["-","~4","device","trap_1105_accrate",null,null,100,1,4,0,0,0,0,0,null]
|
||||||
],
|
],
|
||||||
"enemies": {
|
"enemies": {
|
||||||
"enemy_10027_vtsk": [3,0,3,31231,18110],
|
"enemy_10027_vtsk": [3,0,3,31231,18252],
|
||||||
"enemy_1005_yokai": [4,2,2,0,800],
|
"enemy_1005_yokai": [4,2,2,0,800],
|
||||||
"enemy_1197_sfshu": [3,2,1,80,19661],
|
"enemy_1197_sfshu": [3,2,1,80,19661],
|
||||||
"enemy_1198_msfshu": [6,2,4,0,9],
|
"enemy_1198_msfshu": [6,2,4,0,9],
|
||||||
"enemy_9013_acstmk_2": [1,0,0,38158,389560],
|
"enemy_9013_acstmk_2": [1,0,0,38158,389726],
|
||||||
"enemy_9014_acstma": [3,2,0,0,1865],
|
"enemy_9014_acstma": [3,2,0,0,1865],
|
||||||
"enemy_9015_acstmb": [4,3,0,4799,0],
|
"enemy_9015_acstmb": [4,3,0,4799,0],
|
||||||
"enemy_9016_acstmr": [6,6,0,0,22]
|
"enemy_9016_acstmr": [6,6,0,0,22]
|
||||||
},
|
},
|
||||||
"hooks": [1,56,6000,313,313,552,552,869,38,48,16,16,0,5467,46,4,30,10,1,32,0,0,0],
|
"hooks": [1,56,6000,313,313,565,565,869,38,48,16,16,0,5467,46,4,30,10,1,32,0,0,0],
|
||||||
"events": {"atk":365,"deploy":22,"die":38,"dmg":545,"engage":5,"fx":181,"heal":79,"leak":10,"skill":33,"spawn":44,"status":141},
|
"events": {"atk":365,"deploy":22,"die":38,"dmg":558,"engage":5,"fx":194,"heal":79,"leak":10,"skill":33,"spawn":44,"status":141},
|
||||||
"fx": {"bandage":1,"beam":33,"blink":11,"block":8,"charge":6,"explode":9,"garrisonGrant":1,"healField":4,"mote":4,"redistribute":5,"reweave":1,"rockslide":6,"sandChains":1,"shell":6,"shieldBreak":7,"slash":57,"spGift":5,"summon":6,"telegraph":3,"thorns":4,"truesilver":3},
|
"fx": {"bandage":1,"beam":33,"blink":11,"block":8,"charge":6,"explode":9,"garrisonGrant":1,"healField":4,"mote":4,"redistribute":5,"reweave":1,"rockslide":6,"sandChains":1,"shell":6,"shieldBreak":7,"slash":57,"spGift":5,"summon":6,"telegraph":3,"thorns":17,"truesilver":3},
|
||||||
"snaps": "c4c16f4a ddad744b 0ec6d0a5 6cb40df0 b236a93e cb798820 ca99623b cba70a39 80d89436 d2c74f1b fc6586fc acf0d6cf 27a8ebae 816ae142 dae36003 48c83f46 040cf0ab f675868b bf456a17 84add322"
|
"snaps": "c4c16f4a e0f36869 c8e410ce 7b59826b 31eb0f33 df2f84b5 c35f8fe9 05bd5883 08426b21 63c36146 97833e0e e6aa0e4d b1857582 0aaabec8 0bbeefa0 3205278b 4f41f8a5 c2d70b82 b6c40c16 ebd2bc44"
|
||||||
},
|
},
|
||||||
"hidden-boss_9-pair": {
|
"hidden-boss_9-pair": {
|
||||||
"about": "假想敌:铳 pair pool 5600000: chess_char_6_03_b chess_char_6_06_b chess_char_6_07_b chess_char_6_01_b chess_char_6_02_b chess_char_6_04_b chess_char_6_05_b chess_char_6_08_b chess_char_6_09_b chess_char_6_11_b token_10017_skadi2_dedant token_10030_mlyss_wtrman | chess_char_6_15_b chess_char_6_19_b chess_char_5_01_b chess_char_6_17_b chess_char_6_12_b chess_char_6_13_b chess_char_6_14_b chess_char_6_16_b chess_char_6_18_b chess_char_6_20_b",
|
"about": "假想敌:铳 pair pool 5600000: chess_char_6_03_b chess_char_6_06_b chess_char_6_07_b chess_char_6_01_b chess_char_6_02_b chess_char_6_04_b chess_char_6_05_b chess_char_6_08_b chess_char_6_09_b chess_char_6_11_b token_10017_skadi2_dedant token_10030_mlyss_wtrman | chess_char_6_15_b chess_char_6_19_b chess_char_5_01_b chess_char_6_17_b chess_char_6_12_b chess_char_6_13_b chess_char_6_14_b chess_char_6_16_b chess_char_6_18_b chess_char_6_20_b",
|
||||||
|
|||||||
@@ -16,7 +16,7 @@
|
|||||||
"combat": "client",
|
"combat": "client",
|
||||||
"boost": null,
|
"boost": null,
|
||||||
"setup": {"stageId":"act1autochess_m01","bossId":"boss_5","hiddenBossId":null,"factions":["TIMES","DOT","INVISIBLE"]},
|
"setup": {"stageId":"act1autochess_m01","bossId":"boss_5","hiddenBossId":null,"factions":["TIMES","DOT","INVISIBLE"]},
|
||||||
"end": {"victory":true,"roundsPassed":9,"hiddenReached":false,"hiddenCleared":false,"reason":"victory","teamLp":21,"bossPoolLeft":0,"virtualMs":68100},
|
"end": {"victory":true,"roundsPassed":9,"hiddenReached":false,"hiddenCleared":false,"reason":"victory","teamLp":25,"bossPoolLeft":0,"virtualMs":68100},
|
||||||
"rng": {"setup":16,"shop":142,"waves":0,"draft":0,"bots":5205,"meta":0},
|
"rng": {"setup":16,"shop":142,"waves":0,"draft":0,"bots":5205,"meta":0},
|
||||||
"errors": {"engine":0,"logged":0,"sim":0,"dispatcher":0},
|
"errors": {"engine":0,"logged":0,"sim":0,"dispatcher":0},
|
||||||
"rounds": [
|
"rounds": [
|
||||||
@@ -35,12 +35,12 @@
|
|||||||
"victory": true,
|
"victory": true,
|
||||||
"roundsPassed": 9,
|
"roundsPassed": 9,
|
||||||
"eliminatedRound": null,
|
"eliminatedRound": null,
|
||||||
"lp": 21,
|
"lp": 25,
|
||||||
"bandId": "band_ermengard",
|
"bandId": "band_ermengard",
|
||||||
"title": {"id":"comment_1","name":"卫戍之星","picId":"comment_icon_1","text":"对敌方领袖造成伤害最高(仅胜利时)"},
|
"title": {"id":"comment_1","name":"卫戍之星","picId":"comment_icon_1","text":"对敌方领袖造成伤害最高(仅胜利时)"},
|
||||||
"trophies": 0,
|
"trophies": 0,
|
||||||
"reward": 113,
|
"reward": 113,
|
||||||
"stats": {"activatedLayers":78,"bossDamage":200000,"dmgDealt":841708,"gold":72,"itemsEquipped":10,"kills":175,"leaks":0,"lpLost":0,"merges":2,"perfectRounds":8,"refreshes":14},
|
"stats": {"activatedLayers":78,"bossDamage":200000,"dmgDealt":831708,"gold":72,"itemsEquipped":10,"kills":174,"leaks":0,"lpLost":0,"merges":2,"perfectRounds":8,"refreshes":14},
|
||||||
"lineup": ["4_14_a@12,7","2_08_a@12,8[4_05_e_a+2_04_e_b]","2_14_a@11,8","3_10_a@10,3","2_17_a@10,4[1_01_e_b+4_02_e_a]","4_01_b@10,7","1_12_b@10,8[3_05_e_a+5_02_e_a]","5_02_a@9,8[4_08_e_a]"],
|
"lineup": ["4_14_a@12,7","2_08_a@12,8[4_05_e_a+2_04_e_b]","2_14_a@11,8","3_10_a@10,3","2_17_a@10,4[1_01_e_b+4_02_e_a]","4_01_b@10,7","1_12_b@10,8[3_05_e_a+5_02_e_a]","5_02_a@9,8[4_08_e_a]"],
|
||||||
"bonds": ["deputShip 0/16","emptyShip 1/0","indomShip 0/7","preciShip 1/7","sargonShip 1/28","steadShip 2/38","swiftShip 1/5"]
|
"bonds": ["deputShip 0/16","emptyShip 1/0","indomShip 0/7","preciShip 1/7","sargonShip 1/28","steadShip 2/38","swiftShip 1/5"]
|
||||||
}
|
}
|
||||||
@@ -56,7 +56,7 @@
|
|||||||
"combat": "client",
|
"combat": "client",
|
||||||
"boost": null,
|
"boost": null,
|
||||||
"setup": {"stageId":"act1autochess_m01","bossId":"boss_5","hiddenBossId":null,"factions":["ELEMENT","DOT","REFLECTION"]},
|
"setup": {"stageId":"act1autochess_m01","bossId":"boss_5","hiddenBossId":null,"factions":["ELEMENT","DOT","REFLECTION"]},
|
||||||
"end": {"victory":false,"roundsPassed":8,"hiddenReached":false,"hiddenCleared":false,"reason":"defeat","teamLp":0,"bossPoolLeft":124751,"virtualMs":68100},
|
"end": {"victory":false,"roundsPassed":8,"hiddenReached":false,"hiddenCleared":false,"reason":"defeat","teamLp":0,"bossPoolLeft":124331,"virtualMs":68100},
|
||||||
"rng": {"setup":16,"shop":123,"waves":0,"draft":0,"bots":5205,"meta":28},
|
"rng": {"setup":16,"shop":123,"waves":0,"draft":0,"bots":5205,"meta":28},
|
||||||
"errors": {"engine":0,"logged":0,"sim":0,"dispatcher":0},
|
"errors": {"engine":0,"logged":0,"sim":0,"dispatcher":0},
|
||||||
"rounds": [
|
"rounds": [
|
||||||
@@ -83,7 +83,7 @@
|
|||||||
"title": {"id":"comment_2","name":"不朽盟约","picId":"comment_icon_2","text":"激活的盟约层数总和最高"},
|
"title": {"id":"comment_2","name":"不朽盟约","picId":"comment_icon_2","text":"激活的盟约层数总和最高"},
|
||||||
"trophies": 0,
|
"trophies": 0,
|
||||||
"reward": 100,
|
"reward": 100,
|
||||||
"stats": {"activatedLayers":182,"bossDamage":75249,"dmgDealt":642303,"gold":68,"itemsEquipped":11,"kills":140,"leaks":6,"lpLost":6,"merges":3,"perfectRounds":5,"refreshes":11},
|
"stats": {"activatedLayers":182,"bossDamage":75669,"dmgDealt":642724,"gold":68,"itemsEquipped":11,"kills":140,"leaks":6,"lpLost":6,"merges":3,"perfectRounds":5,"refreshes":11},
|
||||||
"lineup": ["3_20_a@12,3[3_11_e_b+1_05_e_a]","1_02_b@12,8[3_10_e_b+4_10_e_a]","1_06_a@11,3[5_02_e_a+1_05_e_b]","3_08_b@11,8","4_14_a@10,3","3_16_a@10,4","5_22_a@9,8","2_05_a@9,9"],
|
"lineup": ["3_20_a@12,3[3_11_e_b+1_05_e_a]","1_02_b@12,8[3_10_e_b+4_10_e_a]","1_06_a@11,3[5_02_e_a+1_05_e_b]","3_08_b@11,8","4_14_a@10,3","3_16_a@10,4","5_22_a@9,8","2_05_a@9,9"],
|
||||||
"bonds": ["deputShip 1/22","emptyShip 0/12","indomShip 0/2","kjeragShip 1/34","steadShip 1/21","swiftShip 1/21","victoriaShip 1/84"]
|
"bonds": ["deputShip 1/22","emptyShip 0/12","indomShip 0/2","kjeragShip 1/34","steadShip 1/21","swiftShip 1/21","victoriaShip 1/84"]
|
||||||
}
|
}
|
||||||
@@ -1134,7 +1134,7 @@
|
|||||||
"title": {"id":"comment_4","name":"精英云集","picId":"comment_icon_4","text":"晋升精锐次数最多"},
|
"title": {"id":"comment_4","name":"精英云集","picId":"comment_icon_4","text":"晋升精锐次数最多"},
|
||||||
"trophies": 2,
|
"trophies": 2,
|
||||||
"reward": 255,
|
"reward": 255,
|
||||||
"stats": {"activatedLayers":0,"bossDamage":0,"dmgDealt":3052677,"gold":114,"itemsEquipped":8,"kills":110,"leaks":99,"lpLost":53,"merges":5,"perfectRounds":5,"refreshes":9},
|
"stats": {"activatedLayers":0,"bossDamage":0,"dmgDealt":3051941,"gold":114,"itemsEquipped":8,"kills":110,"leaks":99,"lpLost":53,"merges":5,"perfectRounds":5,"refreshes":9},
|
||||||
"lineup": [],
|
"lineup": [],
|
||||||
"bonds": ["arcaneShip 0/8","indomShip 0/4","kazimierzShip 0/88","kjeragShip 0/5","preciShip 0/87","raidShip 0/24","swiftShip 0/56"]
|
"bonds": ["arcaneShip 0/8","indomShip 0/4","kazimierzShip 0/88","kjeragShip 0/5","preciShip 0/87","raidShip 0/24","swiftShip 0/56"]
|
||||||
},
|
},
|
||||||
@@ -1162,7 +1162,7 @@
|
|||||||
"title": {"id":"comment_5","name":"万事俱备","picId":"comment_icon_5","text":"装备配发数量最多"},
|
"title": {"id":"comment_5","name":"万事俱备","picId":"comment_icon_5","text":"装备配发数量最多"},
|
||||||
"trophies": 2,
|
"trophies": 2,
|
||||||
"reward": 213,
|
"reward": 213,
|
||||||
"stats": {"activatedLayers":0,"bossDamage":0,"dmgDealt":2969116,"gold":100,"itemsEquipped":10,"kills":147,"leaks":37,"lpLost":28,"merges":3,"perfectRounds":6,"refreshes":9},
|
"stats": {"activatedLayers":0,"bossDamage":0,"dmgDealt":3018022,"gold":100,"itemsEquipped":10,"kills":148,"leaks":37,"lpLost":28,"merges":3,"perfectRounds":6,"refreshes":9},
|
||||||
"lineup": [],
|
"lineup": [],
|
||||||
"bonds": ["deputShip 0/24","egirShip 0/6","kazimierzShip 0/2","kjeragShip 0/14","lateranoShip 0/2","preciShip 0/6","raidShip 0/6","siracusaShip 0/2","skillfulShip 0/16","soloShip 0/14","steadShip 0/56","swiftShip 0/78","victoriaShip 0/35","yanShip 0/35"]
|
"bonds": ["deputShip 0/24","egirShip 0/6","kazimierzShip 0/2","kjeragShip 0/14","lateranoShip 0/2","preciShip 0/6","raidShip 0/6","siracusaShip 0/2","skillfulShip 0/16","soloShip 0/14","steadShip 0/56","swiftShip 0/78","victoriaShip 0/35","yanShip 0/35"]
|
||||||
},
|
},
|
||||||
@@ -1468,7 +1468,7 @@
|
|||||||
"title": {"id":"comment_2","name":"不朽盟约","picId":"comment_icon_2","text":"激活的盟约层数总和最高"},
|
"title": {"id":"comment_2","name":"不朽盟约","picId":"comment_icon_2","text":"激活的盟约层数总和最高"},
|
||||||
"trophies": 8,
|
"trophies": 8,
|
||||||
"reward": 425,
|
"reward": 425,
|
||||||
"stats": {"activatedLayers":2713,"bossDamage":1676605,"dmgDealt":10050362,"gold":153,"itemsEquipped":19,"kills":283,"leaks":6,"lpLost":0,"merges":4,"perfectRounds":12,"refreshes":33},
|
"stats": {"activatedLayers":2713,"bossDamage":1672050,"dmgDealt":10044373,"gold":153,"itemsEquipped":19,"kills":283,"leaks":6,"lpLost":0,"merges":4,"perfectRounds":12,"refreshes":33},
|
||||||
"lineup": ["2_18_b@11,5[2_01_e_a+3_03_e_a]","3_13_b@11,8","4_09_a@10,3","3_05_a@10,8[1_01_e_b+4_05_e_b]","3_09_a@9,6","6_16_a@9,7[3_11_e_a+1_02_e_b]","4_20_a@9,8","3_12_a@9,9[4_03_e_a]"],
|
"lineup": ["2_18_b@11,5[2_01_e_a+3_03_e_a]","3_13_b@11,8","4_09_a@10,3","3_05_a@10,8[1_01_e_b+4_05_e_b]","3_09_a@9,6","6_16_a@9,7[3_11_e_a+1_02_e_b]","4_20_a@9,8","3_12_a@9,9[4_03_e_a]"],
|
||||||
"bonds": ["arcaneShip 1/387","deputShip 0/304","egirShip 1/353","emptyShip 0/300","indomShip 0/300","investShip 0/300","kazimierzShip 1/356","kjeragShip 0/302","lateranoShip 0/300","maniShip 0/300","miraShip 0/300","preciShip 0/318","raidShip 1/330","sargonShip 0/300","siracusaShip 0/300","skillfulShip 1/340","soloShip 1/304","steadShip 1/343","suntShip 1/300","swiftShip 0/302","victoriaShip 0/300","visiShip 0/300","yanShip 0/300"]
|
"bonds": ["arcaneShip 1/387","deputShip 0/304","egirShip 1/353","emptyShip 0/300","indomShip 0/300","investShip 0/300","kazimierzShip 1/356","kjeragShip 0/302","lateranoShip 0/300","maniShip 0/300","miraShip 0/300","preciShip 0/318","raidShip 1/330","sargonShip 0/300","siracusaShip 0/300","skillfulShip 1/340","soloShip 1/304","steadShip 1/343","suntShip 1/300","swiftShip 0/302","victoriaShip 0/300","visiShip 0/300","yanShip 0/300"]
|
||||||
},
|
},
|
||||||
@@ -1482,7 +1482,7 @@
|
|||||||
"title": {"id":"comment_1","name":"卫戍之星","picId":"comment_icon_1","text":"对敌方领袖造成伤害最高(仅胜利时)"},
|
"title": {"id":"comment_1","name":"卫戍之星","picId":"comment_icon_1","text":"对敌方领袖造成伤害最高(仅胜利时)"},
|
||||||
"trophies": 8,
|
"trophies": 8,
|
||||||
"reward": 425,
|
"reward": 425,
|
||||||
"stats": {"activatedLayers":2334,"bossDamage":12218936,"dmgDealt":34332028,"gold":157,"itemsEquipped":29,"kills":286,"leaks":3,"lpLost":0,"merges":4,"perfectRounds":11,"refreshes":30},
|
"stats": {"activatedLayers":2334,"bossDamage":12223451,"dmgDealt":34090744,"gold":157,"itemsEquipped":29,"kills":286,"leaks":3,"lpLost":0,"merges":4,"perfectRounds":11,"refreshes":30},
|
||||||
"lineup": ["3_16_a@12,8[3_09_e_b+4_07_e_a]","2_10_a@11,5[3_11_e_a+2_03_e_b]","6_05_a@11,8[3_05_e_b+3_10_e_b]","6_08_a@10,3[3_01_e_b+1_01_e_b]","5_11_a@10,4[4_12_e_a+5_09_e_a]","6_14_a@9,7[4_09_e_a+4_04_e_b]","1_06_b@9,8[1_05_e_b+2_01_e_b]","1_17_b@9,9[2_03_e_b+2_03_e_a]"],
|
"lineup": ["3_16_a@12,8[3_09_e_b+4_07_e_a]","2_10_a@11,5[3_11_e_a+2_03_e_b]","6_05_a@11,8[3_05_e_b+3_10_e_b]","6_08_a@10,3[3_01_e_b+1_01_e_b]","5_11_a@10,4[4_12_e_a+5_09_e_a]","6_14_a@9,7[4_09_e_a+4_04_e_b]","1_06_b@9,8[1_05_e_b+2_01_e_b]","1_17_b@9,9[2_03_e_b+2_03_e_a]"],
|
||||||
"bonds": ["arcaneShip 1/330","deputShip 1/326","egirShip 0/300","emptyShip 0/300","indomShip 0/326","investShip 0/300","kazimierzShip 0/305","kjeragShip 0/300","lateranoShip 0/300","maniShip 0/300","miraShip 0/300","preciShip 2/366","raidShip 0/300","sargonShip 0/300","siracusaShip 0/300","skillfulShip 0/300","soloShip 1/316","steadShip 1/340","suntShip 1/310","swiftShip 0/300","victoriaShip 1/346","visiShip 0/300","yanShip 0/305"]
|
"bonds": ["arcaneShip 1/330","deputShip 1/326","egirShip 0/300","emptyShip 0/300","indomShip 0/326","investShip 0/300","kazimierzShip 0/305","kjeragShip 0/300","lateranoShip 0/300","maniShip 0/300","miraShip 0/300","preciShip 2/366","raidShip 0/300","sargonShip 0/300","siracusaShip 0/300","skillfulShip 0/300","soloShip 1/316","steadShip 1/340","suntShip 1/310","swiftShip 0/300","victoriaShip 1/346","visiShip 0/300","yanShip 0/305"]
|
||||||
}
|
}
|
||||||
|
|||||||
+79
-79
@@ -78,50 +78,50 @@
|
|||||||
"time": 110,
|
"time": 110,
|
||||||
"ticks": 3300,
|
"ticks": 3300,
|
||||||
"reason": "timeout",
|
"reason": "timeout",
|
||||||
"killed": 28,
|
"killed": 29,
|
||||||
"total": 44,
|
"total": 44,
|
||||||
"unspawned": 0,
|
"unspawned": 0,
|
||||||
"bossHpLeft": null,
|
"bossHpLeft": null,
|
||||||
"rngDraws": 79,
|
"rngDraws": 81,
|
||||||
"errors": {"count":0,"kinds":[]},
|
"errors": {"count":0,"kinds":[]},
|
||||||
"players": {"p1":{"killed":28,"total":44,"perfect":false,"leaks":16,"leaksUncounted":0,"coins":8,"dmg":224475,"bossDmg":0,"heal":1929,"deaths":15,"layerGains":{}}},
|
"players": {"p1":{"killed":29,"total":44,"perfect":false,"leaks":15,"leaksUncounted":0,"coins":8,"dmg":231938,"bossDmg":0,"heal":2136,"deaths":15,"layerGains":{}}},
|
||||||
"units": [
|
"units": [
|
||||||
["p1",1,"op","chess_char_1_02_b",1,"uniequip_002_yak",0,0,3,2,7577,4874,0,22,1],
|
["p1",1,"op","chess_char_1_02_b",1,"uniequip_002_yak",0,0,3,2,7577,4874,0,22,1],
|
||||||
["p1",2,"op","chess_char_1_20_a",1,null,2857.4,1,1,0,0,0,0,0,0],
|
["p1",2,"op","chess_char_1_20_a",1,null,2857.4,1,1,0,0,0,0,0,0],
|
||||||
["p1",3,"op","chess_char_1_04_b",1,"uniequip_002_udflow",1414.45,1,4,1,6366,2361,0,8,1],
|
["p1",3,"op","chess_char_1_04_b",1,"uniequip_002_udflow",2542.65,1,4,1,6366,1233,0,8,1],
|
||||||
["p1",4,"op","chess_char_1_08_b",1,"uniequip_002_texas",0,0,7,0,6483,3473,0,2,2],
|
["p1",4,"op","chess_char_1_08_b",1,"uniequip_002_texas",0,0,7,0,11371,3473,0,2,3],
|
||||||
["p1",5,"op","chess_char_1_18_a",1,null,0,0,61,2,3473,6928,350,7,2],
|
["p1",5,"op","chess_char_1_18_a",1,null,0,0,61,2,3473,6928,350,7,2],
|
||||||
["p1",6,"op","chess_char_1_19_a",1,null,0,0,57,0,7018,3853,0,10,1],
|
["p1",6,"op","chess_char_1_19_a",1,null,0,0,57,0,7018,3853,0,10,1],
|
||||||
["p1",7,"op","chess_char_1_17_a",1,null,0,0,5,0,0,1481,0,0,0],
|
["p1",7,"op","chess_char_1_17_a",1,null,0,0,5,0,0,1481,0,0,0],
|
||||||
["p1",8,"op","chess_char_1_01_b",1,"uniequip_002_inside",0,0,8,4,51848,2235,0,55,3],
|
["p1",8,"op","chess_char_1_01_b",1,"uniequip_002_inside",0,0,8,4,52919,2442,0,56,3],
|
||||||
["p1",9,"op","chess_char_1_03_b",1,"uniequip_002_leizi",770.4,1,62,4,30306,2846,0,14,1],
|
["p1",9,"op","chess_char_1_03_b",1,"uniequip_002_leizi",770.4,1,62,4,31013,2846,0,14,1],
|
||||||
["p1",10,"op","chess_char_1_06_b",1,"uniequip_002_vendla",0,0,60,5,22230,4837,1579,25,2],
|
["p1",10,"op","chess_char_1_06_b",1,"uniequip_002_vendla",0,0,60,5,22126,4837,1786,25,2],
|
||||||
["p1",11,"op","chess_char_1_07_b",0,"uniequip_002_prove",0,0,59,5,36636,5955,0,25,0],
|
["p1",11,"op","chess_char_1_07_b",0,"uniequip_002_prove",0,0,59,5,36636,5955,0,25,0],
|
||||||
["p1",12,"op","chess_char_1_09_b",1,"uniequip_002_caper",0,0,2,5,52537,2880,0,41,2]
|
["p1",12,"op","chess_char_1_09_b",1,"uniequip_002_caper",0,0,2,6,53439,2880,0,42,2]
|
||||||
],
|
],
|
||||||
"enemies": {
|
"enemies": {
|
||||||
"enemy_1000_gopro_2": [1,1,0,0,2938],
|
"enemy_1000_gopro_2": [1,1,0,0,2938],
|
||||||
"enemy_10065_ftzlc": [1,1,0,0,6566],
|
"enemy_10065_ftzlc": [1,1,0,0,6566],
|
||||||
"enemy_10112_ymgds": [1,1,0,0,8640],
|
"enemy_10112_ymgds": [1,1,0,0,8640],
|
||||||
"enemy_1019_jshoot": [9,3,5,13597,11049],
|
"enemy_1019_jshoot": [9,3,5,13818,11049],
|
||||||
"enemy_1040_bombd": [1,1,0,0,6912],
|
"enemy_1040_bombd": [1,1,0,0,6912],
|
||||||
"enemy_1043_zomsbr": [18,16,2,262,82375],
|
"enemy_1043_zomsbr": [18,17,1,262,83175],
|
||||||
"enemy_1116_liprr": [1,1,0,0,9504],
|
"enemy_1116_liprr": [1,1,0,0,9504],
|
||||||
"enemy_1168_dumage_2": [1,1,0,2185,11232],
|
"enemy_1168_dumage_2": [1,1,0,2185,11232],
|
||||||
"enemy_1199_sfjin": [1,1,0,0,11232],
|
"enemy_1199_sfjin": [1,1,0,0,11232],
|
||||||
"enemy_1200_msfjin": [1,0,1,0,13],
|
"enemy_1200_msfjin": [1,0,1,0,13],
|
||||||
"enemy_1234_dsubrl": [1,0,1,4676,11087],
|
"enemy_1234_dsubrl": [1,0,1,4676,11387],
|
||||||
"enemy_1288_duskls_2": [1,0,1,0,10368],
|
"enemy_1288_duskls_2": [1,0,1,0,10368],
|
||||||
"enemy_1299_ymkilr": [3,1,2,3672,14688],
|
"enemy_1299_ymkilr": [3,1,2,3672,14688],
|
||||||
"enemy_1381_winman_2": [1,1,0,0,13478],
|
"enemy_1381_winman_2": [1,1,0,0,13478],
|
||||||
"enemy_1501_demonk": [1,0,0,8061,12259],
|
"enemy_1501_demonk": [1,0,0,7153,14068],
|
||||||
"enemy_2005_axetro": [1,0,0,5980,10350],
|
"enemy_2005_axetro": [1,0,0,5745,13155],
|
||||||
"enemy_9011_acrefr": [1,0,0,0,1783]
|
"enemy_9011_acrefr": [1,0,0,0,3534]
|
||||||
},
|
},
|
||||||
"hooks": [1,62,3300,343,343,409,439,3216,43,55,15,18,41,6999,32,10,44,12,1,44,0,0,0],
|
"hooks": [1,62,3300,345,345,420,450,2949,44,55,16,19,42,7204,35,10,44,11,1,45,0,0,0],
|
||||||
"events": {"atk":364,"bounty":4,"deploy":18,"die":43,"dmg":439,"engage":10,"fx":64,"heal":17,"leak":12,"skill":36,"spawn":56,"status":64},
|
"events": {"atk":367,"bounty":4,"deploy":18,"die":44,"dmg":450,"engage":10,"fx":69,"heal":19,"leak":11,"skill":38,"spawn":56,"status":70},
|
||||||
"fx": {"aoe":4,"counter":3,"crit":20,"displace":10,"dp":2,"ember":1,"pulse":19,"revive":1,"sp":1,"summon":1,"taunt":2},
|
"fx": {"aoe":5,"counter":5,"crit":21,"displace":10,"dp":3,"ember":1,"pulse":19,"revive":1,"sp":1,"summon":1,"taunt":2},
|
||||||
"snaps": "ccf62e58 0169998c b859efed 32758178 83e51a60 50ce6b41 f75af7ee 51da4e45 7cbeae65 6cf12cc4 68ebbf32"
|
"snaps": "ccf62e58 0169998c b859efed 32758178 83e51a60 ce049a71 a8b23629 f4237c7c 751a3365 161a783e f7c626ae"
|
||||||
},
|
},
|
||||||
"roster-003": {
|
"roster-003": {
|
||||||
"about": "pass 0 band 2: chess_char_1_10_b chess_char_1_12_b chess_char_1_20_b chess_char_1_18_b chess_char_1_19_b chess_char_1_13_b chess_char_1_14_b chess_char_1_17_b chess_char_2_01_a chess_char_2_02_a chess_char_2_04_a chess_char_2_05_a token_10000_silent_healrb",
|
"about": "pass 0 band 2: chess_char_1_10_b chess_char_1_12_b chess_char_1_20_b chess_char_1_18_b chess_char_1_19_b chess_char_1_13_b chess_char_1_14_b chess_char_1_17_b chess_char_2_01_a chess_char_2_02_a chess_char_2_04_a chess_char_2_05_a token_10000_silent_healrb",
|
||||||
@@ -263,16 +263,16 @@
|
|||||||
"bossHpLeft": null,
|
"bossHpLeft": null,
|
||||||
"rngDraws": 333,
|
"rngDraws": 333,
|
||||||
"errors": {"count":0,"kinds":[]},
|
"errors": {"count":0,"kinds":[]},
|
||||||
"players": {"p1":{"killed":83,"total":84,"perfect":false,"leaks":1,"leaksUncounted":0,"coins":10,"dmg":306697,"bossDmg":0,"heal":36881,"deaths":0,"layerGains":{}}},
|
"players": {"p1":{"killed":83,"total":84,"perfect":false,"leaks":1,"leaksUncounted":0,"coins":10,"dmg":306697,"bossDmg":0,"heal":36129,"deaths":0,"layerGains":{}}},
|
||||||
"units": [
|
"units": [
|
||||||
["p1",1,"op","chess_char_2_07_b",1,"uniequip_002_ghost",2664.2,1,2,0,0,1707,1318,0,0],
|
["p1",1,"op","chess_char_2_07_b",1,"uniequip_002_ghost",2664.2,1,2,0,0,1305,1184,0,0],
|
||||||
["p1",2,"op","chess_char_2_08_b",1,"uniequip_002_bubble",3373,1,4,0,49,1818,0,0,1],
|
["p1",2,"op","chess_char_2_08_b",1,"uniequip_002_bubble",3373,1,4,0,73,1469,0,0,1],
|
||||||
["p1",3,"op","chess_char_2_09_b",1,"uniequip_002_humus",2133,1,6,28,84020,0,0,59,2],
|
["p1",3,"op","chess_char_2_09_b",1,"uniequip_002_humus",2133,1,6,28,84020,0,0,59,2],
|
||||||
["p1",4,"op","chess_char_2_11_b",1,"uniequip_002_kazema",2214,1,8,12,91244,15780,0,92,3],
|
["p1",4,"op","chess_char_2_11_b",1,"uniequip_002_kazema",2214,1,8,12,91220,15780,0,92,3],
|
||||||
["p1",5,"op","chess_char_2_12_b",1,"uniequip_002_gravel",1452,1,10,2,7180,8945,0,129,1],
|
["p1",5,"op","chess_char_2_12_b",1,"uniequip_002_gravel",1452,1,10,2,7180,8945,0,129,1],
|
||||||
["p1",6,"op","chess_char_2_19_a",1,null,1021.2,1,11,1,14957,1523,407,26,3],
|
["p1",6,"op","chess_char_2_19_a",1,null,1021.2,1,11,1,14957,1523,407,26,3],
|
||||||
["p1",7,"op","chess_char_2_01_b",1,"uniequip_002_excu",2146,1,12,20,36079,4183,0,22,1],
|
["p1",7,"op","chess_char_2_01_b",1,"uniequip_002_excu",2146,1,12,20,36079,4183,0,22,1],
|
||||||
["p1",8,"op","chess_char_2_02_b",1,"uniequip_002_silent",1614,1,1,0,0,0,9257,28,5],
|
["p1",8,"op","chess_char_2_02_b",1,"uniequip_002_silent",1614,1,1,0,0,0,8638,26,5],
|
||||||
["p1",9,"op","chess_char_2_04_b",1,"uniequip_002_grabds",1270,1,3,10,38233,2115,0,53,3],
|
["p1",9,"op","chess_char_2_04_b",1,"uniequip_002_grabds",1270,1,3,10,38233,2115,0,53,3],
|
||||||
["p1",10,"op","chess_char_2_05_b",1,"uniequip_002_harold",1971.2,1,5,0,0,0,11159,39,2],
|
["p1",10,"op","chess_char_2_05_b",1,"uniequip_002_harold",1971.2,1,5,0,0,0,11159,39,2],
|
||||||
["p1",11,"op","chess_char_2_06_b",0,"uniequip_002_papyrs",1639,1,7,0,0,0,12883,28,13],
|
["p1",11,"op","chess_char_2_06_b",0,"uniequip_002_papyrs",1639,1,7,0,0,0,12883,28,13],
|
||||||
@@ -280,7 +280,7 @@
|
|||||||
["p1",13,"token","token_10000_silent_healrb",null,null,1000,0,103,0,0,0,1858,18,null]
|
["p1",13,"token","token_10000_silent_healrb",null,null,1000,0,103,0,0,0,1858,18,null]
|
||||||
],
|
],
|
||||||
"enemies": {
|
"enemies": {
|
||||||
"enemy_10027_vtsk": [1,0,0,10080,23138],
|
"enemy_10027_vtsk": [1,0,0,9358,23138],
|
||||||
"enemy_1006_shield_2": [1,1,0,0,8000],
|
"enemy_1006_shield_2": [1,1,0,0,8000],
|
||||||
"enemy_10122_uacann_2": [1,1,0,3476,8000],
|
"enemy_10122_uacann_2": [1,1,0,3476,8000],
|
||||||
"enemy_1042_frostd": [1,1,0,0,5200],
|
"enemy_1042_frostd": [1,1,0,0,5200],
|
||||||
@@ -292,13 +292,13 @@
|
|||||||
"enemy_1299_ymkilr_2": [1,1,0,1178,8800],
|
"enemy_1299_ymkilr_2": [1,1,0,1178,8800],
|
||||||
"enemy_1328_cbjedi": [6,6,0,8860,48000],
|
"enemy_1328_cbjedi": [6,6,0,8860,48000],
|
||||||
"enemy_1402_tgshd_2": [1,1,0,200,10400],
|
"enemy_1402_tgshd_2": [1,1,0,200,10400],
|
||||||
"enemy_1509_mousek": [1,1,0,7102,17600],
|
"enemy_1509_mousek": [1,1,0,7072,17600],
|
||||||
"enemy_2010_csdcr": [1,1,0,1896,9600]
|
"enemy_2010_csdcr": [1,1,0,1896,9600]
|
||||||
},
|
},
|
||||||
"hooks": [1,102,4200,702,702,1777,1770,1107,83,89,36,35,0,28577,142,53,84,0,1,83,0,0,0],
|
"hooks": [1,102,4200,700,700,1778,1771,1030,83,89,36,35,0,28577,142,53,84,0,1,83,0,0,0],
|
||||||
"events": {"atk":917,"bounty":5,"deploy":18,"die":89,"dmg":1729,"engage":7,"fx":66,"heal":122,"skill":71,"spawn":97,"status":441},
|
"events": {"atk":915,"bounty":5,"deploy":18,"die":89,"dmg":1730,"engage":7,"fx":67,"heal":120,"skill":71,"spawn":97,"status":441},
|
||||||
"fx": {"counter":2,"explode":3,"expose":9,"overload":2,"phase":1,"shield":9,"shieldBreak":16,"sleep":7,"summon":5,"telegraph":6,"zone":6},
|
"fx": {"counter":3,"explode":3,"expose":9,"overload":2,"phase":1,"shield":9,"shieldBreak":16,"sleep":7,"summon":5,"telegraph":6,"zone":6},
|
||||||
"snaps": "de0d6fce aa9dbd18 e5f78211 369608f9 eaf0206b 8ca00225 879ade74 10585017 e8565d0c e354c612 a50e5370 07ad00b4 54071507 c18f3d28"
|
"snaps": "b763a1c1 b98a9d1a 2c94d433 a365844f 78a462a5 a1781573 cd52b6de 59586d21 9e102f1a e7d33928 5c43f32a 8141e997 bbbfc2f0 d722f533"
|
||||||
},
|
},
|
||||||
"roster-006": {
|
"roster-006": {
|
||||||
"about": "pass 0 band 3: chess_char_2_17_b chess_char_2_18_b chess_char_3_06_a chess_char_2_13_b chess_char_2_16_b chess_char_3_02_a chess_char_3_03_a chess_char_3_04_a chess_char_3_05_a chess_char_2_14_b chess_char_2_19_b chess_char_3_01_a",
|
"about": "pass 0 band 3: chess_char_2_17_b chess_char_2_18_b chess_char_3_06_a chess_char_2_13_b chess_char_2_16_b chess_char_3_02_a chess_char_3_03_a chess_char_3_04_a chess_char_3_05_a chess_char_2_14_b chess_char_2_19_b chess_char_3_01_a",
|
||||||
@@ -523,8 +523,8 @@
|
|||||||
"enemy_2025_syufo": [13,3,7,34317,151477]
|
"enemy_2025_syufo": [13,3,7,34317,151477]
|
||||||
},
|
},
|
||||||
"hooks": [1,130,5100,572,572,1142,1238,383,67,123,21,24,0,10102,74,47,88,33,1,72,14,13,0],
|
"hooks": [1,130,5100,572,572,1142,1238,383,67,123,21,24,0,10102,74,47,88,33,1,72,14,13,0],
|
||||||
"events": {"atk":665,"bounty":4,"deploy":42,"die":90,"dmg":1182,"engage":12,"fx":188,"heal":382,"layer":14,"leak":33,"skill":49,"spawn":119,"status":129},
|
"events": {"atk":665,"bounty":4,"deploy":42,"die":90,"dmg":1182,"engage":12,"fx":208,"heal":382,"layer":14,"leak":33,"skill":49,"spawn":119,"status":129},
|
||||||
"fx": {"aoe":1,"blink":4,"buff":1,"burst":13,"coin":21,"displace":31,"explode":25,"garrison":9,"layer":5,"pull":31,"revive":5,"shield":1,"shieldBreak":1,"stone":1,"strike":9,"summon":20,"telegraph":1,"volley":9},
|
"fx": {"aoe":21,"blink":4,"buff":1,"burst":13,"coin":21,"displace":31,"explode":25,"garrison":9,"layer":5,"pull":31,"revive":5,"shield":1,"shieldBreak":1,"stone":1,"strike":9,"summon":20,"telegraph":1,"volley":9},
|
||||||
"snaps": "d491f937 8ffbd7b3 9e67e1b5 7e887872 27c243c0 3f150bd7 8e79d798 8c8aa383 1ace5379 4d15cb2e a4aee685 006dff51 e06c3bae 1719e77c cd00bd64 7ff011a8 21d3419f"
|
"snaps": "d491f937 8ffbd7b3 9e67e1b5 7e887872 27c243c0 3f150bd7 8e79d798 8c8aa383 1ace5379 4d15cb2e a4aee685 006dff51 e06c3bae 1719e77c cd00bd64 7ff011a8 21d3419f"
|
||||||
},
|
},
|
||||||
"roster-009": {
|
"roster-009": {
|
||||||
@@ -607,10 +607,10 @@
|
|||||||
"rngDraws": 78,
|
"rngDraws": 78,
|
||||||
"errors": {"count":0,"kinds":[]},
|
"errors": {"count":0,"kinds":[]},
|
||||||
"players": {
|
"players": {
|
||||||
"p1": {"killed":34,"total":102,"perfect":false,"leaks":68,"leaksUncounted":0,"coins":6,"dmg":370675,"bossDmg":0,"heal":1763,"deaths":21,"layerGains":{"preciShip":8}}
|
"p1": {"killed":34,"total":102,"perfect":false,"leaks":68,"leaksUncounted":0,"coins":6,"dmg":374265,"bossDmg":0,"heal":1763,"deaths":21,"layerGains":{"preciShip":8}}
|
||||||
},
|
},
|
||||||
"units": [
|
"units": [
|
||||||
["p1",1,"op","chess_char_4_17_a",1,null,0,0,5,0,1650,2849,0,12,0],
|
["p1",1,"op","chess_char_4_17_a",1,null,0,0,5,0,5240,2849,0,12,0],
|
||||||
["p1",2,"op","chess_char_4_18_a",1,null,0,0,6,0,1816,4317,1450,3,3],
|
["p1",2,"op","chess_char_4_18_a",1,null,0,0,6,0,1816,4317,1450,3,3],
|
||||||
["p1",3,"op","chess_char_4_11_a",1,null,2144,1,128,0,484,2969,0,1,1],
|
["p1",3,"op","chess_char_4_11_a",1,null,2144,1,128,0,484,2969,0,1,1],
|
||||||
["p1",4,"op","chess_char_4_19_a",2,null,0,0,95,0,12345,3120,0,20,1],
|
["p1",4,"op","chess_char_4_19_a",2,null,0,0,95,0,12345,3120,0,20,1],
|
||||||
@@ -635,7 +635,7 @@
|
|||||||
"enemy_1005_yokai_3": [6,0,5,18350,83393],
|
"enemy_1005_yokai_3": [6,0,5,18350,83393],
|
||||||
"enemy_10083_hlbird": [1,1,0,0,6450],
|
"enemy_10083_hlbird": [1,1,0,0,6450],
|
||||||
"enemy_10144_xdelk_2": [1,0,1,2974,31667],
|
"enemy_10144_xdelk_2": [1,0,1,2974,31667],
|
||||||
"enemy_1050_lslime": [1,0,1,9009,21335],
|
"enemy_1050_lslime": [1,0,1,9009,24925],
|
||||||
"enemy_1158_divman": [1,1,0,305,14189],
|
"enemy_1158_divman": [1,1,0,305,14189],
|
||||||
"enemy_1174_duholy_2": [1,0,1,1192,4347],
|
"enemy_1174_duholy_2": [1,0,1,1192,4347],
|
||||||
"enemy_1204_msfhu_2": [1,1,0,0,6],
|
"enemy_1204_msfhu_2": [1,1,0,0,6],
|
||||||
@@ -646,10 +646,10 @@
|
|||||||
"enemy_1516_jakill": [1,0,1,81,0],
|
"enemy_1516_jakill": [1,0,1,81,0],
|
||||||
"enemy_2034_sythef_2": [1,0,1,0,0]
|
"enemy_2034_sythef_2": [1,0,1,0,0]
|
||||||
},
|
},
|
||||||
"hooks": [1,130,5100,423,423,1014,982,222,55,117,21,22,0,7786,429,11,102,62,1,170,2,0,23],
|
"hooks": [1,130,5100,423,423,1029,997,222,55,117,21,22,0,7786,429,11,102,62,1,170,2,0,23],
|
||||||
"events": {"atk":520,"bounty":3,"deploy":25,"die":55,"dmg":898,"engage":12,"fx":160,"heal":5,"layer":2,"leak":62,"skill":44,"spawn":119,"status":287},
|
"events": {"atk":520,"bounty":3,"deploy":25,"die":55,"dmg":913,"engage":12,"fx":175,"heal":5,"layer":2,"leak":62,"skill":44,"spawn":119,"status":287},
|
||||||
"fx": {"block":9,"catShield":2,"charge":1,"dilemma":1,"dodge":23,"explode":16,"explosion":2,"featherArrow":1,"flame":1,"frostNova":4,"garrison":2,"garrisonGrant":1,"overclock":1,"phase":1,"pull":1,"riposte":1,"rockslide":3,"shieldBreak":5,"slippery":1,"summon":11,"swordRain":48,"swordStorm":5,"telegraph":2,"thorns":6,"tornado":1,"tornadoPulse":5,"undying":6},
|
"fx": {"block":9,"catShield":2,"charge":1,"dilemma":1,"dodge":23,"explode":16,"explosion":2,"featherArrow":1,"flame":1,"frostNova":4,"garrison":2,"garrisonGrant":1,"overclock":1,"phase":1,"pull":1,"riposte":1,"rockslide":3,"shieldBreak":5,"slippery":1,"summon":11,"swordRain":48,"swordStorm":5,"telegraph":2,"thorns":21,"tornado":1,"tornadoPulse":5,"undying":6},
|
||||||
"snaps": "57fe2e2f 9740eab7 bc769df4 4b11e270 22996d81 de0a7802 8a9b54fe 11b5d7b3 27f8d1f7 407381fb 454bf8fe fb11d7df adcdf5d5 fac269bf c684cb06 d99688cd 0cfb92e2"
|
"snaps": "57fe2e2f 9740eab7 bc769df4 4b11e270 22996d81 21c4f85b b11a1d11 d9930d54 32c104ad 48940391 2875c690 fa4e30b9 e3c2ed67 439d1b5d 98710bbc 2b3b8707 201d4164"
|
||||||
},
|
},
|
||||||
"roster-011": {
|
"roster-011": {
|
||||||
"about": "pass 0 band 5: chess_char_4_23_a chess_char_4_01_b chess_char_4_22_a chess_char_4_04_b chess_char_4_07_b chess_char_4_09_b chess_char_4_21_a chess_char_4_24_a chess_char_4_25_a chess_char_4_26_a chess_char_4_02_b chess_char_4_06_b",
|
"about": "pass 0 band 5: chess_char_4_23_a chess_char_4_01_b chess_char_4_22_a chess_char_4_04_b chess_char_4_07_b chess_char_4_09_b chess_char_4_21_a chess_char_4_24_a chess_char_4_25_a chess_char_4_26_a chess_char_4_02_b chess_char_4_06_b",
|
||||||
@@ -730,10 +730,10 @@
|
|||||||
"rngDraws": 187,
|
"rngDraws": 187,
|
||||||
"errors": {"count":0,"kinds":[]},
|
"errors": {"count":0,"kinds":[]},
|
||||||
"players": {
|
"players": {
|
||||||
"p1": {"killed":99,"total":100,"perfect":false,"leaks":1,"leaksUncounted":0,"coins":10,"dmg":983916,"bossDmg":0,"heal":22157,"deaths":7,"layerGains":{"preciShip":8}}
|
"p1": {"killed":99,"total":100,"perfect":false,"leaks":1,"leaksUncounted":0,"coins":10,"dmg":983940,"bossDmg":0,"heal":22157,"deaths":7,"layerGains":{"preciShip":8}}
|
||||||
},
|
},
|
||||||
"units": [
|
"units": [
|
||||||
["p1",1,"op","chess_char_4_17_b",1,"uniequip_002_hsguma",3046.73,1,7,0,184,466,0,20,0],
|
["p1",1,"op","chess_char_4_17_b",1,"uniequip_002_hsguma",3046.73,1,7,0,237,466,0,20,0],
|
||||||
["p1",2,"op","chess_char_4_18_b",1,"uniequip_002_mudrok",6104,1,9,4,57534,2092,2092,32,7],
|
["p1",2,"op","chess_char_4_18_b",1,"uniequip_002_mudrok",6104,1,9,4,57534,2092,2092,32,7],
|
||||||
["p1",3,"op","chess_char_4_11_b",1,"uniequip_002_cathy",2644,1,124,0,2731,3521,0,3,1],
|
["p1",3,"op","chess_char_4_11_b",1,"uniequip_002_cathy",2644,1,124,0,2731,3521,0,3,1],
|
||||||
["p1",4,"op","chess_char_4_19_b",2,"uniequip_002_flamtl",0,0,104,4,45091,4236,0,45,3],
|
["p1",4,"op","chess_char_4_19_b",2,"uniequip_002_flamtl",0,0,104,4,45091,4236,0,45,3],
|
||||||
@@ -743,7 +743,7 @@
|
|||||||
["p1",8,"op","chess_char_4_12_b",2,"uniequip_002_glady",2232,1,5,2,6911,557,557,14,2],
|
["p1",8,"op","chess_char_4_12_b",2,"uniequip_002_glady",2232,1,5,2,6911,557,557,14,2],
|
||||||
["p1",9,"op","chess_char_4_13_b",1,"uniequip_002_gnosis",1989,1,11,20,187170,2441,0,92,38],
|
["p1",9,"op","chess_char_4_13_b",1,"uniequip_002_gnosis",1989,1,11,20,187170,2441,0,92,38],
|
||||||
["p1",10,"op","chess_char_4_14_b",1,"uniequip_002_lionhd",1576,1,13,44,488221,7756,0,57,23],
|
["p1",10,"op","chess_char_4_14_b",1,"uniequip_002_lionhd",1576,1,13,44,488221,7756,0,57,23],
|
||||||
["p1",11,"op","chess_char_4_20_b",2,"uniequip_002_fartth",0,0,6,12,86244,1419,0,28,5],
|
["p1",11,"op","chess_char_4_20_b",2,"uniequip_002_fartth",0,0,6,12,86215,1419,0,28,5],
|
||||||
["p1",12,"op","chess_char_4_21_b",1,"uniequip_002_plosis",1534,1,14,0,0,9049,19146,96,2],
|
["p1",12,"op","chess_char_4_21_b",1,"uniequip_002_plosis",1534,1,14,0,0,9049,19146,96,2],
|
||||||
["p1",13,"token","token_10041_cathy_catsld",null,null,100,1,17,0,0,0,0,0,null],
|
["p1",13,"token","token_10041_cathy_catsld",null,null,100,1,17,0,0,0,0,0,null],
|
||||||
["p1",14,"token","token_10041_cathy_catsld",null,null,100,1,16,0,0,0,0,0,null],
|
["p1",14,"token","token_10041_cathy_catsld",null,null,100,1,16,0,0,0,0,0,null],
|
||||||
@@ -766,13 +766,13 @@
|
|||||||
"enemy_1270_nhstlk_2": [15,15,0,6817,276480],
|
"enemy_1270_nhstlk_2": [15,15,0,6817,276480],
|
||||||
"enemy_1325_cbgpro_2": [1,1,0,0,5299],
|
"enemy_1325_cbgpro_2": [1,1,0,0,5299],
|
||||||
"enemy_1425_lrcmra_2": [1,1,0,718,28800],
|
"enemy_1425_lrcmra_2": [1,1,0,718,28800],
|
||||||
"enemy_1525_blkswb": [1,0,1,11702,37587],
|
"enemy_1525_blkswb": [1,0,1,11702,37611],
|
||||||
"enemy_2050_smsha": [1,1,0,1902,46080]
|
"enemy_2050_smsha": [1,1,0,1902,46080]
|
||||||
},
|
},
|
||||||
"hooks": [1,122,4878,469,469,1415,1416,521,107,110,87,86,0,15601,1813,20,100,1,1,122,1,0,1],
|
"hooks": [1,122,4878,469,469,1417,1418,521,107,110,87,86,0,15601,1813,20,100,1,1,122,1,0,1],
|
||||||
"events": {"atk":626,"bounty":5,"deploy":19,"die":109,"dmg":1408,"engage":10,"fx":238,"heal":213,"layer":1,"leak":1,"skill":175,"spawn":117,"status":929},
|
"events": {"atk":626,"bounty":5,"deploy":19,"die":109,"dmg":1410,"engage":10,"fx":241,"heal":213,"layer":1,"leak":1,"skill":175,"spawn":117,"status":929},
|
||||||
"fx": {"beam":6,"blink":2,"displace":4,"dodge":1,"explode":4,"explosion":23,"featherArrow":5,"flame":3,"frostNova":38,"garrison":1,"garrisonGrant":1,"healField":2,"overclock":1,"palsy":1,"pull":2,"revive":4,"riposte":1,"rockslide":7,"shieldBreak":8,"slash":23,"summon":1,"swordRain":9,"swordStorm":3,"telegraph":4,"tornado":2,"tornadoPulse":10,"truesilver":3,"zone":69},
|
"fx": {"beam":6,"blink":2,"displace":4,"dodge":1,"explode":4,"explosion":23,"featherArrow":5,"flame":3,"frostNova":38,"garrison":1,"garrisonGrant":1,"healField":2,"overclock":1,"palsy":1,"pull":2,"revive":4,"riposte":1,"rockslide":7,"shieldBreak":8,"slash":23,"summon":1,"swordRain":9,"swordStorm":3,"telegraph":4,"thorns":3,"tornado":2,"tornadoPulse":10,"truesilver":3,"zone":69},
|
||||||
"snaps": "a9c24b01 43e8c4cb 9f57bc24 f59bb440 6678caa3 a8a8f019 00aa512d 0d1483f9 3218befc 941b711a 42e275ff 71560683 48d17a97 d73abc3a cd6e4828 23a7c2fb ed427a58"
|
"snaps": "a9c24b01 43e8c4cb 9f57bc24 f59bb440 6678caa3 a8a8f019 00aa512d 0d1483f9 2a3527a2 03e0de1a 3bc882ff 0bd6525a bdfd0551 2a029828 bba7125a e653cf29 998295f6"
|
||||||
},
|
},
|
||||||
"roster-013": {
|
"roster-013": {
|
||||||
"about": "pass 0 band 5: chess_char_4_23_b chess_char_5_08_a chess_char_5_01_a chess_char_5_05_a chess_char_5_06_a chess_char_5_07_a chess_char_4_24_b chess_char_4_25_b chess_char_4_26_b chess_char_5_02_a chess_char_5_03_a chess_char_5_10_a",
|
"about": "pass 0 band 5: chess_char_4_23_b chess_char_5_08_a chess_char_5_01_a chess_char_5_05_a chess_char_5_06_a chess_char_5_07_a chess_char_4_24_b chess_char_4_25_b chess_char_4_26_b chess_char_5_02_a chess_char_5_03_a chess_char_5_10_a",
|
||||||
@@ -1026,26 +1026,26 @@
|
|||||||
"leaks": 47,
|
"leaks": 47,
|
||||||
"leaksUncounted": 0,
|
"leaksUncounted": 0,
|
||||||
"coins": 6,
|
"coins": 6,
|
||||||
"dmg": 3625965,
|
"dmg": 3677023,
|
||||||
"bossDmg": 0,
|
"bossDmg": 0,
|
||||||
"heal": 73726,
|
"heal": 75128,
|
||||||
"deaths": 12,
|
"deaths": 12,
|
||||||
"layerGains": {"preciShip":2}
|
"layerGains": {"preciShip":2}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"units": [
|
"units": [
|
||||||
["p1",1,"op","chess_char_5_19_b",2,"uniequip_002_mlynar",3907,1,155,9,319089,12578,505,57,4],
|
["p1",1,"op","chess_char_5_19_b",2,"uniequip_002_mlynar",0,0,151,11,354038,12682,609,62,4],
|
||||||
["p1",2,"op","chess_char_6_03_a",2,null,3649.5,1,153,1,63347,9646,3389,40,2],
|
["p1",2,"op","chess_char_6_03_a",2,null,3649.5,1,153,1,73038,11404,3450,49,2],
|
||||||
["p1",3,"op","chess_char_6_06_a",2,null,2223,1,141,9,376232,17794,732,73,2],
|
["p1",3,"op","chess_char_6_06_a",2,null,2223,1,141,8,370574,19209,775,73,2],
|
||||||
["p1",4,"op","chess_char_5_17_b",1,"uniequip_002_f12yin",2738,1,74,6,134249,34756,12617,295,2],
|
["p1",4,"op","chess_char_5_17_b",1,"uniequip_002_f12yin",2738,1,74,5,134711,33014,11637,295,2],
|
||||||
["p1",5,"op","chess_char_5_20_b",2,"uniequip_002_aglina",1382,1,10,0,114705,1182,705,42,5],
|
["p1",5,"op","chess_char_5_20_b",2,"uniequip_002_aglina",1382,1,10,0,114705,1182,705,42,5],
|
||||||
["p1",6,"op","chess_char_5_21_b",1,"uniequip_002_sntlla",1629,1,84,0,216022,2324,401,113,3],
|
["p1",6,"op","chess_char_5_21_b",1,"uniequip_002_sntlla",1629,1,84,0,216022,2324,401,113,3],
|
||||||
["p1",7,"op","chess_char_5_22_b",1,"uniequip_002_nymph",1611,1,1,1,42732,1056,1056,11,4],
|
["p1",7,"op","chess_char_5_22_b",1,"uniequip_002_nymph",1611,1,1,1,42732,1056,1056,11,4],
|
||||||
["p1",8,"op","chess_char_5_23_b",1,"uniequip_002_reckpr",1610,1,3,0,0,2485,51822,72,4],
|
["p1",8,"op","chess_char_5_23_b",1,"uniequip_002_reckpr",1610,1,3,0,0,2485,53907,72,4],
|
||||||
["p1",9,"op","chess_char_6_01_a",2,null,1158,1,106,30,645243,1291,81,72,3],
|
["p1",9,"op","chess_char_6_01_a",2,null,1158,1,106,28,635492,1291,81,72,3],
|
||||||
["p1",10,"op","chess_char_6_02_a",2,null,1687,1,7,20,1384858,7686,498,74,3],
|
["p1",10,"op","chess_char_6_02_a",2,null,1687,1,7,22,1408611,7686,498,74,3],
|
||||||
["p1",11,"op","chess_char_6_04_a",2,null,1161.9,1,130,1,64654,8281,903,0,3],
|
["p1",11,"op","chess_char_6_04_a",2,null,1028.54,1,130,1,63251,8281,992,0,3],
|
||||||
["p1",12,"op","chess_char_6_05_a",2,null,1215,1,59,2,264834,2542,1017,68,5],
|
["p1",12,"op","chess_char_6_05_a",2,null,1215,1,59,2,263849,2542,1017,68,5],
|
||||||
["p1",13,"token","token_10017_skadi2_dedant",null,null,100,0,13,0,0,0,0,0,null],
|
["p1",13,"token","token_10017_skadi2_dedant",null,null,100,0,13,0,0,0,0,0,null],
|
||||||
["p1","~1","token","token_10017_skadi2_dedant",null,null,100,0,60,0,0,0,0,0,null],
|
["p1","~1","token","token_10017_skadi2_dedant",null,null,100,0,60,0,0,0,0,0,null],
|
||||||
["p1","~2","token","token_10017_skadi2_dedant",null,null,100,0,131,0,0,0,0,0,null],
|
["p1","~2","token","token_10017_skadi2_dedant",null,null,100,0,131,0,0,0,0,0,null],
|
||||||
@@ -1054,10 +1054,10 @@
|
|||||||
"enemies": {
|
"enemies": {
|
||||||
"enemy_10045_parrot": [1,0,1,0,44064],
|
"enemy_10045_parrot": [1,0,1,0,44064],
|
||||||
"enemy_10098_crhro": [1,0,1,4685,94997],
|
"enemy_10098_crhro": [1,0,1,4685,94997],
|
||||||
"enemy_10124_uashld_2": [12,0,10,34007,659017],
|
"enemy_10124_uashld_2": [12,0,9,32378,701938],
|
||||||
"enemy_1019_jshoot_2": [1,1,0,1861,16718],
|
"enemy_1019_jshoot_2": [1,1,0,1861,16718],
|
||||||
"enemy_1043_zomsbr": [72,54,18,618,974327],
|
"enemy_1043_zomsbr": [72,54,18,366,974908],
|
||||||
"enemy_1061_zomshd": [30,18,12,24836,1664045],
|
"enemy_1061_zomshd": [30,18,12,28253,1673641],
|
||||||
"enemy_1072_dlancer": [1,1,0,2738,37150],
|
"enemy_1072_dlancer": [1,1,0,2738,37150],
|
||||||
"enemy_1165_duhond": [1,1,0,0,17337],
|
"enemy_1165_duhond": [1,1,0,0,17337],
|
||||||
"enemy_1196_msfyin_2": [1,1,0,0,3],
|
"enemy_1196_msfyin_2": [1,1,0,0,3],
|
||||||
@@ -1068,10 +1068,10 @@
|
|||||||
"enemy_2001_duckmi_2": [1,0,1,0,9483],
|
"enemy_2001_duckmi_2": [1,0,1,0,9483],
|
||||||
"enemy_9006_actoxi": [1,0,1,0,2384]
|
"enemy_9006_actoxi": [1,0,1,0,2384]
|
||||||
},
|
},
|
||||||
"hooks": [1,154,6900,951,1017,7281,7430,78804,91,140,40,36,17,35845,1032,57,126,45,1,102,1,7,6],
|
"hooks": [1,153,6900,968,1034,7412,7573,79654,91,139,40,36,17,35794,1056,56,126,44,1,104,1,8,7],
|
||||||
"events": {"atk":2283,"bounty":3,"deploy":28,"die":95,"dmg":7385,"engage":10,"fx":552,"heal":121,"layer":1,"leak":45,"skill":76,"spawn":142,"status":2410},
|
"events": {"atk":2339,"bounty":3,"deploy":27,"die":95,"dmg":7528,"engage":10,"fx":555,"heal":123,"layer":1,"leak":44,"skill":76,"spawn":142,"status":2465},
|
||||||
"fx": {"aoe":8,"bombard":17,"bombardShell":17,"burst":7,"crit":50,"dodge":6,"explode":40,"firewall":2,"garrison":1,"iceSpike":90,"lightning":148,"lock":17,"lure":3,"revive":1,"snow":82,"soul":1,"sp":1,"storm":5,"talent":2,"telegraph":8,"tide":3,"wanted":38,"weightless":5},
|
"fx": {"aoe":8,"bombard":17,"bombardShell":17,"burst":8,"crit":49,"dodge":7,"explode":40,"firewall":2,"garrison":1,"iceSpike":90,"lightning":149,"lock":17,"lure":3,"revive":1,"snow":83,"soul":1,"sp":1,"storm":5,"talent":2,"telegraph":8,"tide":3,"wanted":38,"weightless":5},
|
||||||
"snaps": "ee17d257 d832b8ac 2ca210aa 3cd3fc22 022376cf a362140e 0ca09d66 1f446040 29245222 70bfb33a 2b4ce12f 51a65ad5 1216d2fa f2d3b899 86e068de 5a0bbda6 1bb53622 0ef45b3c a98167d6 5245239e eac46280 b7e2f8ef 905be587"
|
"snaps": "ee17d257 d832b8ac 2ca210aa 3cd3fc22 022376cf a362140e 0ca09d66 1f446040 29245222 70bfb33a 2b4ce12f 51a65ad5 ad68ae06 78e22ecb 8e62cd15 d038400f acfbac9b d0d4b34a 15c967a7 7069a3e8 43be52da 702645d3 aab418ba"
|
||||||
},
|
},
|
||||||
"roster-017": {
|
"roster-017": {
|
||||||
"about": "pass 0 band 6: chess_char_6_15_a chess_char_6_19_a chess_char_6_07_a chess_char_6_17_a chess_char_6_08_a chess_char_6_09_a chess_char_6_11_a chess_char_6_12_a chess_char_6_13_a chess_char_6_14_a chess_char_6_16_a chess_char_6_18_a",
|
"about": "pass 0 band 6: chess_char_6_15_a chess_char_6_19_a chess_char_6_07_a chess_char_6_17_a chess_char_6_08_a chess_char_6_09_a chess_char_6_11_a chess_char_6_12_a chess_char_6_13_a chess_char_6_14_a chess_char_6_16_a chess_char_6_18_a",
|
||||||
@@ -2042,7 +2042,7 @@
|
|||||||
"leaks": 132,
|
"leaks": 132,
|
||||||
"leaksUncounted": 0,
|
"leaksUncounted": 0,
|
||||||
"coins": 2,
|
"coins": 2,
|
||||||
"dmg": 346977,
|
"dmg": 349368,
|
||||||
"bossDmg": 0,
|
"bossDmg": 0,
|
||||||
"heal": 42114,
|
"heal": 42114,
|
||||||
"deaths": 24,
|
"deaths": 24,
|
||||||
@@ -2051,8 +2051,8 @@
|
|||||||
},
|
},
|
||||||
"units": [
|
"units": [
|
||||||
["p1",1,"op","chess_char_5_11_a",0,null,3628.8,1,198,2,15002,7551,4312,30,4],
|
["p1",1,"op","chess_char_5_11_a",0,null,3628.8,1,198,2,15002,7551,4312,30,4],
|
||||||
["p1",2,"op","chess_char_5_19_a",0,null,2167.52,1,196,3,36237,18040,49,14,3],
|
["p1",2,"op","chess_char_5_19_a",0,null,2167.52,1,196,3,38727,18040,49,14,3],
|
||||||
["p1",3,"op","chess_char_5_13_a",0,null,0,0,193,5,70464,16349,83,31,1],
|
["p1",3,"op","chess_char_5_13_a",0,null,0,0,193,5,70364,16349,83,31,1],
|
||||||
["p1",4,"op","chess_char_5_14_a",0,null,1546.99,1,197,1,6713,5581,1527,20,3],
|
["p1",4,"op","chess_char_5_14_a",0,null,1546.99,1,197,1,6713,5581,1527,20,3],
|
||||||
["p1",5,"op","chess_char_5_06_b",0,"uniequip_003_etlchi",0,0,179,14,123248,17506,7085,33,8],
|
["p1",5,"op","chess_char_5_06_b",0,"uniequip_003_etlchi",0,0,179,14,123248,17506,7085,33,8],
|
||||||
["p1",6,"op","chess_char_5_17_a",0,null,89.06,1,195,0,5573,17040,199,14,2],
|
["p1",6,"op","chess_char_5_17_a",0,null,89.06,1,195,0,5573,17040,199,14,2],
|
||||||
@@ -2075,14 +2075,14 @@
|
|||||||
"enemy_1196_msfyin": [1,1,0,0,2],
|
"enemy_1196_msfyin": [1,1,0,0,2],
|
||||||
"enemy_1252_lysytb_2": [1,0,1,307,9631],
|
"enemy_1252_lysytb_2": [1,0,1,307,9631],
|
||||||
"enemy_1364_spnaxe_2": [1,0,1,2528,4741],
|
"enemy_1364_spnaxe_2": [1,0,1,2528,4741],
|
||||||
"enemy_1404_msnip": [36,4,32,77857,127526],
|
"enemy_1404_msnip": [36,4,32,77857,129916],
|
||||||
"enemy_1516_jakill": [1,0,1,5154,1320],
|
"enemy_1516_jakill": [1,0,1,5154,1320],
|
||||||
"enemy_9011_acrefr": [1,0,1,0,1527]
|
"enemy_9011_acrefr": [1,0,1,0,1527]
|
||||||
},
|
},
|
||||||
"hooks": [1,198,6664,961,961,3404,3432,2289,59,192,68,67,0,23204,206,88,167,132,1,65,7,0,3],
|
"hooks": [1,198,6664,961,961,3430,3458,2289,59,192,68,67,0,23204,206,88,167,132,1,65,7,0,3],
|
||||||
"events": {"atk":1050,"bounty":1,"deploy":29,"die":60,"dmg":3390,"engage":12,"fx":119,"heal":451,"layer":7,"leak":132,"skill":135,"spawn":182,"status":264},
|
"events": {"atk":1050,"bounty":1,"deploy":29,"die":60,"dmg":3416,"engage":12,"fx":119,"heal":451,"layer":7,"leak":132,"skill":135,"spawn":182,"status":264},
|
||||||
"fx": {"aoe":3,"dodge":3,"dollEnd":3,"garrison":7,"healAoe":4,"hpShare":1,"palsy":1,"phase":1,"reborn":3,"revive":6,"shield":39,"sp":10,"substitute":3,"summon":1,"zone":34},
|
"fx": {"aoe":3,"dodge":3,"dollEnd":3,"garrison":7,"healAoe":4,"hpShare":1,"palsy":1,"phase":1,"reborn":3,"revive":6,"shield":39,"sp":10,"substitute":3,"summon":1,"zone":34},
|
||||||
"snaps": "8b9c3026 e0f96062 a49bbfa8 29d89b05 0acdd66d 607a3e6e e487bee7 925b98be 8d6d2209 5c9e2d74 878a99ae 98ba61a3 429c3a4d 28fa2b80 5f6aa75e 47b6d9dc 12bc9401 62c44e64 d6f464bb de487d8c 7aaa2057 21893dc4 3ac24c00"
|
"snaps": "8b9c3026 e0f96062 a49bbfa8 29d89b05 0acdd66d bf39de85 9e043da7 0a498624 5c13efec 75baddb9 67cc60f9 f89c8ba6 accd5980 82e3a003 3f66378b 9ba9488f cb51d386 8814422f b9132254 1419b8c7 784dfe12 10f61101 8fbaffd9"
|
||||||
},
|
},
|
||||||
"roster-034": {
|
"roster-034": {
|
||||||
"about": "pass 1 band 6: chess_char_5_08_b chess_char_5_11_b chess_char_5_19_b chess_char_5_13_b chess_char_5_14_b chess_char_5_07_b chess_char_5_17_b chess_char_5_10_b chess_char_5_12_b chess_char_5_15_b chess_char_5_20_b chess_char_5_21_b",
|
"about": "pass 1 band 6: chess_char_5_08_b chess_char_5_11_b chess_char_5_19_b chess_char_5_13_b chess_char_5_14_b chess_char_5_07_b chess_char_5_17_b chess_char_5_10_b chess_char_5_12_b chess_char_5_15_b chess_char_5_20_b chess_char_5_21_b",
|
||||||
@@ -2692,18 +2692,18 @@
|
|||||||
"bossHpLeft": null,
|
"bossHpLeft": null,
|
||||||
"rngDraws": 102,
|
"rngDraws": 102,
|
||||||
"errors": {"count":0,"kinds":[]},
|
"errors": {"count":0,"kinds":[]},
|
||||||
"players": {"p1":{"killed":97,"total":119,"perfect":false,"leaks":22,"leaksUncounted":0,"coins":8,"dmg":3196440,"bossDmg":0,"heal":29602,"deaths":18,"layerGains":{}}},
|
"players": {"p1":{"killed":97,"total":119,"perfect":false,"leaks":22,"leaksUncounted":0,"coins":8,"dmg":3196490,"bossDmg":0,"heal":29602,"deaths":18,"layerGains":{}}},
|
||||||
"units": [
|
"units": [
|
||||||
["p1",1,"op","chess_char_5_19_a",1,null,3241,1,167,5,41218,11497,895,29,3],
|
["p1",1,"op","chess_char_5_19_a",1,null,3241,1,167,5,42811,11497,895,29,3],
|
||||||
["p1",2,"op","chess_char_5_11_b",2,"none",4564.8,1,169,4,21064,21466,23687,40,3],
|
["p1",2,"op","chess_char_5_11_b",2,"none",4564.8,1,169,4,21064,21466,23687,40,3],
|
||||||
["p1",3,"op","chess_char_5_19_b",1,"uniequip_002_mlynar",0,0,158,4,79275,11893,172,37,4],
|
["p1",3,"op","chess_char_5_19_b",1,"uniequip_002_mlynar",0,0,158,4,79275,11893,172,37,4],
|
||||||
["p1",4,"op","chess_char_5_13_b",2,"uniequip_004_ghost2",3412.8,1,9,5,146836,18085,143,21,2],
|
["p1",4,"op","chess_char_5_13_b",2,"uniequip_004_ghost2",3412.8,1,9,5,146836,18085,143,21,2],
|
||||||
["p1",5,"op","chess_char_5_14_b",2,"none",1994,1,168,11,231063,15046,2302,62,5],
|
["p1",5,"op","chess_char_5_14_b",2,"none",1994,1,168,10,229565,15046,2302,62,5],
|
||||||
["p1",6,"op","chess_char_5_17_b",2,"none",153.59,1,162,2,116401,14251,285,50,5],
|
["p1",6,"op","chess_char_5_17_b",2,"none",153.59,1,162,2,116401,14251,285,50,5],
|
||||||
["p1",7,"op","chess_char_5_20_a",1,null,1108,1,3,1,43321,1688,368,361,5],
|
["p1",7,"op","chess_char_5_20_a",1,null,1108,1,3,1,43321,1688,368,361,5],
|
||||||
["p1",8,"op","chess_char_5_22_a",2,null,1237,1,79,5,123577,5289,413,112,3],
|
["p1",8,"op","chess_char_5_22_a",2,null,1237,1,79,5,123577,5289,413,112,3],
|
||||||
["p1",9,"op","chess_char_5_12_b",2,"uniequip_004_dusk",1667,1,13,8,413532,0,0,63,2],
|
["p1",9,"op","chess_char_5_12_b",2,"uniequip_004_dusk",1667,1,13,8,413532,0,0,63,2],
|
||||||
["p1",10,"op","chess_char_5_15_b",2,"uniequip_002_thorn2",1170,1,14,38,1500942,0,0,175,6],
|
["p1",10,"op","chess_char_5_15_b",2,"uniequip_002_thorn2",1170,1,14,39,1500897,0,0,175,6],
|
||||||
["p1",11,"op","chess_char_5_20_b",1,"uniequip_004_aglina",1292,1,5,6,139374,1688,368,513,6],
|
["p1",11,"op","chess_char_5_20_b",1,"uniequip_004_aglina",1292,1,5,6,139374,1688,368,513,6],
|
||||||
["p1",12,"op","chess_char_5_22_b",2,"none",1511,1,11,8,326656,1913,398,155,3],
|
["p1",12,"op","chess_char_5_22_b",2,"none",1511,1,11,8,326656,1913,398,155,3],
|
||||||
["-","~1","device","trap_1105_accrate",null,null,100,1,1,0,0,0,0,0,null],
|
["-","~1","device","trap_1105_accrate",null,null,100,1,1,0,0,0,0,0,null],
|
||||||
@@ -2741,10 +2741,10 @@
|
|||||||
"enemy_1502_crowns": [1,1,0,0,17916],
|
"enemy_1502_crowns": [1,1,0,0,17916],
|
||||||
"enemy_2085_skzjxd": [1,0,1,0,27708]
|
"enemy_2085_skzjxd": [1,0,1,0,27708]
|
||||||
},
|
},
|
||||||
"hooks": [1,169,6392,1856,1856,4793,4802,4572,133,155,47,45,0,25292,2502,134,119,22,1,137,0,0,0],
|
"hooks": [1,169,6392,1856,1856,4806,4815,4572,133,155,47,45,0,25292,2500,134,119,22,1,137,0,0,0],
|
||||||
"events": {"atk":2202,"bounty":4,"deploy":48,"die":133,"dmg":4802,"engage":31,"fx":126,"heal":157,"leak":22,"skill":92,"spawn":152,"status":917},
|
"events": {"atk":2201,"bounty":4,"deploy":48,"die":133,"dmg":4815,"engage":31,"fx":126,"heal":157,"leak":22,"skill":92,"spawn":152,"status":917},
|
||||||
"fx": {"blink":1,"crit":17,"displace":34,"explode":5,"sp":11,"substitute":4,"summon":19,"swap":3,"teleport":9,"zone":23},
|
"fx": {"blink":1,"crit":17,"displace":34,"explode":5,"sp":11,"substitute":4,"summon":19,"swap":3,"teleport":9,"zone":23},
|
||||||
"snaps": "a39ea9a8 8c9edc9a a065676e 3404b1b0 c5e48361 e1141ee7 731907d0 35ea8479 ddbaef3d 5482db0f 24f79c23 1a11903e 1f6f9bf4 c6ce73f3 1e9e1c5b 86972b3e 9e39b85b 2ec9de5d e7d5989b 90b52fbd 7a512691 2515b778"
|
"snaps": "a39ea9a8 e80ba854 5a7d8922 937a75f8 63bcd2cc 5b792ef2 74605095 8cde1b64 3d34ce14 0ba6b47a 25291a4a c4759cbb 4f089279 6b4a97f6 a901573a e5a3248f 0e14690a 229cc4f4 ce5e4276 6af66d94 7b8ead38 e61d788d"
|
||||||
},
|
},
|
||||||
"roster-045": {
|
"roster-045": {
|
||||||
"about": "pass 2 band 6: chess_char_6_03_a chess_char_6_06_a chess_char_6_07_a chess_char_6_01_a chess_char_6_02_a chess_char_6_04_a chess_char_6_05_a chess_char_6_08_a chess_char_6_09_a chess_char_6_11_a chess_char_6_12_a chess_char_6_13_a token_10017_skadi2_dedant",
|
"about": "pass 2 band 6: chess_char_6_03_a chess_char_6_06_a chess_char_6_07_a chess_char_6_01_a chess_char_6_02_a chess_char_6_04_a chess_char_6_05_a chess_char_6_08_a chess_char_6_09_a chess_char_6_11_a chess_char_6_12_a chess_char_6_13_a token_10017_skadi2_dedant",
|
||||||
|
|||||||
@@ -0,0 +1,121 @@
|
|||||||
|
// test/sim/feedback5-counters-any-damage.test.js — community report of 2026-10-06 (item 30) 「退行的潮涌者的攻击无法触发菲莱2技能
|
||||||
|
// 的受击反击(排查其他类似技能的干员)」. The enemy is 深溟巢涌者 / 富营养的巢涌者 (the 退行的巢涌者 of the main story): it makes no
|
||||||
|
// normal attack — its talent hurts every operator in range once a second (PRTS "无途径法术伤害"; buff_template_data
|
||||||
|
// enemy_dsubrl_aoe[aura]: an AdvancedApplyDamage with the enemy as its source). The official counters fire on ON_TAKE_DAMAGE —
|
||||||
|
// 菲莱 S2 philae_s_2 with no filter at all, the others on a source of the other side (inverse_damage — 星熊 S2 —,
|
||||||
|
// inverse_damage[magic] + nian_s_2 — 年 S2 —, bubble_s_2 / bubble_t_1 — 泡泡 —, vendla_s_2 — 刺玫 S2 —, yu_s_1[inverse_damage] —
|
||||||
|
// 余 S1 —, hsgma2_s_1 — 斩业星熊 S1 —, mlynar_t_2[inverse] — 玛恩纳 无动于衷) — but the remake took enemy attacks only.
|
||||||
|
// Now any damage instance from an enemy (kits/shared/tier1.js byEnemyAttack; 菲莱: any instance), never a 流失.
|
||||||
|
// Run: node --test test/sim/feedback5-counters-any-damage.test.js
|
||||||
|
|
||||||
|
import { test } from 'node:test';
|
||||||
|
import assert from 'node:assert/strict';
|
||||||
|
import { makeBattle, checkInvariants } from '../helpers/battleHarness.js';
|
||||||
|
|
||||||
|
const NEST = 'enemy_1234_dsubrl';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* `units` on the flat field, a parked 深溟巢涌者 on `nestAt` (speed ×0: it pulses every operator within 1.6 every second and
|
||||||
|
* never attacks); `cast` = the unit whose skill is cast at once. Returns the harness after `seconds`.
|
||||||
|
*/
|
||||||
|
function nestFight(units, { cast = null, nestAt = [10, 5], seconds = 8 } = {}) {
|
||||||
|
const h = makeBattle({ seed: 7, autoFinish: false, timeLimit: 60, captureNoisy: true, hooks: ['damaged', 'attack'], units });
|
||||||
|
h.step();
|
||||||
|
const nest = h.spawn(NEST, { pos: nestAt, mods: { speedMul: 0 } });
|
||||||
|
if (cast) { const u = h.unit(cast); u.skill.gainSp(999, 'test'); if (!u.skill.active) assert.ok(u.skill.activate('test'), `${cast}: cast`); }
|
||||||
|
h.run(seconds);
|
||||||
|
checkInvariants(h.b);
|
||||||
|
return { h, nest };
|
||||||
|
}
|
||||||
|
const fromTo = (h, src, tgt, pred) => h.hooksOf('damaged').filter((c) => c.source === src && c.target === tgt && pred(c));
|
||||||
|
const tagged = (tag) => (c) => (c.dmg?.tags || []).includes(tag);
|
||||||
|
/** The pulses `u` took (the 巢涌者's arts instances; its 神经损伤 rider is an element 损伤, no counter's business). */
|
||||||
|
const pulsesOn = (h, nest, u) => fromTo(h, nest, u, (c) => c.type === 'arts').length;
|
||||||
|
|
||||||
|
test('the 巢涌者 never attacks — its pulse is the only damage it deals (the operators take it)', () => {
|
||||||
|
const { h, nest } = nestFight([{ chessId: 'chess_char_4_17_a', row: 10, col: 4, skillIndex: 1 }]);
|
||||||
|
assert.equal(h.hooksOf('attack').filter((c) => c.attacker === nest).length, 0, 'no normal attack');
|
||||||
|
const pulses = h.hooksOf('damaged').filter((c) => c.source === nest && c.target.side === 'ally');
|
||||||
|
assert.ok(pulses.length >= 3, `pulses ${pulses.length}`);
|
||||||
|
assert.ok(pulses.every((c) => !c.dmg.isAttack), 'not an attack');
|
||||||
|
});
|
||||||
|
|
||||||
|
test('菲莱 S2 冥河诅咒: the pulse sets off her blast (every 2 s at most) — until 0.2.0 it never did', () => {
|
||||||
|
for (const id of ['chess_char_3_06_a', 'chess_char_3_06_b']) {
|
||||||
|
const { h, nest } = nestFight([{ chessId: id, row: 10, col: 4, skillIndex: 1 }], { cast: id });
|
||||||
|
const u = h.unit(id);
|
||||||
|
const n = pulsesOn(h, nest, u);
|
||||||
|
const blasts = fromTo(h, u, nest, tagged('counter'));
|
||||||
|
assert.ok(n >= 4, `${id}: ${n} pulses`);
|
||||||
|
assert.equal(blasts.length, Math.ceil(n / 2), `${id}: ${blasts.length} blasts for ${n} pulses a second apart (aoe_cd 2 s)`);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
test('星熊 S2 荆棘, 泡泡 “挨打” (+ 尖刺盾), 余 S1, 玛恩纳 无动于衷: each answers the pulse', () => {
|
||||||
|
const each = (label, f, unitId, pred) => {
|
||||||
|
const u = f.h.unit(unitId), n = pulsesOn(f.h, f.nest, u);
|
||||||
|
assert.ok(n >= 4, `${label}: ${n} pulses`);
|
||||||
|
assert.equal(fromTo(f.h, u, f.nest, pred).length, n, `${label}: one answer per pulse`);
|
||||||
|
};
|
||||||
|
each('星熊 S2 荆棘', nestFight([{ chessId: 'chess_char_4_17_a', row: 10, col: 4, skillIndex: 1 }]), 'chess_char_4_17_a', tagged('counter'));
|
||||||
|
const bb = nestFight([{ chessId: 'chess_char_2_08_a', row: 10, col: 4, skillIndex: 1 }], { cast: 'chess_char_2_08_a' });
|
||||||
|
each('泡泡 S2 “挨打”', bb, 'chess_char_2_08_a', tagged('counter'));
|
||||||
|
assert.ok(bb.nest.findBuff('bubble:spike'), '泡泡 尖刺盾 on the pulse\'s source');
|
||||||
|
// 余 S1 — the 灼燃损伤 rider: once the 巢涌者's gauge bursts, its 爆发冷却 refuses further fills, so count the answers that landed
|
||||||
|
const yu = nestFight([{ chessId: 'chess_char_6_03_a', row: 10, col: 4, skillIndex: 0 }], { cast: 'chess_char_6_03_a' });
|
||||||
|
const yuN = fromTo(yu.h, yu.h.unit('chess_char_6_03_a'), yu.nest, (c) => c.type === 'element').length;
|
||||||
|
assert.ok(yuN >= 3, `余 S1 灼燃损伤: ${yuN} answers`);
|
||||||
|
each('玛恩纳 无动于衷', nestFight([{ chessId: 'chess_char_5_19_a', row: 10, col: 4 }]), 'chess_char_5_19_a', tagged('reflect'));
|
||||||
|
});
|
||||||
|
|
||||||
|
test('刺玫 S2 荆藤庇荫: a pulse on her protégé is answered (the counter names the protégé for her trait heal)', () => {
|
||||||
|
const { h, nest } = nestFight([
|
||||||
|
{ chessId: 'chess_char_1_06_a', row: 10, col: 3, skillIndex: 1 },
|
||||||
|
{ chessId: 'chess_char_4_17_a', row: 10, col: 4, skillIndex: 0 },
|
||||||
|
], { cast: 'chess_char_1_06_a' });
|
||||||
|
const v = h.unit('chess_char_1_06_a'), p = v.mem.protege;
|
||||||
|
assert.ok(p && p.defId === 'chess_char_4_17_a', 'the protégé');
|
||||||
|
const hits = fromTo(h, v, nest, tagged('counter'));
|
||||||
|
const n = pulsesOn(h, nest, p);
|
||||||
|
assert.ok(n >= 4, `${n} pulses on the protégé`);
|
||||||
|
assert.equal(hits.length, n, `one counter per pulse on the protégé (${hits.length})`);
|
||||||
|
assert.ok(hits.every((c) => c.dmg.traitAlly === p));
|
||||||
|
});
|
||||||
|
|
||||||
|
test('自选 年 S2 铜印 and 斩业星熊 S1 恶业苦果 answer the pulse too', () => {
|
||||||
|
const ni = nestFight([{ diy: { slot: 6, charId: 'char_2014_nian', skillIndex: 1 }, row: 10, col: 4 }]);
|
||||||
|
const n = ni.h.allies().find((u) => u.def?.charId === 'char_2014_nian' || u.charId === 'char_2014_nian' || /nian/.test(u.def?.diy?.charId ?? ''));
|
||||||
|
assert.ok(n, '年 fielded');
|
||||||
|
n.skill.gainSp(999, 'test');
|
||||||
|
if (!n.skill.active) n.skill.activate('test');
|
||||||
|
const before = pulsesOn(ni.h, ni.nest, n);
|
||||||
|
ni.h.run(6);
|
||||||
|
assert.ok(fromTo(ni.h, n, ni.nest, tagged('counter')).length >= pulsesOn(ni.h, ni.nest, n) - before && pulsesOn(ni.h, ni.nest, n) - before >= 4, '年 S2');
|
||||||
|
assert.ok(ni.nest.findBuff('silence') || ni.nest.s.flags.silence, '年 S2 silences the source');
|
||||||
|
|
||||||
|
const hm = nestFight([{ diy: { slot: 6, charId: 'char_1044_hsgma2', skillIndex: 0 }, row: 10, col: 4 }]);
|
||||||
|
const s = hm.h.allies()[0];
|
||||||
|
s.skill.gainSp(999, 'test');
|
||||||
|
if (!s.skill.active) s.skill.activate('test');
|
||||||
|
const before2 = pulsesOn(hm.h, hm.nest, s);
|
||||||
|
hm.h.run(6);
|
||||||
|
assert.ok(fromTo(hm.h, s, hm.nest, tagged('counter')).length >= pulsesOn(hm.h, hm.nest, s) - before2 && pulsesOn(hm.h, hm.nest, s) - before2 >= 4, '斩业星熊 S1');
|
||||||
|
});
|
||||||
|
|
||||||
|
test('never a 流失: an enemy\'s HP loss on 星熊 sets no 荆棘 off; another counter / reflection does not either', () => {
|
||||||
|
const h = makeBattle({ seed: 7, autoFinish: false, timeLimit: 60, captureNoisy: true, hooks: ['damaged'],
|
||||||
|
units: [{ chessId: 'chess_char_4_17_a', row: 10, col: 4, skillIndex: 1 }] });
|
||||||
|
h.step();
|
||||||
|
const nest = h.spawn(NEST, { pos: [10, 8], mods: { speedMul: 0 } }); // out of pulse range
|
||||||
|
const u = h.unit('chess_char_4_17_a');
|
||||||
|
u.skill.gainSp(999, 'test');
|
||||||
|
if (!u.skill.active) u.skill.activate('test');
|
||||||
|
h.step();
|
||||||
|
h.b.loseHp(u, 10, { source: nest });
|
||||||
|
h.b.dealDamage(nest, u, { amount: 10, type: 'true', tags: ['counter'] });
|
||||||
|
h.b.dealDamage(nest, u, { amount: 10, type: 'true', tags: ['reflect'] });
|
||||||
|
assert.equal(fromTo(h, u, nest, tagged('counter')).length, 0, 'none of the three');
|
||||||
|
h.b.dealDamage(nest, u, { amount: 10, type: 'true' }); // (true damage: her 战术装甲 negates only phys / arts)
|
||||||
|
assert.equal(fromTo(h, u, nest, tagged('counter')).length, 1, 'a plain damage instance does');
|
||||||
|
checkInvariants(h.b);
|
||||||
|
});
|
||||||
Reference in new issue
Block a user