fix: include Vulpisfoglia Hunt addition on first damage

This commit is contained in:
星闌 committed 2026-10-11 12:48:59 +08:00
1 parent bc50cac01f
commit b87fcb3ac9
9 files changed
+250 -129

No files matched your search

+5
View File
@@ -1065,6 +1065,11 @@ has the generic spec. Summons: `battle.tokenDef(tokenId, unit)` / `battle.spawnT
(token skill of that slot: `variants[owner].bySkill[i]`, module attributes: `.byModule[id]`). Coverage of the selectable
skills: `node tools/kit-coverage.mjs --missing [--tier N] [--strict]`.
忍冬's 追凶 records the per-enemy start time and applies its arts addition in the same `damaged` callback,
including the first instance (PRTS talent remarks; DESIGN §29.15). It does not refresh the ten-second window on
repeated hits. Its `vulpisHunt` / `addition` tags and re-entrancy guard prevent the rider from feeding itself.
`test/content/vulpis-first-hit.test.js` checks actual HP loss and damage events with naturally ready skills.
Timed deployment kits: 宴 S2 uses `bb.duration` and skill ATK mods, loses current HP once on landing, and converts normal
physical attacks to arts only while S2 is active; S1 has no such conversion. 斯卡蒂 S2 uses its own record's
`s.bb.duration` / `s.bb.atk`; DRE-Y revival in place does not restart it. 野鬃 S1 uses its record's `duration` /
+2
View File
@@ -172,6 +172,8 @@ Profession traits (default behaviours implemented once in the engine, keyed by `
Each domain file `server/sim/content/{tokens,bonds,garrisons,items,bands,enemies,bosses,devices,choices}.js` exports `install(battle)` (battle side; called once per Battle by `content/index.js → installContent`) and `registerMeta(registry)` (prep side; called once at server boot by `match/effectsMeta.js`, API documented in `docs/META.md`). Kits live one per file in `content/kits/ops/` (`export default { [baseChessId]: (bb, chess, def) => Kit }`), listed in `content/kits/index.js` (guide: `content/kits/README.md`). Content must be **data-driven from blackboards** (numbers never hard-coded when a blackboard key exists). Every effect gets at least one unit test in `test/content/*.test.js` using the `test/helpers/battleHarness.js` harness (provided by sim-core).
- kits: all 112 visible chess + hidden ones used by effects (盟约·辅助干员), default skill + talents + trait specifics; tokens. The 72 non-collaboration 6★ DIY operators include 克莱门莎 (§28.1); her launch-day provisional mechanics are local to her kit. 黍 GUA-Y and 乌尔比安 CRU-Y follow the generated module blackboards and existing module-level rules (§28.2).
忍冬's 追凶 adds arts damage on the first qualifying instance too; the per-enemy window starts on that instance,
and repeated hits do not extend it. The addition keeps its own tag and re-entrancy guard (§29.15).
克莱门莎 S2 removes dead, hidden, self-bound / teleport-immune and unreachable passengers before checking new
boarding in the same tick. Each released passenger returns its current weight to the cabin's remaining budget
and frees its slot (§28.27); neither corpses nor failed carries reserve capacity.
+19
View File
@@ -274,3 +274,22 @@ enemy: picking emitted a unit click with no definition, instead of the tile clic
engine-canvas regression retains the card/100 HP assertions and also covers another field refresh, live HP loss and
closing the card when the crate is destroyed. Device metadata supplied by the new entry still wins; changing fields
does not carry old devices across. Gameplay and allied targeting rules are unchanged.
### 29.15 Vulpisfoglia's first Hunt instance
[PRTS 忍冬](https://prts.wiki/w/忍冬), 追凶's remarks, includes the first damage instance in its arts addition.
The mode's generated talent blackboard (`chess_char_3_18_a/b`, `atk_scale` 0.3, `interval` 10) supplies the numbers;
no mode-specific first-hit exception was found. The old callback recorded the first timestamp and returned,
skipping the addition on every new enemy. Kit hooks are installed before initial deployment, so this was not a
delayed stat or talent installation.
The callback now records the timestamp and continues to the existing addition path on that same instance.
The fixed window, damage tags, dodge settings and recursion guard retain their previous behavior; skills,
modules and other operators are unchanged. Full-content controlled-enemy tests cover ordinary first hits in both
forms and all selectable modules/skills, first skill damage from S1–S3, per-enemy timing and actual HP/event totals.
The existing HP-loss conversion regression now expects one rider on every attack, including the first.
The intended golden moves are `roster-007/009/026/039`, `bond-soloShip-low`, `bond-yanShip-low`,
`coop2-NORMAL-3`, `coop4-ABYSS-7` and `coop2-NORMAL-5-coverage-diy`: the extra first instance changes damage,
kills and downstream battle/match choices in scenarios that field Vulpisfoglia. Fields, stand-ins and DIY
scenarios retain their digests.
@@ -94,8 +94,9 @@ export default {
battle.on('damaged', (ctx) => {
const e = ctx.target;
if (busy || ctx.source !== unit || e.side !== 'enemy' || ctx.type === 'element' || ctx.dmg?.tags?.includes('vulpisHunt')) return;
const t = marks.get(e.id);
if (t == null) { marks.set(e.id, battle.time); return; }
let t = marks.get(e.id);
// PRTS talent remarks: the first damage instance also receives the arts addition.
if (t == null) { t = battle.time; marks.set(e.id, t); }
if (battle.time - t <= num(t0.interval, 10) + 1e-9 && e.alive) {
busy = true;
// PRTS 备注 "伤害类型为法术附加伤害": tag addition (no 叙拉古 6 roll)
+2 -2
View File
@@ -1249,7 +1249,7 @@ test('忍冬 追凶 never feeds on itself: a hit turned into HP loss credited to
const e = h.enemy('enemy_times');
const atks = u.stats.attacks;
assert.ok(atks >= 3);
// first attack marks the enemy (1 HP), every later attack: 1 HP + one 追凶 bonus instance (1 HP)
assert.equal(e.s.maxHp - e.hp, 1 + 2 * (atks - 1));
// Every attack, the first included: 1 HP + one 追凶 bonus instance (1 HP), never recursive bonuses.
assert.equal(e.s.maxHp - e.hp, 2 * atks);
done(h);
});
+94
View File
@@ -0,0 +1,94 @@
// 追凶's first damage instance also carries its arts addition (PRTS 忍冬, talent remarks).
// Real full-content battles with controlled durable enemies; no HP/SP/ATK writes or forced casts.
import { test } from 'node:test';
import assert from 'node:assert/strict';
import { makeBattle, enemyRec, checkInvariants } from '../helpers/battleHarness.js';
const NORMAL = 'chess_char_3_18_a';
const ELITE = 'chess_char_3_18_b';
const ENEMY = 'enemy_vulpis_probe';
const approx = (a, b) => assert.ok(Math.abs(a - b) < 1e-6, `${a} vs ${b}`);
const hunt = (c) => c.dmg?.tags?.includes('vulpisHunt');
const finished = (h) => { assert.deepEqual(h.b.errors, []); checkInvariants(h.b); };
function scenario(entry = {}, enemy = {}) {
return makeBattle({
units: [{ chessId: NORMAL, row: 10, col: 4, ...entry }],
defs: { enemies: { [ENEMY]: enemyRec({ key: ENEMY, hp: 1e7, speed: 0, ...enemy }) } },
autoFinish: false, timeLimit: 40, flags: { startOpCooldown: 3 }, hooks: ['damaged'], captureNoisy: true,
});
}
const variants = [
{ label: 'normal', chessId: NORMAL },
{ label: 'elite without module', chessId: ELITE, moduleId: 'none' },
{ label: 'elite SOL-X', chessId: ELITE, moduleId: 'uniequip_002_vulpis' },
{ label: 'elite SOL-Y', chessId: ELITE, moduleId: 'uniequip_003_vulpis' },
];
for (const { label, ...entry } of variants) for (const skillIndex of [0, 1, 2]) {
test(`追凶: first ordinary hit includes one arts addition (${label}, S${skillIndex + 1})`, () => {
const h = scenario({ ...entry, skillIndex });
h.step();
const u = h.unit(entry.chessId);
if (entry.moduleId) assert.equal(u.def.loadout.moduleId, entry.moduleId, 'the requested module is equipped');
const e = h.spawn(ENEMY, { pos: [10, 5] });
const hp = e.hp;
assert.ok(h.runUntil(() => h.hooksOf('damaged').some((c) => c.source === u), 1));
const hits = h.hooksOf('damaged').filter((c) => c.source === u);
const main = hits.filter((c) => !hunt(c));
assert.equal(main.length, 1, 'one ordinary attack');
assert.equal(main[0].dmg.isSkill, false, 'no skill at the first hit');
assert.equal(main[0].type, 'phys');
assert.ok(e.alive && e.hp > 0, 'the first attack did not kill the target');
const riders = hits.filter(hunt);
assert.equal(riders.length, 1, 'the very first hit carries 追凶');
assert.equal(riders[0].t, main[0].t);
assert.equal(riders[0].type, 'arts');
assert.ok(riders[0].dmg.tags.includes('addition'));
approx(riders[0].amount, u.s.atk * u.def.talents[0].bb.atk_scale);
approx(hp - e.hp, main[0].amount + riders[0].amount);
assert.equal(h.eventsOf('dmg').filter((c) => c[1] === e.id).length, 2, 'both actual damage events exist');
finished(h);
});
}
for (const chessId of [NORMAL, ELITE]) for (const skillIndex of [0, 1, 2]) {
test(`追凶: first skill damage carries its addition (${chessId}, S${skillIndex + 1})`, () => {
const h = scenario({ chessId, skillIndex });
h.run(16); // every selected skill is naturally ready, with no enemies yet
const u = h.unit(chessId);
const e = h.spawn(ENEMY, { pos: [10, skillIndex === 1 ? 7 : skillIndex === 2 ? 6 : 5] });
const hp = e.hp;
assert.ok(h.runUntil(() => h.hooksOf('damaged').some((c) => c.source === u && c.dmg.isSkill), 2));
const hits = h.hooksOf('damaged').filter((c) => c.source === u && c.target === e);
const main = hits.filter((c) => !hunt(c));
assert.ok(main.some((c) => c.dmg.isSkill));
// S1 has a physical attack and a separate arts skill instance; S2/S3 have one main instance each.
assert.equal(main.length, skillIndex === 0 ? 2 : 1);
const riders = hits.filter(hunt);
assert.equal(riders.length, main.length, 'one addition per qualifying damage instance, including the first');
for (const c of riders) approx(c.amount, u.s.atk * u.def.talents[0].bb.atk_scale);
approx(hp - e.hp, hits.reduce((s, c) => s + c.amount, 0));
assert.ok(e.alive && e.hp > 0);
finished(h);
});
}
test('追凶: each enemy starts its own fixed window; repeated damage does not extend it', () => {
const h = scenario();
h.step();
const u = h.unit(NORMAL);
const e = h.spawn(ENEMY, { pos: [10, 5] });
h.run(12);
const main = h.hooksOf('damaged').filter((c) => c.source === u && c.target === e && !hunt(c));
const riders = h.hooksOf('damaged').filter((c) => c.source === u && c.target === e && hunt(c));
assert.ok(main.some((c) => c.t > main[0].t + 10));
assert.equal(riders.length, main.filter((c) => c.t - main[0].t <= 10 + 1e-9).length);
assert.ok(riders.every((c) => c.t - main[0].t <= 10 + 1e-9));
const another = h.spawn(ENEMY, { pos: [10, 6] });
// Naturally ready S3 can reach both enemies; the new target gets its own first-hit addition.
assert.ok(h.runUntil(() => h.hooksOf('damaged').some((c) => c.target === another), 10));
const first = h.hooksOf('damaged').filter((c) => c.target === another);
assert.equal(first.filter(hunt).length, 1);
assert.equal(first.filter(hunt)[0].t, first.find((c) => !hunt(c)).t);
finished(h);
});
+17 -17
View File
@@ -1285,20 +1285,20 @@
["p1",1,"op","chess_char_3_16_a",1,null,2987.88,1,3,0,0,0,0,0,0],
["p1",2,"op","chess_char_4_01_a",2,null,4077.11,1,5,2,8508,566,0,10,1],
["p1",3,"op","chess_char_1_08_a",1,null,0,0,6,1,7992,2615,0,13,1],
["p1",4,"op","chess_char_3_18_a",2,null,0,0,10,5,39236,2036,0,38,1],
["p1",4,"op","chess_char_3_18_a",2,null,0,0,10,5,40927,2036,0,38,1],
["p1",5,"op","chess_char_3_19_a",2,null,1978.63,1,7,2,10333,0,0,21,1],
["p1",6,"op","chess_char_3_20_a",1,null,1541.38,1,9,2,682,0,0,8,1],
["p1",7,"op","chess_char_3_21_a",2,null,1875.5,1,11,1,19449,0,0,23,1],
["p1",8,"op","chess_char_4_02_a",2,null,1963.5,1,4,4,38728,0,0,7,1],
["p1",8,"op","chess_char_4_02_a",2,null,1963.5,1,4,4,37037,0,0,7,1],
["p1",9,"token","token_10028_vigil_wolf",null,null,852.9,1,8,0,1216,27,0,2,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]
],
"enemies": {"enemy_1116_liprr":[11,11,0,41,69696],"enemy_1116_liprr_2":[4,4,0,297,34560],"enemy_1118_lidbox_2":[2,2,0,4906,21888]},
"hooks": [1,28,1502,150,150,266,266,0,19,19,7,4,3,6742,32,17,17,0,1,23,2,0,0],
"events": {"atk":187,"deploy":9,"die":19,"dmg":264,"engage":8,"fx":39,"layer":2,"skill":11,"spawn":28,"status":98},
"fx": {"aoe":1,"camouflage":1,"counter":3,"displace":17,"dp":2,"garrison":2,"liberate":2,"phase":3,"ripple":4,"sermon":1,"shield":2,"wolfShadow":1},
"snaps": "a9326071 61ede413 67d5b134 ed466837 32fec6af"
"hooks": [1,28,1502,150,150,266,266,0,19,19,7,4,3,6742,29,17,17,0,1,20,2,0,0],
"events": {"atk":183,"deploy":9,"die":19,"dmg":264,"engage":8,"fx":38,"layer":2,"skill":11,"spawn":28,"status":92},
"fx": {"aoe":1,"camouflage":1,"counter":3,"displace":16,"dp":2,"garrison":2,"liberate":2,"phase":3,"ripple":4,"sermon":1,"shield":2,"wolfShadow":1},
"snaps": "a9326071 ba5f4858 674158f2 668d5d48 ab9377c5"
},
"bond-soloShip-high": {
"about": "独行 high: tier 1 layers 999; chess_char_5_19_b chess_char_1_08_b chess_char_5_13_b chess_char_5_14_b chess_char_5_17_b chess_char_5_12_b chess_char_5_15_b chess_char_5_20_b",
@@ -1744,8 +1744,8 @@
"round": 5,
"seed": 1009948961,
"waveId": "act1autochess_05",
"time": 54.6,
"ticks": 1638,
"time": 54.17,
"ticks": 1625,
"reason": "cleared",
"killed": 22,
"total": 22,
@@ -1753,15 +1753,15 @@
"bossHpLeft": null,
"rngDraws": 0,
"errors": {"count":0,"kinds":[]},
"players": {"p1":{"killed":22,"total":22,"perfect":true,"leaks":0,"leaksUncounted":0,"coins":0,"dmg":91008,"bossDmg":0,"heal":38,"deaths":0,"layerGains":{}}},
"players": {"p1":{"killed":22,"total":22,"perfect":true,"leaks":0,"leaksUncounted":0,"coins":0,"dmg":91008,"bossDmg":0,"heal":3,"deaths":0,"layerGains":{}}},
"units": [
["p1",1,"op","chess_char_3_16_a",1,null,2390.3,1,8,0,0,0,0,0,0],
["p1",2,"op","chess_char_3_03_a",1,null,1515.8,1,9,3,14449,0,0,22,0],
["p1",3,"op","chess_char_3_18_a",2,null,583.3,1,10,7,26209,1084,38,38,2],
["p1",4,"op","chess_char_1_03_a",1,null,1145.1,1,4,1,3119,0,0,4,1],
["p1",2,"op","chess_char_3_03_a",1,null,1515.8,1,9,4,13532,0,0,21,0],
["p1",3,"op","chess_char_3_18_a",2,null,548.01,1,10,5,26735,1084,3,36,2],
["p1",4,"op","chess_char_1_03_a",1,null,1145.1,1,4,2,2971,0,0,4,1],
["p1",5,"op","chess_char_2_04_a",1,null,1074.7,1,5,0,0,0,0,0,0],
["p1",6,"op","chess_char_3_14_a",1,null,1376.1,1,11,3,6509,0,0,28,1],
["p1",7,"op","chess_char_3_17_a",1,null,2470.6,1,12,8,40722,0,0,46,3],
["p1",6,"op","chess_char_3_14_a",1,null,1376.1,1,11,3,6548,0,0,28,1],
["p1",7,"op","chess_char_3_17_a",1,null,2470.6,1,12,8,41222,0,0,46,3],
["p1",8,"op","chess_char_3_19_a",2,null,1582.9,1,6,0,0,0,0,0,1],
["p1",9,"token","token_10028_vigil_wolf",null,null,880,1,7,0,0,0,0,0,null],
["-","~1","device","trap_1105_accrate",null,null,100,1,1,0,0,0,0,0,null],
@@ -1769,10 +1769,10 @@
["-","~3","device","trap_1105_accrate",null,null,100,1,3,0,0,0,0,0,null]
],
"enemies": {"enemy_1166_dusbr":[15,15,0,54,51840],"enemy_1169_duphlx":[5,5,0,0,23040],"enemy_1170_dushld":[2,2,0,1030,16128]},
"hooks": [1,34,1638,145,145,225,225,14,22,22,8,6,0,6587,37,4,22,0,1,28,0,0,0],
"events": {"atk":181,"deploy":9,"die":22,"dmg":225,"engage":5,"fx":8,"skill":14,"spawn":34,"status":107},
"hooks": [1,34,1625,142,142,233,233,1,22,22,8,6,0,6560,35,4,22,0,1,26,0,0,0],
"events": {"atk":177,"deploy":9,"die":22,"dmg":233,"engage":5,"fx":8,"skill":14,"spawn":34,"status":102},
"fx": {"camouflage":1,"dp":3,"volley":3,"wolfShadow":1},
"snaps": "f3cb4a09 d9ee8095 8cf05251 475fb772 f816b385 6d26de1c"
"snaps": "f3cb4a09 ead3ba17 97f1f28e 6f24aae2 b498c568 eb22abcb"
},
"bond-yanShip-high": {
"about": "炎 high: tier 3 layers 999; chess_char_4_17_b chess_char_6_03_b chess_char_3_03_b chess_char_3_04_b chess_char_1_03_b chess_char_2_04_b chess_char_5_03_b chess_char_5_12_b chess_char_5_23_b",
+32 -32
View File
@@ -522,8 +522,8 @@
"combat": "client",
"boost": null,
"setup": {"stageId":"act2autochess_m04","bossId":"boss_3","hiddenBossId":"boss_8","factions":["FLY","TIMES","DOT"]},
"end": {"victory":true,"roundsPassed":14,"hiddenReached":false,"hiddenCleared":false,"reason":"victory","teamLp":51,"bossPoolLeft":0,"virtualMs":121400},
"rng": {"setup":25,"shop":487,"waves":0,"draft":40,"bots":21624,"meta":2},
"end": {"victory":true,"roundsPassed":14,"hiddenReached":false,"hiddenCleared":false,"reason":"victory","teamLp":49,"bossPoolLeft":0,"virtualMs":121400},
"rng": {"setup":25,"shop":535,"waves":0,"draft":40,"bots":21598,"meta":11},
"errors": {"engine":0,"logged":0,"sim":0,"dispatcher":0},
"rounds": [
{
@@ -564,32 +564,32 @@
{
"round": 8,
"ai_0": [1,45,13,0,0,4,8,"6c88ecba",62,"arcaneShip 1/6, lateranoShip 1/8, preciShip 0/10, raidShip 1/5, sargonShip 0/10, siracusaShip 1/18, soloShip 1/6, steadShip 0/3, suntShip 1/0, swiftShip 1/19",19,19,0,66],
"ai_1": [1,28,12,0,0,4,8,"f54970b9",27,"arcaneShip 0/2, deputShip 0/3, kazimierzShip 0/4, kjeragShip 1/4, preciShip 0/12, sargonShip 0/10, siracusaShip 0/6, soloShip 1/0, steadShip 1/8, swiftShip 1/10, victoriaShip 0/3, visiShip 1/5",18,19,1,63]
"ai_1": [1,28,12,0,0,4,8,"a7744aff",28,"arcaneShip 0/2, deputShip 0/3, kazimierzShip 0/4, kjeragShip 1/4, preciShip 0/12, sargonShip 0/10, siracusaShip 0/6, soloShip 1/0, steadShip 1/9, swiftShip 1/10, victoriaShip 0/3, visiShip 1/5",17,19,2,63]
},
{
"round": 9,
"ai_0": [1,45,12,0,3,4,8,"c2512400",74,"arcaneShip 1/12, lateranoShip 1/8, preciShip 0/10, raidShip 1/5, sargonShip 0/10, siracusaShip 1/24, soloShip 1/6, steadShip 0/3, suntShip 1/0, swiftShip 1/19",17,20,3,78],
"ai_1": [1,28,12,0,3,4,8,"47bdf5df",38,"arcaneShip 1/16, deputShip 0/3, kazimierzShip 0/4, kjeragShip 1/4, preciShip 0/12, sargonShip 0/10, siracusaShip 0/6, soloShip 1/0, steadShip 1/8, suntShip 1/0, swiftShip 0/10, victoriaShip 0/3, visiShip 1/10",20,20,0,77]
"ai_1": [1,28,12,0,3,4,8,"05d077ca",49,"arcaneShip 1/16, deputShip 0/3, kazimierzShip 0/4, kjeragShip 0/4, preciShip 0/12, sargonShip 0/10, siracusaShip 1/12, soloShip 1/0, steadShip 1/11, suntShip 1/0, swiftShip 0/10, victoriaShip 0/3, visiShip 1/10",20,20,0,77]
},
{
"round": 10,
"ai_0": [1,45,15,0,0,5,8,"4b7370c2",82,"arcaneShip 1/16, lateranoShip 1/8, preciShip 0/10, raidShip 1/5, sargonShip 0/10, siracusaShip 1/28, soloShip 1/6, steadShip 0/3, suntShip 1/0, swiftShip 1/19, visiShip 1/0",6,8,2,92],
"ai_1": [1,28,15,0,2,5,8,"5066a6c4",54,"arcaneShip 1/20, deputShip 0/3, kazimierzShip 0/4, kjeragShip 0/6, preciShip 0/12, sargonShip 0/10, siracusaShip 1/8, soloShip 1/0, steadShip 1/11, suntShip 1/0, swiftShip 0/10, victoriaShip 0/3, visiShip 1/15",8,8,0,91]
"ai_0": [1,43,15,0,0,5,8,"4b7370c2",82,"arcaneShip 1/16, lateranoShip 1/8, preciShip 0/10, raidShip 1/5, sargonShip 0/10, siracusaShip 1/28, soloShip 1/6, steadShip 0/3, suntShip 1/0, swiftShip 1/19, visiShip 1/0",6,8,2,92],
"ai_1": [1,26,15,0,2,5,8,"e9d17281",73,"arcaneShip 2/30, deputShip 0/3, kazimierzShip 0/8, kjeragShip 0/4, preciShip 0/12, sargonShip 0/10, siracusaShip 1/14, soloShip 1/0, steadShip 0/11, suntShip 1/0, swiftShip 1/14, victoriaShip 0/3, visiShip 1/15",6,8,2,91]
},
{
"round": 11,
"ai_0": [1,45,12,0,0,5,8,"dcb718bd",113,"arcaneShip 1/24, lateranoShip 1/8, preciShip 0/10, raidShip 1/5, sargonShip 0/10, siracusaShip 1/42, soloShip 1/6, steadShip 1/3, suntShip 1/0, swiftShip 1/25",23,23,0,105],
"ai_1": [1,28,14,0,2,5,8,"e3e0465d",90,"arcaneShip 1/34, deputShip 0/3, kazimierzShip 0/4, kjeragShip 0/6, preciShip 0/12, sargonShip 0/10, siracusaShip 1/14, soloShip 1/0, steadShip 0/11, swiftShip 1/22, victoriaShip 0/3, visiShip 1/20",23,23,0,105]
"ai_0": [1,43,12,0,1,5,8,"fadbd916",105,"arcaneShip 1/24, lateranoShip 1/8, preciShip 0/10, raidShip 1/7, sargonShip 0/10, siracusaShip 1/36, soloShip 1/6, steadShip 1/5, suntShip 1/0, swiftShip 1/19",23,23,0,103],
"ai_1": [1,26,14,0,2,5,8,"4d7ce6c8",93,"arcaneShip 2/46, deputShip 0/3, kazimierzShip 0/8, kjeragShip 0/4, preciShip 0/12, sargonShip 0/10, siracusaShip 1/18, soloShip 1/0, steadShip 0/11, suntShip 1/0, swiftShip 1/14, victoriaShip 0/3, visiShip 1/15",20,23,3,105]
},
{
"round": 12,
"ai_0": [1,45,12,0,0,6,8,"396b1bd7",113,"arcaneShip 1/24, lateranoShip 1/8, preciShip 0/10, raidShip 1/5, sargonShip 0/10, siracusaShip 1/42, soloShip 1/6, steadShip 1/3, suntShip 1/0, swiftShip 1/25",105,32,0,116],
"ai_1": [1,28,14,0,0,6,8,"27b22698",78,"arcaneShip 1/36, deputShip 0/3, kazimierzShip 0/4, kjeragShip 1/6, preciShip 0/12, sargonShip 0/10, siracusaShip 0/14, soloShip 1/0, steadShip 1/11, suntShip 1/0, swiftShip 0/22, victoriaShip 0/3, visiShip 1/25",95,32,10,118]
"ai_0": [1,43,13,0,2,6,8,"6d080195",123,"arcaneShip 1/28, lateranoShip 1/8, preciShip 0/10, raidShip 1/12, sargonShip 0/10, siracusaShip 1/40, soloShip 1/6, steadShip 1/10, suntShip 1/0, swiftShip 1/19",104,32,1,116],
"ai_1": [1,26,14,0,0,6,8,"b95f0a7a",105,"arcaneShip 2/54, deputShip 0/3, kazimierzShip 0/12, kjeragShip 0/4, preciShip 0/12, sargonShip 0/10, siracusaShip 1/18, soloShip 1/0, steadShip 0/11, suntShip 1/0, swiftShip 1/18, victoriaShip 0/3, visiShip 1/15",105,32,0,118]
},
{
"round": 13,
"ai_0": [1,35,12,0,0,6,8,"f34ca72b",143,"arcaneShip 1/36, lateranoShip 1/11, preciShip 0/10, raidShip 1/5, sargonShip 0/10, siracusaShip 1/54, soloShip 1/6, steadShip 1/3, suntShip 1/0, swiftShip 1/28, visiShip 1/0",23,34,11,128],
"ai_1": [1,18,12,0,2,6,8,"fed35118",108,"arcaneShip 1/40, deputShip 0/3, kazimierzShip 0/4, kjeragShip 1/6, preciShip 0/12, raidShip 1/21, sargonShip 0/10, siracusaShip 0/14, soloShip 1/0, steadShip 1/11, suntShip 1/0, swiftShip 0/22, victoriaShip 0/3, visiShip 1/30",11,34,23,130]
"ai_0": [1,33,14,0,0,6,8,"980dcd48",163,"arcaneShip 2/40, lateranoShip 1/8, miraShip 1/0, preciShip 0/10, raidShip 1/28, sargonShip 0/10, siracusaShip 1/52, soloShip 1/6, steadShip 1/10, suntShip 1/0, swiftShip 1/19",19,34,15,128],
"ai_1": [1,16,12,0,4,6,8,"0602e500",131,"arcaneShip 2/72, deputShip 0/3, kazimierzShip 0/12, kjeragShip 0/4, preciShip 0/12, raidShip 1/10, sargonShip 0/10, siracusaShip 1/24, soloShip 1/0, steadShip 0/11, suntShip 1/0, swiftShip 0/18, victoriaShip 0/3, visiShip 1/25",23,34,11,130]
}
],
"players": {
@@ -598,28 +598,28 @@
"victory": true,
"roundsPassed": 14,
"eliminatedRound": null,
"lp": 34,
"lp": 33,
"bandId": "band_sarkazb",
"title": {"id":"comment_2","name":"不朽盟约","picId":"comment_icon_2","text":"激活的盟约层数总和最高"},
"trophies": 4,
"reward": 400,
"stats": {"activatedLayers":162,"bossDamage":470300,"dmgDealt":3029618,"gold":139,"itemsEquipped":14,"kills":336,"leaks":16,"lpLost":10,"merges":3,"perfectRounds":10,"refreshes":21},
"lineup": ["1_01_b@11,7","4_02_a@11,8[4_03_e_b]","4_10_b@10,5[3_05_e_a+4_07_e_a]","4_01_a@10,8","3_05_a@9,4[3_11_e_a]","1_08_b@9,5[4_04_e_a+4_02_e_b]","6_04_a@9,7","3_18_a@9,9[4_04_e_b]"],
"bonds": ["arcaneShip 1/48","lateranoShip 1/11","preciShip 0/10","raidShip 0/5","sargonShip 0/10","siracusaShip 1/66","soloShip 1/6","steadShip 1/3","suntShip 1/0","swiftShip 1/28","visiShip 1/0"]
"stats": {"activatedLayers":187,"bossDamage":574046,"dmgDealt":3153026,"gold":141,"itemsEquipped":13,"kills":324,"leaks":21,"lpLost":12,"merges":3,"perfectRounds":9,"refreshes":28},
"lineup": ["1_01_b@11,7","4_02_a@11,8","4_10_b@10,5[3_06_e_a+5_02_e_b]","4_01_a@10,7","5_07_a@10,8","3_05_a@9,4[3_11_e_a]","1_08_b@9,5[4_04_e_a+4_05_e_a]","3_18_a@9,9[4_04_e_b+4_02_e_a]"],
"bonds": ["arcaneShip 2/52","lateranoShip 1/8","miraShip 1/0","preciShip 0/10","raidShip 1/28","sargonShip 0/10","siracusaShip 1/64","soloShip 1/6","steadShip 1/10","suntShip 1/0","swiftShip 1/19"]
},
"ai_1": {
"alive": true,
"victory": true,
"roundsPassed": 14,
"eliminatedRound": null,
"lp": 17,
"lp": 16,
"bandId": "band_dusk",
"title": {"id":"comment_1","name":"卫戍之星","picId":"comment_icon_1","text":"对敌方领袖造成伤害最高(仅胜利时)"},
"trophies": 4,
"reward": 400,
"stats": {"activatedLayers":131,"bossDamage":947200,"dmgDealt":3352454,"gold":144,"itemsEquipped":18,"kills":300,"leaks":34,"lpLost":10,"merges":2,"perfectRounds":10,"refreshes":22},
"lineup": ["3_14_a@12,8[2_01_e_a+4_08_e_b]","6_08_a@11,7[4_11_e_a+4_02_e_a]","5_12_a@11,8","4_10_a@10,5[4_09_e_a+1_01_e_a]","5_07_a@10,7[3_11_e_a+4_06_e_a]","4_04_a@10,8[4_04_e_a+2_03_e_a]","5_10_a@9,8","1_08_b@9,9[4_02_e_b+4_10_e_a]"],
"bonds": ["arcaneShip 2/50","deputShip 0/3","kazimierzShip 0/4","kjeragShip 0/6","preciShip 0/12","raidShip 1/26","sargonShip 0/10","siracusaShip 1/20","soloShip 1/0","steadShip 0/11","swiftShip 0/22","victoriaShip 0/3","visiShip 1/35"]
"stats": {"activatedLayers":181,"bossDamage":843454,"dmgDealt":3336088,"gold":146,"itemsEquipped":24,"kills":315,"leaks":18,"lpLost":12,"merges":4,"perfectRounds":9,"refreshes":21},
"lineup": ["6_16_a@12,8[4_03_e_a+3_07_e_a]","6_11_a@11,7","5_12_a@11,8[6_09_e_a+2_01_e_b]","4_10_a@10,5[4_09_e_a+1_01_e_b]","6_15_a@10,7[2_04_e_b]","4_04_b@10,8[4_04_e_a+4_07_e_a]","5_10_a@9,8","1_08_b@9,9[4_02_e_b]"],
"bonds": ["arcaneShip 2/92","deputShip 0/3","kazimierzShip 0/12","kjeragShip 0/4","maniShip 1/0","preciShip 0/12","raidShip 1/20","sargonShip 0/10","siracusaShip 1/30","soloShip 1/0","steadShip 0/11","suntShip 1/0","swiftShip 0/18","victoriaShip 0/3","visiShip 1/35","yanShip 1/4"]
}
}
},
@@ -1096,35 +1096,35 @@
{
"round": 7,
"ai_0": [1,28,10,0,0,4,8,"8091958a",45,"arcaneShip 0/4, kazimierzShip 0/8, kjeragShip 0/5, preciShip 2/19, suntShip 1/0, swiftShip 1/26",12,21,9,52],
"ai_1": [1,19,10,0,0,4,8,"6f0ccfc7",36,"arcaneShip 0/2, kazimierzShip 0/7, kjeragShip 0/4, preciShip 0/2, sargonShip 1/19, siracusaShip 0/6, soloShip 1/0, steadShip 2/4, swiftShip 1/13",14,21,7,51],
"ai_1": [1,20,10,0,0,4,8,"6f0ccfc7",36,"arcaneShip 0/2, kazimierzShip 0/7, kjeragShip 0/4, preciShip 0/2, sargonShip 1/19, siracusaShip 0/6, soloShip 1/0, steadShip 2/4, swiftShip 1/13",15,21,6,51],
"ai_2": [1,20,10,0,2,4,8,"2e2efaba",82,"arcaneShip 0/2, deputShip 1/23, egirShip 0/4, kazimierzShip 0/2, kjeragShip 0/12, raidShip 0/4, soloShip 1/10, steadShip 2/23, swiftShip 0/4, victoriaShip 1/26, yanShip 0/2",17,21,4,52],
"ai_3": [1,8,10,0,0,4,8,"34745c3a",14,"arcaneShip 0/2, preciShip 0/2, sargonShip 0/4, siracusaShip 1/3, soloShip 1/11, steadShip 1/0",5,21,16,49]
},
{
"round": 8,
"ai_0": [1,26,11,0,0,4,8,"c8fd6622",73,"arcaneShip 1/4, kazimierzShip 0/8, kjeragShip 1/12, preciShip 2/24, skillfulShip 0/5, suntShip 1/0, swiftShip 1/33",7,9,2,63],
"ai_1": [1,11,11,0,0,4,8,"9a145335",54,"arcaneShip 0/2, deputShip 1/2, kazimierzShip 0/7, kjeragShip 1/11, preciShip 0/2, sargonShip 1/26, siracusaShip 0/6, skillfulShip 1/7, soloShip 1/2, steadShip 1/6, swiftShip 0/13",1,9,8,60],
"ai_1": [1,12,11,0,0,4,8,"9a145335",54,"arcaneShip 0/2, deputShip 1/2, kazimierzShip 0/7, kjeragShip 1/11, preciShip 0/2, sargonShip 1/26, siracusaShip 0/6, skillfulShip 1/7, soloShip 1/2, steadShip 1/6, swiftShip 0/13",1,9,8,60],
"ai_2": [1,19,13,0,0,4,8,"b6617ece",118,"arcaneShip 1/8, deputShip 1/27, egirShip 0/6, kazimierzShip 0/2, kjeragShip 0/14, lateranoShip 0/2, raidShip 0/6, soloShip 1/12, steadShip 1/33, suntShip 1/2, swiftShip 0/4, victoriaShip 1/36, yanShip 0/10",8,9,1,66],
"ai_3": [0,0,11,0,0,4,0,"811c9dc5",0,"arcaneShip 0/2, kjeragShip 0/5, preciShip 0/2, sargonShip 0/4, siracusaShip 0/7, skillfulShip 0/5, soloShip 0/12",0,9,9,59]
},
{
"round": 9,
"ai_0": [1,26,12,0,2,4,8,"2ff9d045",108,"arcaneShip 1/8, kazimierzShip 0/8, kjeragShip 1/19, preciShip 2/33, skillfulShip 1/10, suntShip 1/0, swiftShip 1/38",9,19,10,74],
"ai_1": [1,10,12,0,0,4,8,"08726f68",90,"arcaneShip 0/2, deputShip 2/6, kazimierzShip 0/7, kjeragShip 1/15, preciShip 0/2, sargonShip 1/48, siracusaShip 0/6, skillfulShip 1/11, soloShip 0/2, steadShip 1/10, swiftShip 0/13",14,19,5,72],
"ai_1": [1,11,12,0,0,4,8,"08726f68",90,"arcaneShip 0/2, deputShip 2/6, kazimierzShip 0/7, kjeragShip 1/15, preciShip 0/2, sargonShip 1/48, siracusaShip 0/6, skillfulShip 1/11, soloShip 0/2, steadShip 1/10, swiftShip 0/13",14,19,5,72],
"ai_2": [1,19,12,0,1,4,8,"820dc650",123,"arcaneShip 1/12, deputShip 0/27, egirShip 0/8, indomShip 1/12, kazimierzShip 0/2, kjeragShip 0/20, lateranoShip 0/4, raidShip 0/6, soloShip 1/12, steadShip 1/45, suntShip 1/2, swiftShip 0/4, victoriaShip 1/40, yanShip 0/10",19,19,0,78],
"ai_3": [0,0,0,0,0,4,0,"811c9dc5",0,"arcaneShip 0/2, kjeragShip 0/5, preciShip 0/2, sargonShip 0/4, siracusaShip 0/7, skillfulShip 0/5, soloShip 0/12",null,null,null,59]
},
{
"round": 10,
"ai_0": [1,26,14,0,0,5,8,"9a50fda6",139,"arcaneShip 1/8, kazimierzShip 0/8, kjeragShip 1/30, preciShip 2/38, skillfulShip 1/20, suntShip 1/0, swiftShip 1/43",25,25,0,88],
"ai_1": [1,10,12,0,0,5,8,"07d01884",128,"arcaneShip 0/2, deputShip 2/10, kazimierzShip 0/7, kjeragShip 1/19, preciShip 0/2, sargonShip 1/70, siracusaShip 0/6, skillfulShip 1/15, soloShip 0/2, steadShip 1/14, swiftShip 0/13",25,25,0,83],
"ai_1": [1,11,12,0,0,5,8,"07d01884",128,"arcaneShip 0/2, deputShip 2/10, kazimierzShip 0/7, kjeragShip 1/19, preciShip 0/2, sargonShip 1/70, siracusaShip 0/6, skillfulShip 1/15, soloShip 0/2, steadShip 1/14, swiftShip 0/13",25,25,0,83],
"ai_2": [1,19,13,0,0,5,8,"27c37702",162,"arcaneShip 0/12, deputShip 0/29, egirShip 0/8, indomShip 1/27, investShip 0/2, kazimierzShip 0/2, kjeragShip 1/22, lateranoShip 0/4, raidShip 0/6, soloShip 1/14, steadShip 1/53, suntShip 1/2, swiftShip 0/6, victoriaShip 1/44, yanShip 0/10",25,25,0,90],
"ai_3": [0,0,0,0,0,4,0,"811c9dc5",0,"arcaneShip 0/2, kjeragShip 0/5, preciShip 0/2, sargonShip 0/4, siracusaShip 0/7, skillfulShip 0/5, soloShip 0/12",null,null,null,59]
},
{
"round": 11,
"ai_0": [1,26,12,0,0,5,8,"3fb16be0",147,"arcaneShip 2/14, kazimierzShip 0/8, kjeragShip 1/42, preciShip 2/43, skillfulShip 0/20, suntShip 1/0, swiftShip 1/48",24,24,0,102],
"ai_1": [1,7,12,0,0,5,8,"0f9e40f0",166,"arcaneShip 0/2, deputShip 2/14, kazimierzShip 0/7, kjeragShip 1/23, preciShip 0/2, sargonShip 1/92, siracusaShip 0/6, skillfulShip 1/19, soloShip 0/2, steadShip 1/18, swiftShip 0/13",20,24,4,93],
"ai_1": [1,8,12,0,0,5,8,"0f9e40f0",166,"arcaneShip 0/2, deputShip 2/14, kazimierzShip 0/7, kjeragShip 1/23, preciShip 0/2, sargonShip 1/92, siracusaShip 0/6, skillfulShip 1/19, soloShip 0/2, steadShip 1/18, swiftShip 0/13",20,24,4,93],
"ai_2": [1,18,12,0,0,5,8,"170da7d8",171,"arcaneShip 2/20, deputShip 0/31, egirShip 0/8, indomShip 0/27, investShip 0/4, kazimierzShip 0/2, kjeragShip 1/26, lateranoShip 0/6, raidShip 0/6, soloShip 1/14, steadShip 1/59, suntShip 1/2, swiftShip 0/8, victoriaShip 1/50, yanShip 0/10",23,24,1,101],
"ai_3": [0,0,0,0,0,4,0,"811c9dc5",0,"arcaneShip 0/2, kjeragShip 0/5, preciShip 0/2, sargonShip 0/4, siracusaShip 0/7, skillfulShip 0/5, soloShip 0/12",null,null,null,59]
},
@@ -1168,7 +1168,7 @@
"title": {"id":"comment_6","name":"挥金如土","picId":"comment_icon_6","text":"消耗资金最多"},
"trophies": 2,
"reward": 255,
"stats": {"activatedLayers":0,"bossDamage":0,"dmgDealt":4098745,"gold":104,"itemsEquipped":10,"kills":163,"leaks":59,"lpLost":29,"merges":0,"perfectRounds":7,"refreshes":19},
"stats": {"activatedLayers":0,"bossDamage":0,"dmgDealt":4099645,"gold":104,"itemsEquipped":10,"kills":164,"leaks":58,"lpLost":28,"merges":0,"perfectRounds":7,"refreshes":19},
"lineup": [],
"bonds": ["arcaneShip 0/4","deputShip 0/18","kazimierzShip 0/7","kjeragShip 0/27","preciShip 0/4","sargonShip 0/105","siracusaShip 0/6","skillfulShip 0/23","soloShip 0/2","steadShip 0/22","swiftShip 0/13"]
},
@@ -1868,7 +1868,7 @@
"combat": "client",
"boost": null,
"setup": {"stageId":"act2autochess_m03","bossId":"boss_4","hiddenBossId":"boss_9","factions":["FLY","TIMES","REFLECTION"]},
"end": {"victory":true,"roundsPassed":14,"hiddenReached":false,"hiddenCleared":false,"reason":"victory","teamLp":30,"bossPoolLeft":0,"virtualMs":122900},
"end": {"victory":true,"roundsPassed":14,"hiddenReached":false,"hiddenCleared":false,"reason":"victory","teamLp":31,"bossPoolLeft":0,"virtualMs":122900},
"rng": {"setup":25,"shop":690,"waves":0,"draft":40,"bots":19229,"meta":10},
"errors": {"engine":0,"logged":0,"sim":0,"dispatcher":0},
"rounds": [
@@ -1927,7 +1927,7 @@
{
"round": 13,
"h_0": [1,25,12,0,0,6,8,"d867f422",194,"deputShip 1/26, indomShip 1/30, investShip 0/8, kazimierzShip 0/2, kjeragShip 0/8, preciShip 2/19, skillfulShip 1/20, soloShip 0/20, steadShip 0/76, swiftShip 1/66, victoriaShip 1/25, visiShip 1/8",33,43,10,121],
"ai_0": [1,7,18,0,0,6,8,"4b1d99d4",368,"deputShip 1/52, emptyShip 0/6, investShip 0/8, kazimierzShip 0/8, kjeragShip 1/35, miraShip 1/2, raidShip 1/21, siracusaShip 1/120, soloShip 0/24, suntShip 1/6, swiftShip 1/83, visiShip 1/49, yanShip 0/1",20,43,23,133]
"ai_0": [1,7,18,0,0,6,8,"95334040",371,"deputShip 1/52, emptyShip 0/6, investShip 0/8, kazimierzShip 0/8, kjeragShip 1/38, miraShip 1/2, raidShip 1/21, siracusaShip 1/120, soloShip 0/24, suntShip 1/6, swiftShip 1/83, visiShip 1/49, yanShip 0/1",20,43,23,133]
}
],
"players": {
@@ -1936,12 +1936,12 @@
"victory": true,
"roundsPassed": 14,
"eliminatedRound": null,
"lp": 23,
"lp": 24,
"bandId": "band_sarkazb",
"title": {"id":"comment_1","name":"卫戍之星","picId":"comment_icon_1","text":"对敌方领袖造成伤害最高(仅胜利时)"},
"trophies": 4,
"reward": 400,
"stats": {"activatedLayers":240,"bossDamage":712550,"dmgDealt":4190550,"gold":132,"itemsEquipped":22,"kills":294,"leaks":26,"lpLost":20,"merges":1,"perfectRounds":10,"refreshes":42},
"stats": {"activatedLayers":240,"bossDamage":806551,"dmgDealt":4310123,"gold":132,"itemsEquipped":22,"kills":295,"leaks":26,"lpLost":20,"merges":1,"perfectRounds":10,"refreshes":42},
"lineup": ["4_21_a@12,7","4_14_b@12,8[2_01_e_a+3_02_e_a]","1_06_a@11,6[3_11_e_a+2_01_e_b]","6_11_a@11,7","6_12_a@11,8[3_05_e_b+3_01_e_b]","6_05_a@10,5[3_06_e_b+4_07_e_a]","4_07_a@10,8[5_01_e_b+6_09_e_a]","5_06_a@9,9[4_08_e_b+3_09_e_a]"],
"bonds": ["deputShip 1/28","indomShip 1/35","investShip 0/8","kazimierzShip 0/2","kjeragShip 0/8","maniShip 1/2","preciShip 2/31","skillfulShip 1/22","soloShip 0/20","steadShip 0/76","swiftShip 1/78","victoriaShip 1/31","visiShip 1/13"]
},
@@ -1955,9 +1955,9 @@
"title": {"id":"comment_2","name":"不朽盟约","picId":"comment_icon_2","text":"激活的盟约层数总和最高"},
"trophies": 4,
"reward": 400,
"stats": {"activatedLayers":402,"bossDamage":704950,"dmgDealt":3520238,"gold":145,"itemsEquipped":12,"kills":222,"leaks":55,"lpLost":20,"merges":3,"perfectRounds":7,"refreshes":29},
"stats": {"activatedLayers":405,"bossDamage":610949,"dmgDealt":3351434,"gold":145,"itemsEquipped":12,"kills":222,"leaks":55,"lpLost":20,"merges":3,"perfectRounds":7,"refreshes":29},
"lineup": ["2_14_b@12,7","3_20_a@12,8","3_14_a@11,7","5_10_a@11,8","6_19_a@10,6[4_04_e_a]","4_04_a@10,7","3_18_b@10,8[3_04_e_b+5_02_e_a]","4_16_a@9,9[4_05_e_a+4_11_e_a]"],
"bonds": ["deputShip 1/54","emptyShip 1/8","investShip 0/8","kazimierzShip 0/8","kjeragShip 1/37","miraShip 0/2","raidShip 1/28","siracusaShip 1/126","soloShip 0/24","suntShip 1/8","swiftShip 1/85","visiShip 1/56","yanShip 0/1"]
"bonds": ["deputShip 1/54","emptyShip 1/8","investShip 0/8","kazimierzShip 0/8","kjeragShip 1/40","miraShip 0/2","raidShip 1/28","siracusaShip 1/126","soloShip 0/24","suntShip 1/8","swiftShip 1/85","visiShip 1/56","yanShip 0/1"]
}
},
"diy": {
+76 -76
View File
@@ -384,56 +384,56 @@
"time": 140,
"ticks": 4200,
"reason": "timeout",
"killed": 139,
"killed": 145,
"total": 71,
"unspawned": 0,
"bossHpLeft": null,
"rngDraws": 64,
"rngDraws": 61,
"errors": {"count":0,"kinds":[]},
"players": {"p1":{"killed":139,"total":71,"perfect":false,"leaks":44,"leaksUncounted":1,"coins":6,"dmg":239871,"bossDmg":0,"heal":1028,"deaths":9,"layerGains":{}}},
"players": {"p1":{"killed":145,"total":71,"perfect":false,"leaks":41,"leaksUncounted":1,"coins":6,"dmg":247377,"bossDmg":0,"heal":1028,"deaths":10,"layerGains":{}}},
"units": [
["p1",1,"op","chess_char_3_12_a",2,null,2567.4,1,205,6,2610,2567,364,12,1],
["p1",2,"op","chess_char_3_16_a",1,null,0,0,6,2,5774,3419,664,18,1],
["p1",3,"op","chess_char_3_18_a",2,null,1629.1,1,209,8,13367,3258,0,31,1],
["p1",4,"op","chess_char_3_08_a",1,null,1519.4,1,4,17,16401,234,0,18,2],
["p1",5,"op","chess_char_3_09_a",1,null,1004.34,1,7,17,22163,389,0,64,2],
["p1",6,"op","chess_char_3_10_a",1,null,267.96,1,10,22,24180,1547,0,40,3],
["p1",7,"op","chess_char_3_11_a",1,null,1447.6,1,208,10,10520,1448,0,18,3],
["p1",8,"op","chess_char_3_13_a",1,null,1170.4,1,200,3,5679,1170,0,21,9],
["p1",9,"op","chess_char_3_14_a",1,null,59.11,1,5,16,22081,1317,0,57,2],
["p1",10,"op","chess_char_3_17_a",1,null,0,0,8,10,60765,2471,0,79,4],
["p1",11,"op","chess_char_3_19_a",2,null,900.9,1,164,16,35379,2265,0,97,2],
["p1",12,"op","chess_char_3_20_a",1,null,1233.1,1,204,3,5976,1233,0,38,1],
["p1",13,"token","token_10028_vigil_wolf",null,null,1.96,0,110,3,2852,1877,0,14,null],
["p1",1,"op","chess_char_3_12_a",2,null,2567.4,1,207,0,3677,2567,353,11,1],
["p1",2,"op","chess_char_3_16_a",1,null,0,0,6,2,5588,3419,675,19,1],
["p1",3,"op","chess_char_3_18_a",2,null,1629.1,1,212,15,14973,3258,0,31,1],
["p1",4,"op","chess_char_3_08_a",1,null,1519.4,1,4,16,22610,234,0,18,2],
["p1",5,"op","chess_char_3_09_a",1,null,1004.34,1,7,17,22708,389,0,61,2],
["p1",6,"op","chess_char_3_10_a",1,null,0,0,10,21,21857,1815,0,36,2],
["p1",7,"op","chess_char_3_11_a",1,null,1447.6,1,211,10,10520,1448,0,18,3],
["p1",8,"op","chess_char_3_13_a",1,null,1170.4,1,201,3,5697,1170,0,21,9],
["p1",9,"op","chess_char_3_14_a",1,null,59.11,1,5,24,21888,1317,0,55,2],
["p1",10,"op","chess_char_3_17_a",1,null,0,0,8,14,61687,2471,0,83,5],
["p1",11,"op","chess_char_3_19_a",2,null,900.9,1,162,16,38143,2265,0,97,2],
["p1",12,"op","chess_char_3_20_a",1,null,1233.1,1,208,3,6055,1233,0,39,1],
["p1",13,"token","token_10028_vigil_wolf",null,null,149.52,0,110,0,2738,1729,0,11,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],
["p1","~1","token","token_10028_vigil_wolf",null,null,880,1,165,6,12123,1550,0,28,null]
["p1","~1","token","token_10028_vigil_wolf",null,null,405.92,1,163,4,9234,2143,0,28,null]
],
"enemies": {
"enemy_10029_vtshld": [1,0,0,0,0],
"enemy_10073_mpcar": [1,1,0,0,2304],
"enemy_10127_rkmbst_2": [1,1,0,4090,31680],
"enemy_1045_hammer": [1,0,1,283,5668],
"enemy_1121_lifbos_2": [1,0,1,1126,4805],
"enemy_1172_dugago": [1,0,1,266,7005],
"enemy_1195_sfyin": [36,33,3,640,80191],
"enemy_1195_sfyin_2": [15,9,6,1334,44374],
"enemy_1196_msfyin": [66,58,8,0,121],
"enemy_1196_msfyin_2": [18,8,10,0,35],
"enemy_1197_sfshu": [9,8,1,736,24436],
"enemy_1198_msfshu": [24,18,6,0,58],
"enemy_10127_rkmbst_2": [1,1,0,4010,31680],
"enemy_1045_hammer": [1,0,1,459,7964],
"enemy_1121_lifbos_2": [1,0,1,1126,5398],
"enemy_1172_dugago": [1,0,1,266,7442],
"enemy_1195_sfyin": [36,33,3,505,79752],
"enemy_1195_sfyin_2": [15,12,3,2360,47819],
"enemy_1196_msfyin": [66,60,6,0,125],
"enemy_1196_msfyin_2": [24,12,12,0,45],
"enemy_1197_sfshu": [9,7,2,409,23009],
"enemy_1198_msfshu": [21,15,6,0,47],
"enemy_1203_sfhu": [1,1,0,4220,7488],
"enemy_1204_msfhu": [4,0,4,0,4],
"enemy_1252_lysytb_2": [1,0,1,1965,3893],
"enemy_1252_lysytb_2": [1,1,0,1645,10368],
"enemy_1305_mhslim": [1,1,0,223,1382],
"enemy_1407_hummbd": [1,1,0,140,5184],
"enemy_1512_mcmstr": [1,0,1,8998,20801],
"enemy_2021_syfish": [1,0,1,0,442]
"enemy_1512_mcmstr": [1,0,1,9371,16497],
"enemy_2021_syfish": [1,0,1,0,868]
},
"hooks": [1,208,4200,695,695,959,964,418,149,194,31,30,0,21272,20,45,184,44,1,158,0,0,0],
"events": {"atk":848,"bounty":3,"deploy":22,"die":150,"dmg":953,"engage":14,"fx":128,"heal":1,"leak":44,"skill":61,"spawn":200,"status":71},
"fx": {"aoe":2,"camouflage":1,"displace":15,"dp":2,"explode":20,"expose":1,"phase":1,"pull":15,"revive":2,"sp":1,"strike":3,"summon":53,"volley":7,"wolfShadow":2,"wolfShadowLost":3},
"snaps": "17399d51 bc366431 6d1caf23 214021b0 fc9ea9d8 690dd6a1 82c58709 9d0b4556 1d498d33 3e16098f 5925a25e 4540e18b 3fc289e7 efffdf3b"
"hooks": [1,211,4200,677,677,976,981,425,156,198,31,30,0,20874,14,45,187,41,1,169,0,0,0],
"events": {"atk":837,"bounty":3,"deploy":22,"die":157,"dmg":970,"engage":14,"fx":138,"heal":1,"leak":41,"skill":61,"spawn":203,"status":63},
"fx": {"aoe":2,"camouflage":1,"displace":19,"dp":2,"explode":19,"expose":1,"phase":1,"pull":19,"revive":2,"sp":1,"strike":3,"summon":55,"volley":8,"wolfShadow":2,"wolfShadowLost":3},
"snaps": "17399d51 bc366431 21fe510b f839da24 d1fe4d4c c4152be4 8d5ba672 753767a2 28635406 698c23c9 f112a1ff 42bc52f5 fe7d0a4b b52a36c1"
},
"roster-008": {
"about": "pass 0 band 4: chess_char_3_06_b chess_char_3_12_b chess_char_3_02_b chess_char_3_03_b chess_char_3_04_b chess_char_3_05_b chess_char_3_21_a chess_char_3_01_b chess_char_3_08_b chess_char_3_09_b chess_char_3_10_b chess_char_3_11_b",
@@ -539,14 +539,14 @@
"units": [
["p1",1,"op","chess_char_3_16_b",1,"uniequip_002_snakek",5899.3,1,3,0,0,0,0,0,0],
["p1",2,"op","chess_char_4_01_a",2,null,5020.11,1,6,0,0,0,0,0,0],
["p1",3,"op","chess_char_3_18_b",2,"uniequip_002_vulpis",3844.06,1,8,0,3,0,0,2,1],
["p1",3,"op","chess_char_3_18_b",2,"uniequip_002_vulpis",3844.06,1,8,1,4,0,0,2,1],
["p1",4,"op","chess_char_4_04_a",1,null,2831.68,1,12,8,25880,518,0,125,4],
["p1",5,"op","chess_char_3_13_b",1,"uniequip_002_malist",2616.63,1,9,22,11643,0,0,69,32],
["p1",6,"op","chess_char_3_14_b",1,"uniequip_002_slbell",3073.35,1,10,7,3115,0,0,37,3],
["p1",7,"op","chess_char_3_17_b",1,"uniequip_002_shotst",4154.31,1,14,18,30514,1359,0,58,9],
["p1",8,"op","chess_char_3_19_b",2,"uniequip_002_vigil",3421.59,1,4,0,1,0,0,1,4],
["p1",9,"op","chess_char_3_20_b",1,"uniequip_002_kjera",2759.35,1,7,0,2,0,0,1,1],
["p1",10,"op","chess_char_3_21_b",2,"uniequip_002_archet",3025.77,1,11,82,136301,0,0,188,5],
["p1",10,"op","chess_char_3_21_b",2,"uniequip_002_archet",3025.77,1,11,81,136300,0,0,188,5],
["p1",11,"op","chess_char_4_02_a",2,null,2717.48,1,166,16,58984,2717,0,36,1],
["p1",12,"op","chess_char_4_06_a",1,null,2371.14,1,13,18,12337,0,0,75,2],
["p1",13,"token","token_10028_vigil_wolf",null,null,1026,1,5,0,839,1920,0,6,null],
@@ -573,10 +573,10 @@
"enemy_1513_dekght_2": [1,1,0,5803,43200],
"enemy_2034_sythef": [1,1,0,0,8640]
},
"hooks": [1,187,4616,606,606,1080,1064,0,172,172,62,60,0,20682,91,5,171,0,1,174,0,0,0],
"events": {"atk":733,"bounty":6,"deploy":14,"die":172,"dmg":1064,"engage":11,"fx":164,"skill":122,"spawn":186,"status":205},
"fx": {"crit":24,"displace":23,"dp":4,"explode":3,"phase":1,"ripple":8,"shadowWeave":26,"shield":2,"stealth":4,"summon":51,"telegraph":3,"volley":9,"wolfShadow":3,"wolfShadowLost":2,"zone":1},
"snaps": "01350beb 8f7744b2 43f13b56 f68a04e7 1d0741e4 7c08a4ae 9834f8a4 8799cf88 a348e60f ddf80120 61a93dd9 82dbcbf0 375b88cd 76e6861d 9d5ac76a 9849b6c7"
"hooks": [1,187,4616,606,606,1080,1064,0,172,172,62,60,0,20682,90,5,171,0,1,174,0,0,0],
"events": {"atk":733,"bounty":6,"deploy":14,"die":172,"dmg":1064,"engage":11,"fx":165,"skill":122,"spawn":186,"status":205},
"fx": {"camouflage":1,"crit":24,"displace":23,"dp":4,"explode":3,"phase":1,"ripple":8,"shadowWeave":26,"shield":2,"stealth":4,"summon":51,"telegraph":3,"volley":9,"wolfShadow":3,"wolfShadowLost":2,"zone":1},
"snaps": "01350beb 8f7744b2 43f13b56 f68a04e7 1d0741e4 7c08a4ae 9834f8a4 8799cf88 a348e60f ddf80120 3446f99a 80b90afd 38f6a8b2 8aa08e8e c1ed526b a0c06d83"
},
"roster-010": {
"about": "pass 0 band 4: chess_char_4_17_a chess_char_4_18_a chess_char_4_11_a chess_char_4_19_a chess_char_4_07_a chess_char_4_16_a chess_char_4_09_a chess_char_4_10_a chess_char_4_12_a chess_char_4_13_a chess_char_4_14_a chess_char_4_20_a token_10041_cathy_catsld token_10041_cathy_catsld",
@@ -1630,13 +1630,13 @@
"bossHpLeft": null,
"rngDraws": 179,
"errors": {"count":0,"kinds":[]},
"players": {"p1":{"killed":19,"total":71,"perfect":false,"leaks":54,"leaksUncounted":0,"coins":6,"dmg":212430,"bossDmg":0,"heal":2065,"deaths":22,"layerGains":{}}},
"players": {"p1":{"killed":19,"total":71,"perfect":false,"leaks":54,"leaksUncounted":0,"coins":6,"dmg":212914,"bossDmg":0,"heal":2065,"deaths":22,"layerGains":{}}},
"units": [
["p1",1,"op","chess_char_3_12_a",0,null,0,0,99,2,9831,6171,2065,21,4],
["p1",2,"op","chess_char_3_16_a",0,null,0,0,101,0,4246,4781,0,15,1],
["p1",3,"op","chess_char_3_18_a",0,null,0,0,100,3,15944,3258,0,11,7],
["p1",3,"op","chess_char_3_18_a",0,null,0,0,100,3,16505,3258,0,11,7],
["p1",4,"op","chess_char_3_08_a",0,null,0,0,4,3,27227,1753,0,8,1],
["p1",5,"op","chess_char_3_09_a",0,null,1393.7,1,103,1,16928,1394,0,24,3],
["p1",5,"op","chess_char_3_09_a",0,null,1393.7,1,103,2,16851,1394,0,24,3],
["p1",6,"op","chess_char_3_10_a",0,null,0,0,89,1,36230,3630,0,22,5],
["p1",7,"op","chess_char_3_11_a",0,null,0,0,7,1,12325,1448,0,6,1],
["p1",8,"op","chess_char_3_13_a",0,null,0,0,53,0,3936,5199,0,23,1],
@@ -1653,7 +1653,7 @@
"enemies": {
"enemy_10042_prtrop": [12,0,12,7101,28836],
"enemy_10042_prtrop_2": [12,0,10,6218,18414],
"enemy_10043_sailor": [39,12,27,20980,197254],
"enemy_10043_sailor": [39,12,27,20980,197629],
"enemy_1005_yokai_2": [1,1,0,68,2678],
"enemy_10156_mncrer": [1,1,0,140,6912],
"enemy_1116_liprr_2": [1,1,0,247,12960],
@@ -1664,10 +1664,10 @@
"enemy_1513_dekght_2": [1,0,1,3692,1400],
"enemy_9010_acpupp": [1,0,1,0,1540]
},
"hooks": [1,102,4200,412,412,1525,1585,10,42,95,33,33,0,10321,22,47,73,52,1,46,0,0,0],
"events": {"atk":478,"bounty":3,"deploy":26,"die":43,"dmg":1585,"engage":14,"fx":26,"heal":10,"leak":52,"skill":66,"spawn":90,"status":54},
"hooks": [1,102,4200,412,412,1527,1586,10,42,95,33,33,0,10321,22,47,73,52,1,46,0,0,0],
"events": {"atk":478,"bounty":3,"deploy":26,"die":43,"dmg":1586,"engage":14,"fx":26,"heal":10,"leak":52,"skill":66,"spawn":90,"status":54},
"fx": {"dp":7,"explode":3,"revive":4,"sp":4,"strike":1,"summon":2,"telegraph":2,"wolfShadow":1,"wolfShadowLost":2},
"snaps": "226d72ef 4944a14f b2954de1 522e52cb dd46cce1 b1febb8b ac7e7cf4 bb6af571 080c3ba3 fc1505bd c0528264 4a64f7c2 beffba7c a423b42e"
"snaps": "226d72ef 4944a14f b2954de1 522e52cb a93fc3b9 074f1209 ce4e1ade 44124797 0fc18c09 2d9940bf 4d8876e6 9f3a7acb ff692f0f 46a3724f"
},
"roster-027": {
"about": "pass 1 band 4: chess_char_3_06_b chess_char_3_12_b chess_char_3_02_b chess_char_3_03_b chess_char_3_04_b chess_char_3_05_b chess_char_3_21_a chess_char_3_01_b chess_char_3_08_b chess_char_3_09_b chess_char_3_10_b chess_char_3_11_b",
@@ -2398,7 +2398,7 @@
"total": 52,
"unspawned": 0,
"bossHpLeft": null,
"rngDraws": 17,
"rngDraws": 27,
"errors": {"count":0,"kinds":[]},
"players": {
"p1": {
@@ -2408,45 +2408,45 @@
"leaks": 5,
"leaksUncounted": 1,
"coins": 6,
"dmg": 444073,
"dmg": 443923,
"bossDmg": 0,
"heal": 8216,
"heal": 8296,
"deaths": 1,
"layerGains": {"miraShip":2,"raidShip":26}
"layerGains": {"miraShip":2,"raidShip":29}
}
},
"units": [
["p1",1,"op","chess_char_3_12_a",1,null,4903.73,1,29,6,52361,2635,2636,216,8],
["p1",2,"op","chess_char_3_12_b",1,"none",6168.54,1,31,10,75999,577,577,149,5],
["p1",3,"op","chess_char_3_18_a",1,null,1629.1,1,10,0,5729,0,0,0,7],
["p1",4,"op","chess_char_3_18_b",1,"none",2029.5,1,60,6,91821,3397,1367,140,9],
["p1",5,"op","chess_char_3_04_a",2,null,2050.4,1,71,3,15129,17,17,46,2],
["p1",6,"op","chess_char_3_05_a",1,null,6463.6,1,11,1,27031,3439,3439,71,1],
["p1",7,"op","chess_char_3_04_b",2,"uniequip_004_swire2",2924.78,1,72,5,41623,169,167,36,2],
["p1",8,"op","chess_char_3_05_b",1,"none",7464.85,1,34,3,31444,13,13,22,2],
["p1",9,"op","chess_char_3_01_a",1,null,1663.13,1,1,2,7098,0,0,14,2],
["p1",10,"op","chess_char_3_19_a",1,null,1582.9,1,4,2,31143,0,0,94,1],
["p1",11,"op","chess_char_3_21_a",1,null,1500.4,1,7,8,54590,0,0,168,17],
["p1",12,"op","chess_char_3_01_b",1,"none",2162.16,1,2,1,10104,0,0,14,2],
["p1",13,"token","token_10028_vigil_wolf",null,null,880,1,5,0,0,0,0,0,null]
["p1",1,"op","chess_char_3_12_a",1,null,4874.88,1,29,3,21916,1725,1619,200,7],
["p1",2,"op","chess_char_3_12_b",1,"none",6265.42,1,31,8,72759,988,988,146,6],
["p1",3,"op","chess_char_3_18_a",1,null,1629.1,1,10,0,10418,0,0,0,7],
["p1",4,"op","chess_char_3_18_b",1,"none",1893.1,1,64,11,105467,3102,936,134,9],
["p1",5,"op","chess_char_3_04_a",2,null,2050.4,1,73,6,30594,0,0,68,3],
["p1",6,"op","chess_char_3_05_a",1,null,6463.6,1,11,2,24240,4322,4322,80,1],
["p1",7,"op","chess_char_3_04_b",2,"uniequip_004_swire2",2924.78,1,74,4,30535,119,119,28,1],
["p1",8,"op","chess_char_3_05_b",1,"none",7582.1,1,66,4,31574,312,312,22,3],
["p1",9,"op","chess_char_3_01_a",1,null,1663.13,1,1,0,2435,0,0,48,1],
["p1",10,"op","chess_char_3_19_a",1,null,1582.9,1,4,2,38123,0,0,111,3],
["p1",11,"op","chess_char_3_21_a",1,null,1500.4,1,7,5,63343,0,0,183,18],
["p1",12,"op","chess_char_3_01_b",1,"none",2162.16,1,2,2,12194,0,0,48,2],
["p1",13,"token","token_10028_vigil_wolf",null,null,880,1,5,0,324,0,0,6,null]
],
"enemies": {
"enemy_10030_vtwand": [1,0,0,0,0],
"enemy_1010_demon": [1,1,0,1307,8100],
"enemy_1061_zomshd": [1,1,0,824,19217],
"enemy_1169_duphlx": [1,1,0,13,4320],
"enemy_1010_demon": [1,1,0,713,8100],
"enemy_1061_zomshd": [1,1,0,1213,18560],
"enemy_1169_duphlx": [1,1,0,0,4320],
"enemy_1208_msfji_2": [1,1,0,0,32],
"enemy_1302_ymtro_2": [1,1,0,0,32400],
"enemy_1381_winman": [21,21,0,711,131544],
"enemy_1381_winman_2": [12,12,0,511,101088],
"enemy_1387_winshd": [12,7,0,5457,124476],
"enemy_1438_dspred": [1,1,0,1386,14256],
"enemy_2034_sythef": [1,1,0,38,8640]
"enemy_1381_winman": [21,21,0,864,131544],
"enemy_1381_winman_2": [12,12,0,460,101088],
"enemy_1387_winshd": [12,7,0,6309,124983],
"enemy_1438_dspred": [1,1,0,958,14256],
"enemy_2034_sythef": [1,1,0,51,8640]
},
"hooks": [1,74,5100,1179,1179,1561,1561,2461,48,55,58,58,0,15108,82,78,53,0,1,53,7,0,0],
"events": {"atk":1179,"bounty":3,"deploy":21,"die":55,"dmg":1561,"engage":11,"fx":113,"heal":8,"layer":7,"skill":116,"spawn":66,"status":133},
"fx": {"aoe":28,"blink":3,"bondMilestone":1,"buff":3,"coin":33,"displace":2,"dp":17,"garrison":7,"shield":1,"volley":17,"wolfShadow":1},
"snaps": "9cb798d2 b852ba52 fb7b86e9 fd6bd137 d07787a9 1916d241 97989bd1 a2b670bd 2418243d 016fa0f7 b9159b06 b7617675 b474b79b 1892bc12 94e6e90d 7e618143 0045b497"
"hooks": [1,75,5100,1284,1284,1748,1748,2225,48,56,61,61,0,14193,87,86,53,0,1,54,9,0,0],
"events": {"atk":1284,"bounty":3,"deploy":22,"die":56,"dmg":1748,"engage":12,"fx":123,"heal":6,"layer":9,"skill":122,"spawn":66,"status":143},
"fx": {"aoe":28,"blink":4,"bondMilestone":1,"buff":5,"coin":35,"displace":2,"dp":19,"garrison":9,"shield":1,"volley":18,"wolfShadow":1},
"snaps": "c7a49802 0faddf59 8e107d4b dd8e4fed 6fd98184 f15f4b11 7b967031 68468258 674b5d7f 6109fb91 bfaff06c 1b0fe3bd 3276a8fc a83e0316 f9919085 d6e610b6 d621b20b"
},
"roster-040": {
"about": "pass 2 band 4: chess_char_4_01_a chess_char_4_17_a chess_char_4_18_a chess_char_4_04_a chess_char_4_07_a chess_char_4_16_a chess_char_4_09_a chess_char_3_19_b chess_char_3_21_b chess_char_4_02_a chess_char_4_12_a chess_char_4_13_a token_10028_vigil_wolf",