Applied as-is. Captured real battles live in public/dev/perf (including the round-13 联防 on the wide round battlefield), with a browser speed page and a headless benchmark. public/dev stays out of the package. The Chrome benchmark was not run. The numbers in the original pull request are from 0.1.4 and are not quoted here. Tests: node --test test/perfbench.test.js test/render/battle-perf.browser.test.js — 13 pass, 0 fail; the Chrome suite skipped (RENDER_E2E unset).
1 line
11 KiB
JSON
1 line
11 KiB
JSON
{"t":"b.start","battleId":"7.15.65.b1","fieldId":"b1","kind":"hidden","spec":{"v":1,"battleId":"7.15.65.b1","fieldId":"b1","kind":"hidden","seed":725852008,"modeId":"mode_multi_hard","round":15,"stageId":"act2autochess_m01","rect":{"r0":0,"r1":5,"c0":0,"c1":20},"timeLimit":null,"players":[{"playerId":"p_0","seat":0,"side":"L","colOffset":0,"units":[{"uid":123,"kind":"chess","chessId":"chess_char_4_02_b","row":12,"col":8,"dir":"DOWN","items":["chess_item_3_03_e_a"],"skillIndex":2,"moduleId":"uniequip_002_mostma"},{"uid":125,"kind":"chess","chessId":"chess_char_4_20_a","row":11,"col":4,"dir":"RIGHT","items":["chess_item_1_05_e_a","chess_item_4_03_e_a"],"skillIndex":2},{"uid":208,"kind":"chess","chessId":"chess_char_3_17_b","row":11,"col":8,"dir":"RIGHT","items":["chess_item_3_01_e_a","chess_item_2_01_e_a"],"skillIndex":1,"moduleId":"uniequip_002_shotst"},{"uid":41,"kind":"chess","chessId":"chess_char_1_17_b","row":10,"col":4,"dir":"RIGHT","items":[],"skillIndex":1,"moduleId":"uniequip_002_indigo"},{"uid":169,"kind":"chess","chessId":"chess_char_4_10_a","row":10,"col":5,"dir":"RIGHT","items":[],"skillIndex":1},{"uid":96,"kind":"chess","chessId":"chess_char_1_19_b","row":10,"col":8,"dir":"RIGHT","items":["chess_item_1_01_e_a","chess_item_4_04_e_b"],"skillIndex":1,"moduleId":"uniequip_002_wildmn"},{"uid":168,"kind":"chess","chessId":"chess_char_4_14_b","row":9,"col":8,"dir":"RIGHT","items":["chess_item_3_04_e_a","chess_item_5_02_e_b"],"skillIndex":1,"moduleId":"uniequip_002_lionhd"},{"uid":209,"kind":"chess","chessId":"chess_char_6_19_a","row":9,"col":9,"dir":"UP","items":["chess_item_4_05_e_a","chess_item_4_02_e_a"],"skillIndex":2}],"bonds":{"yanShip":{"count":0,"active":false,"tier":0,"layers":0},"sargonShip":{"count":0,"active":false,"tier":0,"layers":0},"victoriaShip":{"count":0,"active":false,"tier":0,"layers":0},"kjeragShip":{"count":1,"active":false,"tier":0,"layers":8},"lateranoShip":{"count":1,"active":false,"tier":0,"layers":0},"egirShip":{"count":0,"active":false,"tier":0,"layers":0},"siracusaShip":{"count":1,"active":false,"tier":0,"layers":0},"kazimierzShip":{"count":4,"active":true,"tier":1,"layers":74},"preciShip":{"count":3,"active":true,"tier":2,"layers":108},"swiftShip":{"count":3,"active":true,"tier":1,"layers":92},"skillfulShip":{"count":0,"active":false,"tier":0,"layers":0},"arcaneShip":{"count":3,"active":true,"tier":2,"layers":32},"steadShip":{"count":0,"active":false,"tier":0,"layers":0},"deputShip":{"count":0,"active":false,"tier":0,"layers":0},"visiShip":{"count":0,"active":false,"tier":0,"layers":0},"miraShip":{"count":0,"active":false,"tier":0,"layers":0},"investShip":{"count":0,"active":false,"tier":0,"layers":0},"raidShip":{"count":0,"active":false,"tier":0,"layers":0},"indomShip":{"count":0,"active":false,"tier":0,"layers":4},"maniShip":{"count":0,"active":false,"tier":0,"layers":0},"emptyShip":{"count":0,"active":false,"tier":0,"layers":0},"soloShip":{"count":1,"active":true,"tier":1,"layers":0},"suntShip":{"count":5,"active":true,"tier":2,"layers":0}},"bandId":"band_sarkazb","playerEffects":[],"deviceOverrides":{},"lpForBoss":1205,"contentInfo":{"round":15,"kind":"hidden","shopLevel":6,"funds":0,"handUnits":6,"handChess":6,"roundStats":{"refreshes":3,"buys":4,"sells":0,"spent":11,"gainedChess":2,"arts":0},"matchBands":["band_sarkazb","band_kirara","band_bldsk","band_cathy"],"teammates":[{"playerId":"p_1","bandId":"band_kirara"},{"playerId":"ai_2","bandId":"band_bldsk"},{"playerId":"ai_3","bandId":"band_cathy"}]}},{"playerId":"p_1","seat":1,"side":"R","colOffset":8,"units":[{"uid":246,"kind":"chess","chessId":"chess_char_6_05_a","row":12,"col":8,"dir":"DOWN","items":["chess_item_4_02_e_a","chess_item_4_08_e_a"],"skillIndex":2},{"uid":243,"kind":"chess","chessId":"chess_char_4_20_b","row":11,"col":8,"dir":"DOWN","items":["chess_item_4_12_e_a","chess_item_3_08_e_b"],"skillIndex":2,"moduleId":"uniequip_002_fartth"},{"uid":240,"kind":"chess","chessId":"chess_char_6_16_a","row":10,"col":4,"dir":"RIGHT","items":[],"skillIndex":2},{"uid":175,"kind":"chess","chessId":"chess_char_2_18_b","row":10,"col":5,"dir":"RIGHT","items":["chess_item_4_10_e_b","chess_item_2_03_e_a"],"skillIndex":0,"moduleId":"uniequip_002_ashlok"},{"uid":274,"kind":"chess","chessId":"chess_char_2_17_b","row":10,"col":7,"dir":"RIGHT","items":[],"skillIndex":1,"moduleId":"uniequip_002_branch"},{"uid":177,"kind":"chess","chessId":"chess_char_6_19_a","row":10,"col":8,"dir":"RIGHT","items":["chess_item_2_01_e_a","chess_item_4_06_e_b"],"skillIndex":2},{"uid":100,"kind":"chess","chessId":"chess_char_4_02_a","row":9,"col":8,"dir":"RIGHT","items":["chess_item_3_07_e_a","chess_item_3_06_e_b"],"skillIndex":2},{"uid":130,"kind":"chess","chessId":"chess_char_4_01_a","row":9,"col":9,"dir":"UP","items":["chess_item_4_04_e_a","chess_item_3_05_e_a"],"skillIndex":2}],"bonds":{"yanShip":{"count":0,"active":false,"tier":0,"layers":11},"sargonShip":{"count":1,"active":false,"tier":0,"layers":4},"victoriaShip":{"count":0,"active":false,"tier":0,"layers":5},"kjeragShip":{"count":1,"active":false,"tier":0,"layers":16},"lateranoShip":{"count":2,"active":false,"tier":0,"layers":4},"egirShip":{"count":0,"active":false,"tier":0,"layers":0},"siracusaShip":{"count":0,"active":false,"tier":0,"layers":0},"kazimierzShip":{"count":3,"active":true,"tier":1,"layers":93},"preciShip":{"count":2,"active":true,"tier":1,"layers":83},"swiftShip":{"count":2,"active":true,"tier":1,"layers":86},"skillfulShip":{"count":1,"active":false,"tier":0,"layers":0},"arcaneShip":{"count":2,"active":true,"tier":1,"layers":20},"steadShip":{"count":3,"active":true,"tier":2,"layers":40},"deputShip":{"count":0,"active":false,"tier":0,"layers":0},"visiShip":{"count":0,"active":false,"tier":0,"layers":0},"miraShip":{"count":0,"active":false,"tier":0,"layers":3},"investShip":{"count":1,"active":false,"tier":0,"layers":0},"raidShip":{"count":0,"active":false,"tier":0,"layers":0},"indomShip":{"count":0,"active":false,"tier":0,"layers":0},"maniShip":{"count":0,"active":false,"tier":0,"layers":0},"emptyShip":{"count":0,"active":false,"tier":0,"layers":0},"soloShip":{"count":1,"active":true,"tier":1,"layers":0},"suntShip":{"count":3,"active":true,"tier":1,"layers":0}},"bandId":"band_kirara","playerEffects":[],"deviceOverrides":{},"lpForBoss":1205,"contentInfo":{"round":15,"kind":"hidden","shopLevel":6,"funds":0,"handUnits":6,"handChess":6,"roundStats":{"refreshes":2,"buys":4,"sells":0,"spent":12,"gainedChess":4,"arts":0},"matchBands":["band_kirara","band_sarkazb","band_bldsk","band_cathy"],"teammates":[{"playerId":"p_0","bandId":"band_sarkazb"},{"playerId":"ai_2","bandId":"band_bldsk"},{"playerId":"ai_3","bandId":"band_cathy"}]}}],"spawns":[{"time":15,"enemyKey":"enemy_1249_lysdb_2","routeIndex":0,"count":5,"interval":12,"mods":{"hpMul":4.299817,"atkMul":2.143589,"speedMul":1,"slot":"E"},"actionIndex":0,"preview":{"gate":"lower","start":[2,10],"fly":false,"elite":false,"boss":false}},{"time":25,"enemyKey":"enemy_1249_lysdb_2","routeIndex":1,"count":5,"interval":12,"mods":{"hpMul":4.299817,"atkMul":2.143589,"speedMul":1,"slot":"E"},"actionIndex":1,"preview":{"gate":"lower","start":[2,10],"fly":false,"elite":false,"boss":false}},{"time":11,"enemyKey":"enemy_10027_vtsk","routeIndex":4,"count":3,"interval":30,"mods":{"hpMul":4.299817,"atkMul":2.143589,"speedMul":1,"slot":"E"},"actionIndex":4,"preview":{"gate":"lower","start":[2,10],"fly":false,"elite":true,"boss":false}},{"time":12,"enemyKey":"enemy_10027_vtsk","routeIndex":5,"count":3,"interval":30,"mods":{"hpMul":4.299817,"atkMul":2.143589,"speedMul":1,"slot":"E"},"actionIndex":5,"preview":{"gate":"lower","start":[2,10],"fly":false,"elite":true,"boss":false}},{"time":0,"enemyKey":"enemy_9013_acstmk_2","routeIndex":6,"count":1,"interval":0,"mods":{"atkMul":2.143589,"speedMul":1,"slot":"N"},"actionIndex":6,"preview":{"gate":"lower","start":[3,10],"fly":false,"elite":true,"boss":true},"tag":"boss"},{"time":0,"enemyKey":"enemy_9014_acstma","routeIndex":7,"count":1,"interval":0,"mods":{"hpMul":4.299817,"atkMul":2.143589,"speedMul":1,"slot":"E"},"actionIndex":7,"preview":{"gate":"lower","start":[3,12],"fly":false,"elite":true,"boss":false},"tag":"part","countInTotal":false},{"time":0,"enemyKey":"enemy_9015_acstmb","routeIndex":8,"count":1,"interval":0,"mods":{"hpMul":4.299817,"atkMul":2.143589,"speedMul":1,"slot":"E"},"actionIndex":8,"preview":{"gate":"lower","start":[3,8],"fly":false,"elite":true,"boss":false},"tag":"part","countInTotal":false}],"routes":[{"motion":"WALK","start":[2,10],"end":[1,3],"checkpoints":[[1,17]],"steps":[{"t":"move","p":[1,17]},{"t":"disappear"},{"t":"wait","s":3},{"t":"appear","p":[5,10]}]},{"motion":"WALK","start":[2,10],"end":[1,17],"checkpoints":[[1,3]],"steps":[{"t":"move","p":[1,3]},{"t":"disappear"},{"t":"wait","s":3},{"t":"appear","p":[5,10]}]},{"motion":"FLY","start":[5,10],"end":[1,3],"checkpoints":[[5,11],[2,11],[2,13],[5,13],[5,15],[2,15],[2,17],[1,17],[5,9],[2,9],[2,7],[5,7],[5,5],[2,5],[2,3]],"steps":[{"t":"move","p":[5,11]},{"t":"move","p":[2,11]},{"t":"move","p":[2,13]},{"t":"move","p":[5,13]},{"t":"move","p":[5,15]},{"t":"move","p":[2,15]},{"t":"move","p":[2,17]},{"t":"move","p":[1,17]},{"t":"disappear"},{"t":"wait","s":5},{"t":"appear","p":[5,10]},{"t":"move","p":[5,9]},{"t":"move","p":[2,9]},{"t":"move","p":[2,7]},{"t":"move","p":[5,7]},{"t":"move","p":[5,5]},{"t":"move","p":[2,5]},{"t":"move","p":[2,3]}]},{"motion":"FLY","start":[2,10],"end":[1,17],"checkpoints":[[2,9],[5,9],[5,8],[2,8],[2,6],[5,6],[5,5],[2,5],[2,3],[1,3],[5,12],[2,12],[2,14],[5,14],[5,15],[2,15],[2,17]],"steps":[{"t":"move","p":[2,9]},{"t":"move","p":[5,9]},{"t":"move","p":[5,8]},{"t":"move","p":[2,8]},{"t":"move","p":[2,6]},{"t":"move","p":[5,6]},{"t":"move","p":[5,5]},{"t":"move","p":[2,5]},{"t":"move","p":[2,3]},{"t":"move","p":[1,3]},{"t":"disappear"},{"t":"wait","s":5},{"t":"appear","p":[5,10]},{"t":"move","p":[5,12]},{"t":"move","p":[2,12]},{"t":"move","p":[2,14]},{"t":"move","p":[5,14]},{"t":"move","p":[5,15]},{"t":"move","p":[2,15]},{"t":"move","p":[2,17]}]},{"motion":"WALK","start":[2,10],"end":[1,17],"checkpoints":[[1,3]],"steps":[{"t":"move","p":[1,3]},{"t":"disappear"},{"t":"wait","s":3},{"t":"appear","p":[5,10]}]},{"motion":"WALK","start":[2,10],"end":[1,3],"checkpoints":[[1,17]],"steps":[{"t":"move","p":[1,17]},{"t":"disappear"},{"t":"wait","s":3},{"t":"appear","p":[5,10]}]},{"motion":"WALK","start":[3,10],"end":[2,2],"checkpoints":[[2,3]],"steps":[{"t":"wait","s":999},{"t":"move","p":[2,3]}]},{"motion":"WALK","start":[3,12],"end":[1,3],"checkpoints":[]},{"motion":"WALK","start":[3,8],"end":[1,3],"checkpoints":[]}],"flags":{"layerGainsEnabled":false,"dpInit":10,"dpPerSec":1,"dpMax":99,"enemyScale":{"hpMul":4.299817,"atkMul":2.143589,"speedMul":1}},"enemyOverrides":{},"waveId":"act1autochess_h08_01","bossId":"boss_8","content":"full","boss":{"poolHp":14400000,"poolMax":14400000}},"authoritative":true,"startAt":0,"serverNow":0,"elapsed":0,"speed":2,"watch":false,"done":false} |