feedback5: merge feedback4 (beb0296) — PR #73 (operator battle voices) ported to the split layout (the voice setting into ui/gameLogic/settings.js, the gameLogic.js shim unchanged; onResult and DetailPanel voice stay in screens/game.js, which needed its store import back; the sim's 'engage' in server/sim/ai.js performAttack, still the one battle/combat.js and devices.js call; plan.mjs / fetch-assets.mjs merged with --add-only, extraOperators and moduleTypes; the 干员语音 slider through t() with English); golden: roster / bonds / fields / standins / diy differ only in events.engage, matches unchanged

Ported by hand:
- public/js/ui/gameLogic.js is a re-export shim on feedback5: #73's DEFAULT_SETTINGS / sanitizeSettings `voice`
  hunk went into public/js/ui/gameLogic/settings.js.
- public/js/screens/game.js: MatchScreen still lives there, so #73's onResult (battleRunner 'result' → resultSpeaker /
  resultVoiceSlot) and `voice=${combat}` on the DetailPanel auto-merged in place. feedback5's game.js no longer
  imported `store` (the split moved its other users), so onResult's store.get() would have thrown into its
  try/catch and the 结算 line would never have played: `store` is imported again. `localAsset` stays dropped.
- public/js/ui/settings.js (i18n phase 1): the slider is `label=${t('干员语音')}`, public/i18n/en.json
  "干员语音": "Operator Voices" (next to Music / Sound Effects).
- tools/assets/plan.mjs: buildPlan takes #73's charword / voiceLang / voiceSlots and feedback5's extraOperators /
  moduleTypes; the template has `modules` and audio { bgm, bossBgm, voice, sfx }. `chars` now includes the 自选 picks,
  so the voice loop's comment says so (the next `npm run assets` plans their lines too).
- tools/fetch-assets.mjs: parseArgs keeps --add-only beside --voice-lang / --voice-all.
- data/assets.json: feedback5's manifest plus #73's audio.voice (120 operators, after bossBgm, the plan order);
  stats files +1680 and bytes +42 041 118 as measured on feedback4, voiceChars 120; the hash is recomputed with
  the generator's contentHash. No other entry changed.
- docs/ASSETS.md: the stats line lists modules and voiceChars. DESIGN §21.30 stays where feedback4 put it; SIM.md's
  'engage' line and docs-consistency's §21.30 test auto-merged (game.js / detailPanel.js still hold the pinned code).
- Auto-merged and checked: audio.js, battle/runner.js emit('result'), components.js mic icon, detailPanel.js voice
  prop, shared/protocol.js EV.ENGAGE, server/sim/ai.js, tools/assets/audio.mjs / cache.mjs, #73's tests.

Where #73 met feedback5 work:
- 补位: a chess fielded as its stand-in shows the stand-in in the detail card, and audio.js keys battle lines by
  UnitInfo spine (the stand-in's model). The 选中干员 line now takes detail.standIn.charId first, so the stand-in
  speaks, not the operator it replaces (test/ui/standin-ui.test.js pins it). A 自选 record is already the pick's.
- The sim's 'engage': stand-in and 自选 units attack through the same performAttack, so it fires for them as well.

Golden regenerated: every moved scenario differs only in events.engage (the new event's count; no gameplay change),
proven by a field-path diff against feedback5:
- roster: all 49; bonds: all 46; fields: all 22; standins: all 10 (the stand-ins engage).
- diy: 101 of 109. Unmoved: diy-010/011/012/092/093 (闪灵, 夜莺, 凯尔希 squads: they only heal, and a heal never
  engages) and diy-077 (薇薇安娜), diy-080/081 (赫德雷), whose picks make no attack in those battles (already so on
  feedback5).
- matches: unchanged.
This commit is contained in:
sganggs committed 2026-10-06 04:31:38 +08:00
commit c5e8d13636
29 files changed
+1059 -278

No files matched your search

+22 -22
View File
@@ -78,7 +78,7 @@
"enemy_9016_acstmr": [7,7,0,0,56]
},
"hooks": [1,70,5243,1013,1013,2476,2828,4586,34,41,83,79,18,33636,2653,14,28,0,1,33,0,20,0],
"events": {"atk":1287,"deploy":36,"die":41,"dmg":2549,"fx":569,"heal":490,"skill":162,"spawn":66,"status":654},
"events": {"atk":1287,"deploy":36,"die":41,"dmg":2549,"engage":16,"fx":569,"heal":490,"skill":162,"spawn":66,"status":654},
"fx": {"airstrike":5,"beam":48,"blink":1,"bombard":18,"bombardShell":18,"burst":20,"copy":3,"dp":3,"drone":252,"droneLock":22,"drones":3,"firewall":1,"firewallBlock":1,"garrisonGrant":1,"lightning":101,"link":3,"lock":18,"phase":1,"radiantSword":3,"shell":7,"snow":5,"split":2,"storm":9,"summon":7,"talent":4,"tide":4,"wanted":9},
"snaps": "2f04ec2a 74d41c45 4031c6ef a96de660 9552f4aa 1ece3dbd 8f25ac54 dd05aa98 6bef1daf bca39502 a45113d4 63ba6a17 2a08b32d ff18139b 858c8fb6 ba05f10b 4cc563eb dd22f08b"
},
@@ -121,7 +121,7 @@
"enemy_9016_acstmr": [6,6,0,0,48]
},
"hooks": [1,34,4963,579,579,892,977,2263,24,24,52,50,139,18082,2121,0,24,0,1,23,0,0,0],
"events": {"atk":595,"deploy":10,"die":24,"dmg":917,"fx":233,"heal":113,"skill":102,"spawn":34,"status":238},
"events": {"atk":595,"deploy":10,"die":24,"dmg":917,"engage":6,"fx":233,"heal":113,"skill":102,"spawn":34,"status":238},
"fx": {"anchor":4,"beam":46,"camouflage":1,"healAoe":29,"overload":1,"phase":1,"shell":6,"splash":137,"substitute":2,"summon":4,"swap":2},
"snaps": "dc0d56b5 5ea2fc96 22a7c614 a844181b da3c3f7d 949d5dbc f7646a53 01f0d227 f3885c32 030b669b 1fb58b64 44930d09 d25240d2 f8eafa88 14aa67a5 9dfef3d2 753642cc"
},
@@ -173,7 +173,7 @@
],
"enemies": {"enemy_1005_yokai_2":[6,6,0,2907,62190],"enemy_1430_lrrook":[2,2,0,0,802449],"enemy_9017_achunt":[2,0,0,37534,649142]},
"hooks": [1,46,6000,1326,1334,3080,3125,4772,12,22,145,142,30,41390,1023,0,10,0,1,12,0,12,1],
"events": {"atk":1360,"deploy":36,"die":22,"dmg":3119,"fx":674,"heal":100,"skill":287,"spawn":32,"status":493},
"events": {"atk":1360,"deploy":36,"die":22,"dmg":3119,"engage":18,"fx":674,"heal":100,"skill":287,"spawn":32,"status":493},
"fx": {
"aoe": 43,
"appear": 2,
@@ -243,7 +243,7 @@
],
"enemies": {"enemy_1249_lysdb_2":[5,5,0,9852,107495],"enemy_1430_lrrook":[2,0,2,0,58068],"enemy_9017_achunt":[1,0,0,20757,137787]},
"hooks": [1,21,6000,385,385,1021,1424,4322,8,10,25,24,0,11667,66,5,8,2,1,12,0,3,1],
"events": {"atk":400,"deploy":13,"die":8,"dmg":1420,"fx":263,"heal":39,"leak":2,"skill":52,"spawn":18,"status":410},
"events": {"atk":400,"deploy":13,"die":8,"dmg":1420,"engage":7,"fx":263,"heal":39,"leak":2,"skill":52,"spawn":18,"status":410},
"fx": {"bandage":2,"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":6,"truesilver":3},
"snaps": "c067d0c5 9f4c5a58 85fccb2d c89eed8f 09312c88 452b8138 ee2ad798 da21566b cb07f503 e1edca84 9e18d3aa dbfd29d7 66bcd79a 979872f8 086680fd 722ac503 c2d3bae4 480a95f5 140b0229 df277c2a"
},
@@ -312,7 +312,7 @@
"enemy_9023_acdums": [6,5,0,8235,50]
},
"hooks": [1,53,3100,807,807,1766,1999,1481,19,26,39,32,197,23632,911,3,19,0,1,18,0,1,0],
"events": {"atk":923,"deploy":30,"die":26,"dmg":1840,"fx":580,"heal":161,"skill":71,"spawn":51,"status":317},
"events": {"atk":923,"deploy":30,"die":26,"dmg":1840,"engage":15,"fx":580,"heal":161,"skill":71,"spawn":51,"status":317},
"fx": {"airstrike":88,"beam":5,"blink":2,"bombard":29,"bombardShell":29,"buff":2,"burst":1,"copy":2,"displace":1,"dp":3,"drone":160,"droneLock":20,"drones":2,"explode":88,"finale":1,"garrisonGrant":1,"lightning":45,"link":2,"lock":29,"lure":2,"phase":11,"radiantSword":2,"slash":11,"snow":11,"split":2,"steal":3,"storm":4,"summon":10,"sunBurst":1,"talent":4,"telegraph":3,"tide":3,"wanted":3},
"snaps": "e7a827a7 3396c380 e8117486 1db9371a 66bbae78 d4dfefb8 2b76c77d 6fb604d2 938cd200 0f56d15f b30da21a"
},
@@ -363,7 +363,7 @@
"enemy_9023_acdums": [9,8,0,3550,78]
},
"hooks": [1,45,4918,316,316,573,1279,644,23,26,58,55,21,14006,1016,1,22,0,1,101,0,1,0],
"events": {"atk":344,"deploy":17,"die":26,"dmg":597,"fx":237,"heal":41,"skill":113,"spawn":39,"status":146},
"events": {"atk":344,"deploy":17,"die":26,"dmg":597,"engage":8,"fx":237,"heal":41,"skill":113,"spawn":39,"status":146},
"fx": {"anchor":1,"aoe":3,"beam":8,"burst":1,"candle":3,"ember":2,"explode":141,"healAoe":22,"overload":3,"phase":17,"revive":1,"splash":21,"substitute":1,"summon":9,"swap":1,"telegraph":1,"teleport":2},
"snaps": "165e5292 c4adc9b7 d9efbe56 b04b7078 02908f60 4fd4ad05 065d2593 63d56b7a a53e0b0e e1fd3f2a b6534bb2 cac54dd4 80457fc1 f44190f2 fba20cd8 4fb50167 41e708fa"
},
@@ -415,7 +415,7 @@
],
"enemies": {"enemy_1010_demon":[4,4,0,3991,200612],"enemy_1438_dspred":[10,6,4,14373,738747],"enemy_1521_dslily":[1,0,0,94162,997002]},
"hooks": [1,65,6000,1201,1270,2930,3054,5119,44,50,117,115,15,31431,1146,14,15,4,1,46,0,30,4],
"events": {"atk":1435,"deploy":50,"die":46,"dmg":3045,"fx":727,"heal":166,"leak":4,"skill":232,"spawn":37,"status":796},
"events": {"atk":1435,"deploy":50,"die":46,"dmg":3045,"engage":17,"fx":727,"heal":166,"leak":4,"skill":232,"spawn":37,"status":796},
"fx": {
"aoe": 28,
"appear": 8,
@@ -490,7 +490,7 @@
],
"enemies": {"enemy_1010_demon_2":[2,2,0,7219,107495],"enemy_1438_dspred":[5,2,3,27889,136924],"enemy_1521_dslily":[1,0,0,68800,413498]},
"hooks": [1,23,6000,568,568,962,1070,7648,8,11,25,24,0,13395,133,10,8,3,1,8,0,31,0],
"events": {"atk":763,"deploy":13,"die":8,"dmg":1052,"fx":336,"heal":102,"leak":3,"skill":51,"spawn":20,"status":523},
"events": {"atk":763,"deploy":13,"die":8,"dmg":1052,"engage":6,"fx":336,"heal":102,"leak":3,"skill":51,"spawn":20,"status":523},
"fx": {"bandage":1,"block":18,"burst":31,"camouflage":1,"featherArrow":5,"garrisonGrant":1,"grow":1,"healField":2,"jungleSoul":1,"mote":68,"redistribute":45,"reweave":3,"rockfall":18,"rockslide":4,"sandChains":6,"shieldBreak":18,"slash":46,"spGift":3,"tentacle":6,"thorns":50,"tide":5,"truesilver":3},
"snaps": "889b80ca 2554f68d 135727ee c74793bb 39ae3d9e 2f63625f 35d2d1d0 ab151905 58401106 8d34f3b8 1bed3837 592255cb 58e436d2 7cfc39b2 dd3f9d1c 6d83e822 e5e306e4 07c6dca8 5430994c 32254003"
},
@@ -553,7 +553,7 @@
"enemy_2017_csphts": [6,6,0,57,60000]
},
"hooks": [1,48,2043,386,386,1039,1247,1441,12,23,46,33,25,14922,812,19,14,0,1,10,0,10,43],
"events": {"atk":521,"deploy":34,"die":23,"dmg":1138,"fx":335,"heal":254,"skill":79,"spawn":41,"status":373},
"events": {"atk":521,"deploy":34,"die":23,"dmg":1138,"engage":20,"fx":335,"heal":254,"skill":79,"spawn":41,"status":373},
"fx": {
"airstrike": 9,
"blink": 13,
@@ -634,7 +634,7 @@
"enemy_5601_entlec": [2,2,0,0,4958]
},
"hooks": [1,24,3922,253,253,464,723,3549,12,13,44,41,63,12249,707,11,11,0,1,10,0,2,28],
"events": {"atk":257,"deploy":13,"die":13,"dmg":541,"fx":143,"heal":160,"skill":85,"spawn":23,"status":140},
"events": {"atk":257,"deploy":13,"die":13,"dmg":541,"engage":8,"fx":143,"heal":160,"skill":85,"spawn":23,"status":140},
"fx": {"anchor":1,"aoe":1,"blink":3,"bloodBattle":1,"burst":2,"candle":2,"dodge":28,"explode":16,"healAoe":16,"overload":2,"shieldBreak":2,"splash":63,"summon":4,"telegraph":1,"teleport":1},
"snaps": "1b2c287a 675f6516 fe7fec9f 7befc28b 5055ef2d f5a1b7d4 597e1735 157dd534 488e94fe b43c89ae cc11a2ec b2d6ae70 81dc7d36"
},
@@ -693,7 +693,7 @@
"enemy_9032_aclionk": [1,0,0,30213,1275159]
},
"hooks": [1,49,6000,1361,1380,2376,2393,818,22,26,128,124,0,39025,1440,4,14,2,1,18,0,4,1],
"events": {"atk":1441,"deploy":35,"die":24,"dmg":2375,"fx":660,"heal":25,"leak":2,"skill":252,"spawn":36,"status":926},
"events": {"atk":1441,"deploy":35,"die":24,"dmg":2375,"engage":14,"fx":660,"heal":25,"leak":2,"skill":252,"spawn":36,"status":926},
"fx": {
"aoe": 46,
"appear": 4,
@@ -779,7 +779,7 @@
"enemy_9032_aclionk": [1,0,0,40445,102806]
},
"hooks": [1,47,6000,190,190,281,479,1232,32,34,21,21,0,7024,68,2,20,2,1,23,0,0,2],
"events": {"atk":220,"deploy":21,"die":32,"dmg":208,"fx":90,"leak":2,"skill":44,"spawn":36,"status":187},
"events": {"atk":220,"deploy":21,"die":32,"dmg":208,"engage":7,"fx":90,"leak":2,"skill":44,"spawn":36,"status":187},
"fx": {"dodge":2,"equip":12,"featherArrow":7,"flame":3,"garrisonGrant":1,"jungleSoul":2,"mote":9,"riposte":2,"rockslide":1,"sandChains":4,"slash":24,"summon":2,"sword":1,"telegraph":11,"truesilver":4,"vest":5},
"snaps": "0bc7ed75 fd621b74 943602ec 1ce73978 7eacd037 6f2ca0e5 5c055acf 20ca0a27 1c880376 72dc5f46 b8f2dcf8 62ed54d6 fb3d8d3c 49c21d20 99bfce59 3443456c fa01dd99 a8e70810 51b46f88 c9b8fd8c"
},
@@ -843,7 +843,7 @@
"enemy_9033_acdeer": [1,1,0,31682,2000000]
},
"hooks": [1,48,4336,1067,1067,2744,3021,1847,21,26,74,65,168,28153,1324,4,17,0,1,20,0,13,0],
"events": {"atk":1253,"deploy":31,"die":26,"dmg":2760,"fx":408,"heal":397,"skill":139,"spawn":46,"status":489},
"events": {"atk":1253,"deploy":31,"die":26,"dmg":2760,"engage":16,"fx":408,"heal":397,"skill":139,"spawn":46,"status":489},
"fx": {"airstrike":56,"beam":3,"blink":2,"burst":13,"column":35,"copy":4,"dp":4,"drone":234,"droneLock":10,"drones":2,"explode":6,"garrisonGrant":1,"link":1,"phase":1,"scorchBurst":6,"shieldBreak":4,"snow":5,"split":2,"steal":4,"sunBurst":4,"talent":4,"tide":4,"wanted":3},
"snaps": "527acd3d 92bc6ca9 876af6f6 ea8c9a0e f082d1da adde4620 f5961cc7 b435e7b1 7360837d 84873d28 88a49cde a00c3bbe 76703005 ae4ac41c 776d184f"
},
@@ -889,7 +889,7 @@
"enemy_9033_acdeer": [1,0,0,79550,394112]
},
"hooks": [1,36,6000,403,403,570,1171,2220,17,22,68,68,0,14790,584,4,13,0,1,99,0,0,0],
"events": {"atk":405,"deploy":23,"die":22,"dmg":570,"fx":126,"heal":157,"skill":136,"spawn":26,"status":132},
"events": {"atk":405,"deploy":23,"die":22,"dmg":570,"engage":6,"fx":126,"heal":157,"skill":136,"spawn":26,"status":132},
"fx": {"anchor":3,"aoe":2,"beam":5,"camouflage":1,"candle":1,"column":58,"ember":2,"explode":5,"healAoe":36,"overload":4,"phase":1,"reborn":2,"teleport":6},
"snaps": "fb57a457 3421e2b8 dbddb577 aef7b23c d91bd1fa 3b8774f3 e60348ab e4ca3c93 a3da29b6 ff5e9594 61b7b3b6 fe058645 c5dfd928 9f980ca6 e767bfd0 564e23cc be96a5c2 f867fc1e fa98a005 402593b3"
},
@@ -949,7 +949,7 @@
"enemy_9016_acstmr": [8,7,0,0,54]
},
"hooks": [1,89,6000,891,892,2797,3003,4207,66,69,96,92,9,23645,681,20,35,2,1,69,0,9,3],
"events": {"atk":1042,"deploy":54,"die":67,"dmg":2998,"fx":569,"heal":157,"leak":2,"skill":188,"spawn":57,"status":603},
"events": {"atk":1042,"deploy":54,"die":67,"dmg":2998,"engage":17,"fx":569,"heal":157,"leak":2,"skill":188,"spawn":57,"status":603},
"fx": {
"aoe": 34,
"appear": 7,
@@ -1040,7 +1040,7 @@
"enemy_9016_acstmr": [7,7,0,0,25]
},
"hooks": [1,54,6000,267,267,494,540,687,39,46,13,13,0,5501,23,3,27,7,1,33,0,0,0],
"events": {"atk":302,"deploy":23,"die":39,"dmg":534,"fx":159,"heal":53,"leak":7,"skill":27,"spawn":41,"status":85},
"events": {"atk":302,"deploy":23,"die":39,"dmg":534,"engage":5,"fx":159,"heal":53,"leak":7,"skill":27,"spawn":41,"status":85},
"fx": {"beam":30,"blink":9,"block":6,"charge":5,"explode":8,"garrisonGrant":1,"healField":4,"mote":3,"phase":1,"reweave":1,"rockslide":4,"sandChains":1,"shell":7,"shieldBreak":6,"slash":57,"spGift":4,"summon":5,"telegraph":3,"thorns":1,"truesilver":3},
"snaps": "d1aaefe9 f284f922 d74a8f1d 9602e109 b0305cfc 7b811d98 c4991959 ad45bb9a c0314dcb 5738a584 6b481a5e e722f224 6c75c6d1 4ab59316 634e74cd 6b7487d0 c53dedc9 5845fde7 ed4678e2 1504d879"
},
@@ -1113,7 +1113,7 @@
"enemy_9020_actrpc": [1,0,0,23518,779087]
},
"hooks": [1,64,6000,1437,1437,5817,10461,3760,37,44,94,90,273,39484,1919,13,13,0,1,43,0,20,0],
"events": {"atk":1698,"deploy":45,"die":44,"dmg":10089,"fx":1996,"heal":518,"skill":184,"spawn":49,"status":715},
"events": {"atk":1698,"deploy":45,"die":44,"dmg":10089,"engage":24,"fx":1996,"heal":518,"skill":184,"spawn":49,"status":715},
"fx": {
"airstrike": 85,
"beam": 17,
@@ -1203,7 +1203,7 @@
"enemy_9020_actrpc": [1,0,0,18433,541946]
},
"hooks": [1,37,4603,736,736,2707,6478,4829,12,17,77,71,105,18169,2008,13,12,0,1,47,0,2,0],
"events": {"atk":1087,"deploy":25,"die":17,"dmg":6098,"fx":663,"heal":361,"skill":148,"spawn":26,"status":224},
"events": {"atk":1087,"deploy":25,"die":17,"dmg":6098,"engage":11,"fx":663,"heal":361,"skill":148,"spawn":26,"status":224},
"fx": {"anchor":4,"aoe":2,"beam":17,"burst":2,"candle":5,"charge":5,"dash":9,"ember":1,"explode":1,"healAoe":20,"link":459,"overload":3,"palsy":2,"phase":9,"shieldBreak":8,"splash":105,"substitute":2,"summon":1,"swap":2,"teleport":6},
"snaps": "3c1045a0 9d7d77a9 a1302e26 19ce8f60 d773ac92 c1604114 ce3ff643 dc9c2381 ee91c31a 0e7f8e4d 9af2b87d fb2021c1 ee17f723 6cc85d21 ddbddcf1 fef4d0f5"
},
@@ -1263,7 +1263,7 @@
"enemy_9023_acdums": [12,12,0,16949,120]
},
"hooks": [1,50,6000,1176,1325,2523,2675,5575,22,24,65,60,0,30221,1487,5,18,0,1,24,0,5,0],
"events": {"atk":1269,"deploy":30,"die":24,"dmg":2664,"fx":984,"heal":48,"skill":125,"spawn":42,"status":569},
"events": {"atk":1269,"deploy":30,"die":24,"dmg":2664,"engage":14,"fx":984,"heal":48,"skill":125,"spawn":42,"status":569},
"fx": {
"beam": 12,
"blink": 2,
@@ -1341,7 +1341,7 @@
"enemy_9023_acdums": [10,10,0,38449,100]
},
"hooks": [1,26,6000,602,602,1242,1839,4975,13,14,27,24,0,13945,59,10,15,1,1,17,0,11,0],
"events": {"atk":703,"deploy":11,"die":13,"dmg":1826,"fx":463,"heal":151,"leak":1,"skill":53,"spawn":25,"status":257},
"events": {"atk":703,"deploy":11,"die":13,"dmg":1826,"engage":6,"fx":463,"heal":151,"leak":1,"skill":53,"spawn":25,"status":257},
"fx": {"bandage":4,"beam":15,"burst":11,"ember":2,"explode":189,"featherArrow":7,"garrisonGrant":1,"healField":2,"jungleSoul":5,"mote":61,"phase":30,"redistribute":43,"reweave":3,"rockslide":2,"sandChainsCharged":1,"shieldBreak":15,"slash":52,"spGift":7,"summon":8,"telegraph":2,"truesilver":3},
"snaps": "94ed0146 7aa5e4e9 a874864d 30318786 bdfb16b6 6918b2ce 7730d01a d9e4bd51 7ee58629 31867138 dca52206 d53f4ec5 d7497fdf b13092f9 af40e2ec fbf47558 faca1653 c3c78c84 013d42c0 76aed4b1"
},
@@ -1379,7 +1379,7 @@
],
"enemies": {"enemy_10028_vtswd":[1,0,0,0,0],"enemy_1158_divman":[4,4,0,322,15206],"enemy_1160_hvyslr":[3,3,0,242,34560],"enemy_1161_tidmag":[3,3,0,1639,20736]},
"hooks": [1,25,5100,25,25,60,131,2350,12,15,6,5,1,9905,13,1,11,0,1,12,0,2,0],
"events": {"atk":31,"bounty":1,"deploy":14,"die":15,"dmg":81,"fx":41,"skill":11,"spawn":22,"status":43},
"events": {"atk":31,"bounty":1,"deploy":14,"die":15,"dmg":81,"engage":3,"fx":41,"skill":11,"spawn":22,"status":43},
"fx": {"bombard":1,"bombardShell":1,"burst":2,"camouflage":1,"lightning":14,"lock":1,"lure":1,"snow":14,"storm":1,"talent":1,"tide":3,"wanted":1},
"snaps": "bc4d9dee 6b989664 7f5f95f3 ac72ca97 5b36eba3 8848c44c 416a79d0 83d6a682 4c3c7071 4b0d1cf1 4bbc1a69 b1de6d6e 51937a76 d4866fb0 3c8dacc7 abd83c41 1113b931"
},
@@ -1427,7 +1427,7 @@
],
"enemies": {"enemy_10029_vtshld":[1,0,0,0,0],"enemy_1249_lysdb_2":[3,3,0,859,53748],"enemy_1251_lysyta":[4,4,0,0,32846],"enemy_1329_cbshld":[3,3,0,8987,89580]},
"hooks": [1,34,6900,174,174,313,539,506,11,16,9,7,0,19291,439,5,11,0,1,11,0,0,0],
"events": {"atk":274,"bounty":1,"deploy":23,"die":16,"dmg":310,"fx":164,"heal":199,"skill":16,"spawn":29,"status":89},
"events": {"atk":274,"bounty":1,"deploy":23,"die":16,"dmg":310,"engage":5,"fx":164,"heal":199,"skill":16,"spawn":29,"status":89},
"fx": {"blink":2,"copy":1,"drone":139,"droneLock":9,"drones":2,"garrisonGrant":1,"link":1,"radiantSword":1,"shieldBreak":3,"summon":1,"sunBurst":1,"talent":3},
"snaps": "87a560e8 45db343c 0d5cd8db e792866d d5cc68e6 078f9bf4 c8fec815 474d7baf 079475d2 d3772234 c93b6998 574ad909 4ebd4b48 1081da2e 5c69184d e8708f8b 098ca455 4c75c9b4 eec01031 7a5056b5 087553f4 7686d406 9672a226"
}