← Back to Runs
Run Detail
305a4dff-83b3-4350-b24d-a233abf87a60
Started24/06/2026, 23:54:46
Git SHAee5ff87e
Statedirty
Avg Error %0.20%
BH Sig Count3
Total Cases201
Passing181
Run Report—
Testcase Set Diff vs Previous Run
+ Added (23)
- testcases/emulator_verified/wos444_bradley_s3_all_troops_damage_control_nc.json :: wos444_bradley_s3_all_troops_damage_control_nc :: 0
- testcases/emulator_verified/wos444_bradley_s3_all_troops_damage_control_nc.json :: wos444_bradley_s3_all_troops_damage_control_nc :: 1
- testcases/emulator_verified/wos444_bradley_s3_all_troops_damage_control_nc.json :: wos444_bradley_s3_all_troops_damage_control_nc :: 2
- testcases/emulator_verified/wos444_bradley_s3_all_troops_damage_hero_nc.json :: wos444_bradley_s3_all_troops_damage_hero_nc :: 0
- testcases/emulator_verified/wos444_edith_s11_mark_damage_taken_control_nc.json :: wos444_edith_s11_mark_damage_taken_control_nc :: 0
- testcases/emulator_verified/wos444_edith_s11_mark_damage_taken_control_nc.json :: wos444_edith_s11_mark_damage_taken_control_nc :: 1
- testcases/emulator_verified/wos444_edith_s11_mark_damage_taken_hero_nc.json :: wos444_edith_s11_mark_damage_taken_hero_nc :: 0
- testcases/emulator_verified/wos444_edith_s12_lancer_damage_dealt_control_nc.json :: wos444_edith_s12_lancer_damage_dealt_control_nc :: 0
- testcases/emulator_verified/wos444_edith_s12_lancer_damage_dealt_hero_nc.json :: wos444_edith_s12_lancer_damage_dealt_hero_nc :: 0
- testcases/emulator_verified/wos444_gordon_s22_all_enemy_damage_dealt_control_nc.json :: wos444_gordon_s22_all_enemy_damage_dealt_control_nc :: 0
- testcases/emulator_verified/wos444_gordon_s22_all_enemy_damage_dealt_control_nc.json :: wos444_gordon_s22_all_enemy_damage_dealt_control_nc :: 1
- testcases/emulator_verified/wos444_gordon_s22_all_enemy_damage_dealt_control_nc.json :: wos444_gordon_s22_all_enemy_damage_dealt_control_nc :: 2
- testcases/emulator_verified/wos444_gordon_s22_all_enemy_damage_dealt_hero_nc.json :: wos444_gordon_s22_all_enemy_damage_dealt_hero_nc :: 0
- testcases/emulator_verified/wos451_bradley_s21_lancer_damage_up_bucket.json :: wos451_bradley_s21_lancer_damage_up_bucket :: 0
- testcases/emulator_verified/wos451_bradley_s21_lancer_damage_up_control.json :: wos451_bradley_s21_lancer_damage_up_control :: 0
- testcases/emulator_verified/wos451_bradley_s22_infantry_damage_up_bucket.json :: wos451_bradley_s22_infantry_damage_up_bucket :: 0
- testcases/emulator_verified/wos451_bradley_s22_infantry_damage_up_control.json :: wos451_bradley_s22_infantry_damage_up_control :: 0
- testcases/emulator_verified/wos451_bradley_s3_all_damage_up_bucket.json :: wos451_bradley_s3_all_damage_up_bucket :: 0
- testcases/emulator_verified/wos451_bradley_s3_all_damage_up_control.json :: wos451_bradley_s3_all_damage_up_control :: 0
- testcases/emulator_verified/wos451_gordon_s11_lancer_damage_up_bucket.json :: wos451_gordon_s11_lancer_damage_up_bucket :: 0
- … and 3 more
Code Changes Since Previous Run
Index: simulator/config/hero_definitions/Bradley.json===================================================================--- simulator/config/hero_definitions/Bradley.json prev run+++ simulator/config/hero_definitions/Bradley.json this run@@ -27,9 +27,9 @@"type": "battle_start"},"effects": {"PowerShot/1": {- "type": "active.hero.lethality.up",+ "type": "active.hero.damage.up","value": [6,12,18,@@ -42,9 +42,9 @@]}},"PowerShot/2": {- "type": "active.hero.lethality.up",+ "type": "active.hero.damage.up","value": [5,10,15,Index: simulator/config/hero_definitions/Gordon.json===================================================================--- simulator/config/hero_definitions/Gordon.json prev run+++ simulator/config/hero_definitions/Gordon.json this run@@ -11,9 +11,9 @@"source": "lancer"},"effects": {"VenomInfusion/1": {- "type": "active.hero.damage.up",+ "type": "active.hero.attack.up","value": [20,40,60,@@ -22,10 +22,9 @@],"units": {"applies_to": ["lancer"- ],- "applies_vs": "trigger.target"+ ]},"duration": {"type": "attack","value": 1@@ -40,10 +39,9 @@16,20],"units": {- "applies_to": "trigger.target",- "applies_vs": "any"+ "applies_to": "trigger.target"},"duration": {"type": "turn","value": 1@@ -69,10 +67,9 @@],"units": {"applies_to": ["lancer"- ],- "applies_vs": "any"+ ]},"duration": {"type": "turn","value": 1Index: simulator/config/hero_definitions/Gwen.json===================================================================--- simulator/config/hero_definitions/Gwen.json prev run+++ simulator/config/hero_definitions/Gwen.json this run@@ -5,9 +5,10 @@"skills": {"EagleVision": {"description": "Increasing target's damage taken by X%","trigger": {- "type": "attack"+ "type": "attack",+ "every": 2},"effects": {"EagleVision/1": {"type": "active.hero.damageTaken.up",@@ -18,9 +19,9 @@20,25],"units": {- "applies_to": "target"+ "applies_to": "enemy"},"duration": {"type": "attack","value": 1@@ -28,12 +29,12 @@}}},"AirDominance": {- "description": "Grants all troops' attack X% extra damage after every 5 attacks and causes the target to receive X% extra damage for its next attack received",+ "description": "Grants all troops' attack X% extra damage after every 4 attacks and causes the target to receive X% extra damage for its next attack received","trigger": {"type": "attack",- "every": 5+ "every": 4},"effects": {"AirDominance/1": {"type": "extra_skill_attack",@@ -59,9 +60,9 @@}]},"AirDominance/2": {- "type": "active.hero.defense.down",+ "type": "active.hero.damageTaken.up","value": [5,7.5,10,@@ -98,10 +99,9 @@],"units": {"applies_to": ["marksman"- ],- "applies_vs": "any"+ ]},"duration": {"type": "attack","value": 1,Index: simulator/config/hero_definitions/Hector.json===================================================================--- simulator/config/hero_definitions/Hector.json prev run+++ simulator/config/hero_definitions/Hector.json this run@@ -64,9 +64,9 @@"value": 15}},"Rampant/2": {- "type": "active.hero.lethality.up",+ "type": "active.hero.damage.up","value": [20,40,60,Index: simulator/config/hero_definitions/Lumak.json===================================================================--- simulator/config/hero_definitions/Lumak.json prev run+++ simulator/config/hero_definitions/Lumak.json this run@@ -9,9 +9,9 @@"type": "battle_start"},"effects": {"TacticalDeception/1": {- "type": "active.hero.lethality.down",+ "type": "active.hero.damage.down","value": [4,8,12,Index: simulator/config/hero_definitions/Norah.json===================================================================--- simulator/config/hero_definitions/Norah.json prev run+++ simulator/config/hero_definitions/Norah.json this run@@ -9,9 +9,9 @@"type": "battle_start"},"effects": {"CombinedArms/1": {- "type": "active.hero.defense.up",+ "type": "active.hero.damageTaken.down","value": [3,6,9,@@ -113,9 +113,9 @@"value": 2}},"Momentum/2": {- "type": "active.hero.defense.up",+ "type": "active.hero.damageTaken.down","value": [5,10,15,Index: simulator/config/hero_definitions/Renee.json===================================================================--- simulator/config/hero_definitions/Renee.json prev run+++ simulator/config/hero_definitions/Renee.json this run@@ -6,62 +6,54 @@"NightmareTrace": {"description": "Troops place Dream Marks on targets every two turns, dealing extra Lancer damage once next turn","trigger": {"type": "turn",- "every": 2+ "every": 2,+ "source": "lancer"},"effects": {"NightmareTrace/1": {- "type": "extra_skill_attack",+ "type": "active.hero.defense.down","value": [40,80,120,160,200],"units": {- "applies_to": [- "lancer"- ],- "applies_vs": "any"+ "applies_to": "target",+ "applies_vs": "lancer"},"duration": {"type": "attack","value": 1,"delay": 1},- "same_effect_stacking": "max",- "trigger_damage_jobs": [- {- "source": "use.source",- "target": "use.target"- }- ]+ "same_effect_stacking": "max"}}},"Dreamcatcher": {"description": "Dream Marks highlight enemy vulnerabilities, increasing damage dealt by Lancers to marked targets","trigger": {"type": "turn",- "every": 2+ "every": 2,+ "source": "lancer"},"effects": {"Dreamcatcher/1": {- "type": "active.hero.lethality.up",+ "type": "active.hero.defense.down","value": [30,60,90,120,150],"units": {- "applies_to": [- "lancer"- ],- "applies_vs": "any"+ "applies_to": "target",+ "applies_vs": "lancer"},"duration": {"type": "turn","value": 1,@@ -75,9 +67,9 @@"description": "Dream Marks expose enemy weaknesses, increasing damage taken by marked targets for all troops","trigger": {"type": "turn","every": 2,- "source": "self.any"+ "source": "lancer"},"effects": {"Dreamslice/1": {"type": "active.hero.defense.down",Index: simulator/config/hero_definitions/Sergey.json===================================================================--- simulator/config/hero_definitions/Sergey.json prev run+++ simulator/config/hero_definitions/Sergey.json this run@@ -9,9 +9,9 @@"type": "battle_start"},"effects": {"DefendersEdge/1": {- "type": "active.hero.defense.up",+ "type": "active.hero.damageTaken.down","value": [4,8,12,Index: simulator/config/troop_stats.json===================================================================--- simulator/config/troop_stats.json prev run+++ simulator/config/troop_stats.json this run@@ -874,8 +874,32 @@"Lethality": 10,"Health": 2073}},+ "infantry_t10_fc9": {+ "id": "infantry_t10_fc9",+ "type": "infantry",+ "tier": 10,+ "fc": 9,+ "stats": {+ "Attack": 726,+ "Defense": 10,+ "Lethality": 10,+ "Health": 2178+ }+ },+ "infantry_t10_fc10": {+ "id": "infantry_t10_fc10",+ "type": "infantry",+ "tier": 10,+ "fc": 10,+ "stats": {+ "Attack": 762,+ "Defense": 10,+ "Lethality": 10,+ "Health": 2286+ }+ },"infantry_t11": {"id": "infantry_t11","type": "infantry","tier": 11,@@ -934,8 +958,32 @@"Lethality": 10,"Health": 2285}},+ "infantry_t11_fc9": {+ "id": "infantry_t11_fc9",+ "type": "infantry",+ "tier": 11,+ "fc": 9,+ "stats": {+ "Attack": 800,+ "Defense": 10,+ "Lethality": 10,+ "Health": 2400+ }+ },+ "infantry_t11_fc10": {+ "id": "infantry_t11_fc10",+ "type": "infantry",+ "tier": 11,+ "fc": 10,+ "stats": {+ "Attack": 840,+ "Defense": 10,+ "Lethality": 10,+ "Health": 2520+ }+ },"lancer_t10_fc6": {"id": "lancer_t10_fc6","type": "lancer","tier": 10,@@ -970,8 +1018,32 @@"Lethality": 10,"Health": 691}},+ "lancer_t10_fc9": {+ "id": "lancer_t10_fc9",+ "type": "lancer",+ "tier": 10,+ "fc": 9,+ "stats": {+ "Attack": 2178,+ "Defense": 10,+ "Lethality": 10,+ "Health": 726+ }+ },+ "lancer_t10_fc10": {+ "id": "lancer_t10_fc10",+ "type": "lancer",+ "tier": 10,+ "fc": 10,+ "stats": {+ "Attack": 2286,+ "Defense": 10,+ "Lethality": 10,+ "Health": 762+ }+ },"lancer_t11_fc6": {"id": "lancer_t11_fc6","type": "lancer","tier": 11,@@ -1006,8 +1078,32 @@"Lethality": 10,"Health": 762}},+ "lancer_t11_fc9": {+ "id": "lancer_t11_fc9",+ "type": "lancer",+ "tier": 11,+ "fc": 9,+ "stats": {+ "Attack": 2400,+ "Defense": 10,+ "Lethality": 10,+ "Health": 800+ }+ },+ "lancer_t11_fc10": {+ "id": "lancer_t11_fc10",+ "type": "lancer",+ "tier": 11,+ "fc": 10,+ "stats": {+ "Attack": 2520,+ "Defense": 10,+ "Lethality": 10,+ "Health": 840+ }+ },"marksman_t10_fc6": {"id": "marksman_t10_fc6","type": "marksman","tier": 10,@@ -1042,8 +1138,32 @@"Lethality": 10,"Health": 519}},+ "marksman_t10_fc9": {+ "id": "marksman_t10_fc9",+ "type": "marksman",+ "tier": 10,+ "fc": 9,+ "stats": {+ "Attack": 2904,+ "Defense": 10,+ "Lethality": 10,+ "Health": 545+ }+ },+ "marksman_t10_fc10": {+ "id": "marksman_t10_fc10",+ "type": "marksman",+ "tier": 10,+ "fc": 10,+ "stats": {+ "Attack": 3048,+ "Defense": 10,+ "Lethality": 10,+ "Health": 572+ }+ },"marksman_t11_fc6": {"id": "marksman_t11_fc6","type": "marksman","tier": 11,@@ -1078,8 +1198,32 @@"Lethality": 10,"Health": 572}},+ "marksman_t11_fc9": {+ "id": "marksman_t11_fc9",+ "type": "marksman",+ "tier": 11,+ "fc": 9,+ "stats": {+ "Attack": 3200,+ "Defense": 10,+ "Lethality": 10,+ "Health": 600+ }+ },+ "marksman_t11_fc10": {+ "id": "marksman_t11_fc10",+ "type": "marksman",+ "tier": 11,+ "fc": 10,+ "stats": {+ "Attack": 3360,+ "Defense": 10,+ "Lethality": 10,+ "Health": 630+ }+ },"lancer_t1": {"id": "lancer_t1","type": "lancers","tier": 1,Index: simulator/src/simulator.test.ts===================================================================--- simulator/src/simulator.test.ts prev run+++ simulator/src/simulator.test.ts this run@@ -957,32 +957,39 @@assert.deepEqual(result.remaining.defender, { infantry: 0, lancer: 0, marksman: 0 });});test("committed losses clamp exhausted floating point residue before next-round target selection", () => {- const config = loadSimulatorConfig();- const fixturePath = fileURLToPath(new URL("../testcases/emulator_verified/renee_solo_nc.json", import.meta.url));- const testcases = JSON.parse(readFileSync(fixturePath, "utf8")) as Array<BattleInput & { test_id: string }>;- const input = testcases.find((testcase) => testcase.test_id === "renee_solo_nc");- if (!input) throw new Error("missing renee_solo_nc fixture");-- const adjusted = structuredClone(input);- for (const [fighter, adjustment] of [- [adjusted.attacker, 0.05],- [adjusted.defender, -0.05]- ] as const) {- for (const stats of Object.values(fighter.stats ?? {})) {- for (const key of ["attack", "defense", "lethality", "health"] as const) {- if (stats[key] !== undefined) stats[key] = Number((Number(stats[key]) + adjustment).toFixed(3));+ const result = simulateBattle(+ {+ maxRounds: 2,+ attacker: {+ troops: { infantry_t1: 10, lancer_t1: 100 },+ heroes: {}+ },+ defender: {+ troops: { infantry_t1: 1000, lancer_t1: 1000, marksman_t1: 1000 },+ stats: {+ infantry: { attack: 1, lethality: 1 },+ lancer: { attack: 1, lethality: 1 },+ marksman: { attack: 1, lethality: 1 }+ },+ heroes: {}}- }- }- const result = simulateBattle(adjusted, config, { mode: "trace" });- const roundSix = result.trace?.rounds.find((round) => round.round === 6);- const defenderTargets = roundSix?.intents+ },+ minimalConfig(),+ { mode: "trace" }+ );+ const roundOneInfantryLosses = result.attacks+ .filter((attack) => attack.jobId.startsWith("r1:") && attack.defenderSide === "attacker" && attack.defenderUnit === "infantry")+ .map((attack) => attack.kills);+ const roundTwo = result.trace?.rounds.find((round) => round.round === 2);+ const defenderTargets = roundTwo?.intents.filter((intent) => intent.attackerSide === "defender").map((intent) => intent.defenderUnit);- assert.equal(roundSix?.roundStartTroops.attacker.infantry, 0);+ assert.ok(roundOneInfantryLosses.every((kills) => !Number.isInteger(kills)));+ assert.equal(roundOneInfantryLosses.reduce((sum, kills) => sum + kills, 0), 10);+ assert.equal(roundTwo?.roundStartTroops.attacker.infantry, 0);assert.deepEqual(defenderTargets, ["lancer", "lancer", "lancer"]);});test("extra skill trigger damage jobs reject missing runtime selectors", () => {Index: testcases/emulator_verified/wos444_bradley_s3_all_troops_damage_control_nc.json===================================================================--- testcases/emulator_verified/wos444_bradley_s3_all_troops_damage_control_nc.json prev run+++ testcases/emulator_verified/wos444_bradley_s3_all_troops_damage_control_nc.json this run@@ -0,0 +1,212 @@+[+ {+ "test_id": "wos444_bradley_s3_all_troops_damage_control_nc",+ "description": "WOS-444 exact no-hero control for Bradley S3 all-troops damage-up bucket probe. WIP attacks 2520 each T6 mixed; minxxx defends 900 each T6 mixed. Same accounts, roles, troop counts, and report path as the paired hero fixture.",+ "attacker": {+ "name": "[BBQ]XxWIPxX",+ "heroes": {},+ "troops": {+ "infantry_t6": 2520,+ "lancer_t6": 2520,+ "marksman_t6": 2520+ },+ "stats": {+ "inf": {+ "attack": 0.0,+ "defense": 221.7,+ "lethality": 147.3,+ "health": 155.7+ },+ "lanc": {+ "attack": 194.7,+ "defense": 193.0,+ "lethality": 157.3,+ "health": 148.4+ },+ "mark": {+ "attack": 194.7,+ "defense": 192.0,+ "lethality": 148.6,+ "health": 149.5+ }+ },+ "joiner_heroes": {}+ },+ "defender": {+ "name": "[ARK]Piddlyminxx",+ "heroes": {},+ "troops": {+ "infantry_t6": 900,+ "lancer_t6": 900,+ "marksman_t6": 900+ },+ "stats": {+ "inf": {+ "attack": 0.0,+ "defense": 275.1,+ "lethality": 215.3,+ "health": 216.5+ },+ "lanc": {+ "attack": 278.8,+ "defense": 274.1,+ "lethality": 199.7,+ "health": 201.0+ },+ "mark": {+ "attack": 284.6,+ "defense": 281.6,+ "lethality": 221.8,+ "health": 216.9+ }+ },+ "joiner_heroes": {}+ },+ "game_report_result": [+ {+ "attacker": 5848,+ "defender": 0+ }+ ]+ },+ {+ "test_id": "wos444_bradley_s3_all_troops_damage_control_nc",+ "description": "WOS-444 exact no-hero control for Bradley S3 all-troops damage-up bucket probe. WIP attacks 2520 each T6 mixed; minxxx defends 900 each T6 mixed. Same accounts, roles, troop counts, and report path as the paired hero fixture.",+ "attacker": {+ "name": "[BBQ]XxWIPxX",+ "heroes": {},+ "troops": {+ "infantry_t6": 2520,+ "lancer_t6": 2520,+ "marksman_t6": 2520+ },+ "stats": {+ "inf": {+ "attack": 221.4,+ "defense": 221.7,+ "lethality": 147.3,+ "health": 155.7+ },+ "lanc": {+ "attack": 194.7,+ "defense": 193.0,+ "lethality": 157.3,+ "health": 148.4+ },+ "mark": {+ "attack": 194.7,+ "defense": 192.0,+ "lethality": 148.6,+ "health": 149.5+ }+ },+ "joiner_heroes": {}+ },+ "defender": {+ "name": "[ARK]Piddlyminxx",+ "heroes": {},+ "troops": {+ "infantry_t6": 900,+ "lancer_t6": 900,+ "marksman_t6": 900+ },+ "stats": {+ "inf": {+ "attack": 286.3,+ "defense": 275.1,+ "lethality": 215.3,+ "health": 216.5+ },+ "lanc": {+ "attack": 278.8,+ "defense": 274.1,+ "lethality": 199.7,+ "health": 201.0+ },+ "mark": {+ "attack": 284.6,+ "defense": 281.6,+ "lethality": 221.8,+ "health": 216.9+ }+ },+ "joiner_heroes": {}+ },+ "game_report_result": [+ {+ "attacker": 5848,+ "defender": 0+ }+ ]+ },+ {+ "test_id": "wos444_bradley_s3_all_troops_damage_control_nc",+ "description": "WOS-444 exact no-hero control for revised Bradley S3 all-troops damage-up bucket probe. WIP attacks 2880 each T6 mixed; minxxx defends 900 each T6 mixed. Same accounts, roles, troop counts, and report path as the paired hero fixture.",+ "attacker": {+ "name": "[BBQ]XxWIPxX",+ "heroes": {},+ "troops": {+ "infantry_t6": 2880,+ "lancer_t6": 2880,+ "marksman_t6": 2880+ },+ "stats": {+ "inf": {+ "attack": 221.4,+ "defense": 221.7,+ "lethality": 147.3,+ "health": 155.7+ },+ "lanc": {+ "attack": 194.7,+ "defense": 193.0,+ "lethality": 157.3,+ "health": 148.4+ },+ "mark": {+ "attack": 194.7,+ "defense": 192.0,+ "lethality": 148.6,+ "health": 149.5+ }+ },+ "joiner_heroes": {}+ },+ "defender": {+ "name": "[ARK]Piddlyminxx",+ "heroes": {},+ "troops": {+ "infantry_t6": 900,+ "lancer_t6": 900,+ "marksman_t6": 900+ },+ "stats": {+ "inf": {+ "attack": 286.3,+ "defense": 275.1,+ "lethality": 215.3,+ "health": 216.5+ },+ "lanc": {+ "attack": 278.8,+ "defense": 274.1,+ "lethality": 199.7,+ "health": 201.0+ },+ "mark": {+ "attack": 284.6,+ "defense": 281.6,+ "lethality": 221.8,+ "health": 216.9+ }+ },+ "joiner_heroes": {}+ },+ "game_report_result": [+ {+ "attacker": 7010,+ "defender": 0+ }+ ]+ }+]\ No newline at end of fileIndex: testcases/emulator_verified/wos444_bradley_s3_all_troops_damage_hero_nc.json===================================================================--- testcases/emulator_verified/wos444_bradley_s3_all_troops_damage_hero_nc.json prev run+++ testcases/emulator_verified/wos444_bradley_s3_all_troops_damage_hero_nc.json this run@@ -0,0 +1,78 @@+[+ {+ "test_id": "wos444_bradley_s3_all_troops_damage_hero_nc",+ "description": "WOS-444 Bradley S3 all-troops damage-up bucket probe. WIP attacks class-valid Bradley-only with 2880 each T6 mixed; minxxx defends 900 each T6 mixed. Candidate signed remaining scores: damage.up +4196, attack.up +3861, lethality.up +3673.",+ "attacker": {+ "name": "[BBQ]XxWIPxX",+ "heroes": {+ "Bradley": {+ "skill_1": 4,+ "skill_2": 4,+ "skill_3": 4+ }+ },+ "troops": {+ "infantry_t6": 2880,+ "lancer_t6": 2880,+ "marksman_t6": 2880+ },+ "stats": {+ "inf": {+ "attack": 221.4,+ "defense": 221.7,+ "lethality": 147.3,+ "health": 155.7+ },+ "lanc": {+ "attack": 194.7,+ "defense": 193.0,+ "lethality": 157.3,+ "health": 148.4+ },+ "mark": {+ "attack": 608.0,+ "defense": 605.3,+ "lethality": 275.0,+ "health": 234.4+ }+ },+ "joiner_heroes": {}+ },+ "defender": {+ "name": "[ARK]Piddlyminxx",+ "heroes": {},+ "troops": {+ "infantry_t6": 900,+ "lancer_t6": 900,+ "marksman_t6": 900+ },+ "stats": {+ "inf": {+ "attack": 286.3,+ "defense": 275.1,+ "lethality": 215.3,+ "health": 216.5+ },+ "lanc": {+ "attack": 278.8,+ "defense": 274.1,+ "lethality": 199.7,+ "health": 201.0+ },+ "mark": {+ "attack": 284.6,+ "defense": 281.6,+ "lethality": 221.8,+ "health": 216.9+ }+ },+ "joiner_heroes": {}+ },+ "game_report_result": [+ {+ "attacker": 8117,+ "defender": 0+ }+ ]+ }+]\ No newline at end of fileIndex: testcases/emulator_verified/wos444_edith_s11_mark_damage_taken_control_nc.json===================================================================--- testcases/emulator_verified/wos444_edith_s11_mark_damage_taken_control_nc.json prev run+++ testcases/emulator_verified/wos444_edith_s11_mark_damage_taken_control_nc.json this run@@ -0,0 +1,138 @@+[+ {+ "test_id": "wos444_edith_s11_mark_damage_taken_control_nc",+ "description": "WOS-444 exact no-hero control for Edith S1/1 marksman damage-taken bucket probe. WIP attacks 2880 T6 marksman; minxxx defends 400 T6 marksman. Same accounts, roles, troop counts, and report path as the paired hero fixture.",+ "attacker": {+ "name": "[BBQ]XxWIPxX",+ "heroes": {},+ "troops": {+ "marksman_t6": 2880+ },+ "stats": {+ "inf": {+ "attack": 221.4,+ "defense": 221.7,+ "lethality": 147.3,+ "health": 155.7+ },+ "lanc": {+ "attack": 194.7,+ "defense": 193.0,+ "lethality": 157.3,+ "health": 148.4+ },+ "mark": {+ "attack": 194.7,+ "defense": 192.0,+ "lethality": 148.6,+ "health": 149.5+ }+ },+ "joiner_heroes": {}+ },+ "defender": {+ "name": "[ARK]Piddlyminxx",+ "heroes": {},+ "troops": {+ "marksman_t6": 400+ },+ "stats": {+ "inf": {+ "attack": 286.3,+ "defense": 275.1,+ "lethality": 215.3,+ "health": 216.5+ },+ "lanc": {+ "attack": 278.8,+ "defense": 274.1,+ "lethality": 199.7,+ "health": 201.0+ },+ "mark": {+ "attack": 284.6,+ "defense": 281.6,+ "lethality": 221.8,+ "health": 216.9+ }+ },+ "joiner_heroes": {}+ },+ "game_report_result": [+ {+ "attacker": 2578,+ "defender": 0+ },+ {+ "attacker": 2578,+ "defender": 0+ }+ ]+ },+ {+ "test_id": "wos444_edith_s11_mark_damage_taken_control_nc",+ "description": "WOS-444 exact no-hero control for revised Edith S1/1 marksman damage-taken bucket probe. WIP attacks 2560 T6 marksman; minxxx defends 500 T6 marksman. Same accounts, roles, troop counts, and report path as the paired hero fixture.",+ "attacker": {+ "name": "[BBQ]XxWIPxX",+ "heroes": {},+ "troops": {+ "marksman_t6": 2560+ },+ "stats": {+ "inf": {+ "attack": 221.4,+ "defense": 221.7,+ "lethality": 147.3,+ "health": 155.7+ },+ "lanc": {+ "attack": 194.7,+ "defense": 193.0,+ "lethality": 157.3,+ "health": 148.4+ },+ "mark": {+ "attack": 194.7,+ "defense": 192.0,+ "lethality": 148.6,+ "health": 149.5+ }+ },+ "joiner_heroes": {}+ },+ "defender": {+ "name": "[ARK]Piddlyminxx",+ "heroes": {},+ "troops": {+ "marksman_t6": 500+ },+ "stats": {+ "inf": {+ "attack": 286.3,+ "defense": 275.1,+ "lethality": 215.3,+ "health": 216.5+ },+ "lanc": {+ "attack": 278.8,+ "defense": 274.1,+ "lethality": 199.7,+ "health": 201.0+ },+ "mark": {+ "attack": 284.6,+ "defense": 281.6,+ "lethality": 221.8,+ "health": 216.9+ }+ },+ "joiner_heroes": {}+ },+ "game_report_result": [+ {+ "attacker": 2106,+ "defender": 0+ }+ ]+ }+]\ No newline at end of fileIndex: testcases/emulator_verified/wos444_edith_s11_mark_damage_taken_hero_nc.json===================================================================--- testcases/emulator_verified/wos444_edith_s11_mark_damage_taken_hero_nc.json prev run+++ testcases/emulator_verified/wos444_edith_s11_mark_damage_taken_hero_nc.json this run@@ -0,0 +1,79 @@+[+ {+ "test_id": "wos444_edith_s11_mark_damage_taken_hero_nc",+ "description": "WOS-444 Edith S1/1 marksman damage-taken bucket probe. WIP attacks 2560 T6 marksman; minxxx defends class-valid Edith+Zinman with 500 T6 marksman. Candidate signed remaining scores: damageTaken.down +234, defense.up +245, health.up +308.",+ "attacker": {+ "name": "[BBQ]XxWIPxX",+ "heroes": {},+ "troops": {+ "marksman_t6": 2560+ },+ "stats": {+ "inf": {+ "attack": 221.4,+ "defense": 221.7,+ "lethality": 147.3,+ "health": 155.7+ },+ "lanc": {+ "attack": 194.7,+ "defense": 193.0,+ "lethality": 157.3,+ "health": 148.4+ },+ "mark": {+ "attack": 194.7,+ "defense": 192.0,+ "lethality": 148.6,+ "health": 149.5+ }+ },+ "joiner_heroes": {}+ },+ "defender": {+ "name": "[ARK]Piddlyminxx",+ "heroes": {+ "Edith": {+ "skill_1": 3,+ "skill_2": 3,+ "skill_3": 3+ },+ "Zinman": {+ "skill_1": 1,+ "skill_2": 0,+ "skill_3": 0+ }+ },+ "troops": {+ "marksman_t6": 500+ },+ "stats": {+ "inf": {+ "attack": 493.0,+ "defense": 481.8,+ "lethality": 273.9,+ "health": 296.7+ },+ "lanc": {+ "attack": 278.8,+ "defense": 274.1,+ "lethality": 199.7,+ "health": 201.0+ },+ "mark": {+ "attack": 309.8,+ "defense": 306.8,+ "lethality": 221.8,+ "health": 216.9+ }+ },+ "joiner_heroes": {}+ },+ "game_report_result": [+ {+ "attacker": 1863,+ "defender": 0+ }+ ]+ }+]\ No newline at end of fileIndex: testcases/emulator_verified/wos444_edith_s12_lancer_damage_dealt_control_nc.json===================================================================--- testcases/emulator_verified/wos444_edith_s12_lancer_damage_dealt_control_nc.json prev run+++ testcases/emulator_verified/wos444_edith_s12_lancer_damage_dealt_control_nc.json this run@@ -0,0 +1,68 @@+[+ {+ "test_id": "wos444_edith_s12_lancer_damage_dealt_control_nc",+ "description": "WOS-444 exact no-hero control for Edith S1/2 lancer damage-dealt bucket probe. WIP attacks 2520 T6 infantry; minxxx defends 390 T6 lancer. Same accounts, roles, troop counts, and report path as the paired hero fixture.",+ "attacker": {+ "name": "[BBQ]XxWIPxX",+ "heroes": {},+ "troops": {+ "infantry_t6": 2520+ },+ "stats": {+ "inf": {+ "attack": 221.4,+ "defense": 221.7,+ "lethality": 147.3,+ "health": 155.7+ },+ "lanc": {+ "attack": 194.7,+ "defense": 193.0,+ "lethality": 157.3,+ "health": 148.4+ },+ "mark": {+ "attack": 194.7,+ "defense": 192.0,+ "lethality": 148.6,+ "health": 149.5+ }+ },+ "joiner_heroes": {}+ },+ "defender": {+ "name": "[ARK]Piddlyminxx",+ "heroes": {},+ "troops": {+ "lancer_t6": 390+ },+ "stats": {+ "inf": {+ "attack": 286.3,+ "defense": 275.1,+ "lethality": 215.3,+ "health": 216.5+ },+ "lanc": {+ "attack": 278.8,+ "defense": 274.1,+ "lethality": 199.7,+ "health": 201.0+ },+ "mark": {+ "attack": 284.6,+ "defense": 281.6,+ "lethality": 221.8,+ "health": 216.9+ }+ },+ "joiner_heroes": {}+ },+ "game_report_result": [+ {+ "attacker": 2332,+ "defender": 0+ }+ ]+ }+]\ No newline at end of fileIndex: testcases/emulator_verified/wos444_edith_s12_lancer_damage_dealt_hero_nc.json===================================================================--- testcases/emulator_verified/wos444_edith_s12_lancer_damage_dealt_hero_nc.json prev run+++ testcases/emulator_verified/wos444_edith_s12_lancer_damage_dealt_hero_nc.json this run@@ -0,0 +1,82 @@+[+ {+ "test_id": "wos444_edith_s12_lancer_damage_dealt_hero_nc",+ "description": "WOS-444 Edith S1/2 lancer damage-dealt bucket probe. WIP attacks 2520 T6 infantry; minxxx defends Edith+Patrick+Jasser with 390 T6 lancer. Candidate signed remaining scores: damage.up +916, attack.up +937, lethality.up +954.",+ "attacker": {+ "name": "[BBQ]XxWIPxX",+ "heroes": {},+ "troops": {+ "infantry_t6": 2520+ },+ "stats": {+ "inf": {+ "attack": 221.4,+ "defense": 221.7,+ "lethality": 147.3,+ "health": 155.7+ },+ "lanc": {+ "attack": 194.7,+ "defense": 193.0,+ "lethality": 157.3,+ "health": 148.4+ },+ "mark": {+ "attack": 194.7,+ "defense": 192.0,+ "lethality": 148.6,+ "health": 149.5+ }+ },+ "joiner_heroes": {}+ },+ "defender": {+ "name": "[ARK]Piddlyminxx",+ "heroes": {+ "Edith": {+ "skill_1": 3,+ "skill_2": 3,+ "skill_3": 3+ },+ "Patrick": {+ "skill_1": 3,+ "skill_2": 2+ },+ "Jasser": {+ "skill_1": 4,+ "skill_2": 4+ }+ },+ "troops": {+ "lancer_t6": 390+ },+ "stats": {+ "inf": {+ "attack": 493.0,+ "defense": 481.8,+ "lethality": 273.9,+ "health": 296.7+ },+ "lanc": {+ "attack": 382.3,+ "defense": 377.5,+ "lethality": 199.7,+ "health": 201.0+ },+ "mark": {+ "attack": 351.0,+ "defense": 348.0,+ "lethality": 221.8,+ "health": 216.9+ }+ },+ "joiner_heroes": {}+ },+ "game_report_result": [+ {+ "attacker": 1909,+ "defender": 0+ }+ ]+ }+]\ No newline at end of fileIndex: testcases/emulator_verified/wos444_gordon_s22_all_enemy_damage_dealt_control_nc.json===================================================================--- testcases/emulator_verified/wos444_gordon_s22_all_enemy_damage_dealt_control_nc.json prev run+++ testcases/emulator_verified/wos444_gordon_s22_all_enemy_damage_dealt_control_nc.json this run@@ -0,0 +1,210 @@+[+ {+ "test_id": "wos444_gordon_s22_all_enemy_damage_dealt_control_nc",+ "description": "WOS-444 exact no-hero control for Gordon S2/2 all-enemy damage-dealt-down bucket probe. WIP attacks 2700 each T6 mixed; minxxx defends 2560 T6 lancer. Same accounts, roles, troop counts, and report path as the paired hero fixture.",+ "attacker": {+ "name": "[BBQ]XxWIPxX",+ "heroes": {},+ "troops": {+ "infantry_t6": 2700,+ "lancer_t6": 2700,+ "marksman_t6": 2700+ },+ "stats": {+ "inf": {+ "attack": 221.4,+ "defense": 221.7,+ "lethality": 147.3,+ "health": 155.7+ },+ "lanc": {+ "attack": 194.7,+ "defense": 193.0,+ "lethality": 157.3,+ "health": 148.4+ },+ "mark": {+ "attack": 194.7,+ "defense": 192.0,+ "lethality": 148.6,+ "health": 149.5+ }+ },+ "joiner_heroes": {}+ },+ "defender": {+ "name": "[ARK]Piddlyminxx",+ "heroes": {},+ "troops": {+ "lancer_t6": 2560+ },+ "stats": {+ "inf": {+ "attack": 286.3,+ "defense": 275.1,+ "lethality": 215.3,+ "health": 216.5+ },+ "lanc": {+ "attack": 278.8,+ "defense": 274.1,+ "lethality": 199.7,+ "health": 201.0+ },+ "mark": {+ "attack": 284.6,+ "defense": 281.6,+ "lethality": 221.8,+ "health": 216.9+ }+ },+ "joiner_heroes": {}+ },+ "game_report_result": [+ {+ "attacker": 7656,+ "defender": 0+ }+ ]+ },+ {+ "test_id": "wos444_gordon_s22_all_enemy_damage_dealt_control_nc",+ "description": "WOS-444 exact no-hero control for Gordon S2/2 all-enemy damage-dealt-down bucket probe. WIP attacks 2700 each T6 mixed; minxxx defends 2560 T6 lancer. Same accounts, roles, troop counts, and report path as the paired hero fixture.",+ "attacker": {+ "name": "[BBQ]XxWIPxX",+ "heroes": {},+ "troops": {+ "infantry_t6": 2700,+ "lancer_t6": 2700,+ "marksman_t6": 2700+ },+ "stats": {+ "inf": {+ "attack": 0.0,+ "defense": 221.7,+ "lethality": 147.3,+ "health": 155.7+ },+ "lanc": {+ "attack": 194.7,+ "defense": 193.0,+ "lethality": 157.3,+ "health": 148.4+ },+ "mark": {+ "attack": 194.7,+ "defense": 192.0,+ "lethality": 148.6,+ "health": 149.5+ }+ },+ "joiner_heroes": {}+ },+ "defender": {+ "name": "[ARK]Piddlyminxx",+ "heroes": {},+ "troops": {+ "lancer_t6": 2560+ },+ "stats": {+ "inf": {+ "attack": 0.0,+ "defense": 275.1,+ "lethality": 215.3,+ "health": 216.5+ },+ "lanc": {+ "attack": 278.8,+ "defense": 274.1,+ "lethality": 199.7,+ "health": 201.0+ },+ "mark": {+ "attack": 284.6,+ "defense": 281.6,+ "lethality": 221.8,+ "health": 216.9+ }+ },+ "joiner_heroes": {}+ },+ "game_report_result": [+ {+ "attacker": 7656,+ "defender": 0+ }+ ]+ },+ {+ "test_id": "wos444_gordon_s22_all_enemy_damage_dealt_control_nc",+ "description": "WOS-444 exact no-hero control for Gordon S2/2 all-enemy damage-dealt-down bucket probe. WIP attacks 2700 each T6 mixed; minxxx defends 2560 T6 lancer. Same accounts, roles, troop counts, and report path as the paired hero fixture.",+ "attacker": {+ "name": "[BBQ]XxWIPxX",+ "heroes": {},+ "troops": {+ "infantry_t6": 2700,+ "lancer_t6": 2700,+ "marksman_t6": 2700+ },+ "stats": {+ "inf": {+ "attack": 221.4,+ "defense": 221.7,+ "lethality": 147.3,+ "health": 155.7+ },+ "lanc": {+ "attack": 194.7,+ "defense": 193.0,+ "lethality": 157.3,+ "health": 148.4+ },+ "mark": {+ "attack": 194.7,+ "defense": 192.0,+ "lethality": 148.6,+ "health": 149.5+ }+ },+ "joiner_heroes": {}+ },+ "defender": {+ "name": "[ARK]Piddlyminxx",+ "heroes": {},+ "troops": {+ "lancer_t6": 2560+ },+ "stats": {+ "inf": {+ "attack": 286.3,+ "defense": 275.1,+ "lethality": 215.3,+ "health": 216.5+ },+ "lanc": {+ "attack": 278.8,+ "defense": 274.1,+ "lethality": 199.7,+ "health": 201.0+ },+ "mark": {+ "attack": 284.6,+ "defense": 281.6,+ "lethality": 221.8,+ "health": 216.9+ }+ },+ "joiner_heroes": {}+ },+ "game_report_result": [+ {+ "attacker": 7656,+ "defender": 0+ },+ {+ "attacker": 7656,+ "defender": 0+ }+ ]+ }+]\ No newline at end of fileIndex: testcases/emulator_verified/wos444_gordon_s22_all_enemy_damage_dealt_hero_nc.json===================================================================--- testcases/emulator_verified/wos444_gordon_s22_all_enemy_damage_dealt_hero_nc.json prev run+++ testcases/emulator_verified/wos444_gordon_s22_all_enemy_damage_dealt_hero_nc.json this run@@ -0,0 +1,101 @@+[+ {+ "test_id": "wos444_gordon_s22_all_enemy_damage_dealt_hero_nc",+ "description": "WOS-444 Gordon S2/2 all-enemy damage-dealt-down bucket probe. WIP attacks 2700 each T6 mixed; minxxx defends Gordon+Sergey+Lynn with 2560 T6 lancer. Candidate signed remaining scores: damage.down +558, attack.down +593, lethality.down -143.",+ "attacker": {+ "name": "[BBQ]XxWIPxX",+ "heroes": {},+ "troops": {+ "infantry_t6": 2700,+ "lancer_t6": 2700,+ "marksman_t6": 2700+ },+ "stats": {+ "inf": {+ "attack": 221.4,+ "defense": 221.7,+ "lethality": 147.3,+ "health": 155.7+ },+ "lanc": {+ "attack": 194.7,+ "defense": 193.0,+ "lethality": 157.3,+ "health": 148.4+ },+ "mark": {+ "attack": 194.7,+ "defense": 192.0,+ "lethality": 148.6,+ "health": 149.5+ }+ },+ "joiner_heroes": {}+ },+ "defender": {+ "name": "[ARK]Piddlyminxx",+ "heroes": {+ "Sergey": {+ "skill_1": 4,+ "skill_2": 4+ },+ "Gordon": {+ "skill_1": 2,+ "skill_2": 2,+ "skill_3": 1+ },+ "Lynn": {+ "skill_1": 3,+ "skill_2": 3,+ "skill_3": 3+ }+ },+ "troops": {+ "lancer_t6": 2560+ },+ "stats": {+ "inf": {+ "attack": 389.8,+ "defense": 378.5,+ "lethality": 215.3,+ "health": 216.5+ },+ "lanc": {+ "attack": 485.5,+ "defense": 480.8,+ "lethality": 199.7,+ "health": 201.0+ },+ "mark": {+ "attack": 460.2,+ "defense": 457.2,+ "lethality": 275.7,+ "health": 266.5+ }+ },+ "joiner_heroes": {}+ },+ "game_report_result": [+ {+ "attacker": 5274,+ "defender": 0+ },+ {+ "attacker": 4736,+ "defender": 0+ },+ {+ "attacker": 5021,+ "defender": 0+ },+ {+ "attacker": 5290,+ "defender": 0+ },+ {+ "attacker": 5006,+ "defender": 0+ }+ ]+ }+]\ No newline at end of fileIndex: testcases/emulator_verified/wos451_bradley_s21_lancer_damage_up_bucket.json===================================================================--- testcases/emulator_verified/wos451_bradley_s21_lancer_damage_up_bucket.json prev run+++ testcases/emulator_verified/wos451_bradley_s21_lancer_damage_up_bucket.json this run@@ -0,0 +1,83 @@+[+ {+ "test_id": "wos451_bradley_s21_lancer_damage_up_bucket",+ "description": "WOS-451 Bradley S2/1 damage-to-lancer-up bucket discriminator. WIP attacks minxxx with Bradley + Flint + Jessie and 2800 T6 marksmen into 1040 T6 lancers. Candidate buckets: active.hero.damage.up, active.hero.attack.up, active.hero.lethality.up.",+ "attacker": {+ "name": "[BBQ]XxWIPxX",+ "heroes": {+ "Flint": {+ "skill_1": 1,+ "skill_2": 1,+ "skill_3": 0+ },+ "Jessie": {+ "skill_1": 1,+ "skill_2": 1+ },+ "Bradley": {+ "skill_1": 4,+ "skill_2": 4,+ "skill_3": 4+ }+ },+ "troops": {+ "marksman_t6": 2800+ },+ "stats": {+ "inf": {+ "attack": 286.7,+ "defense": 287.0,+ "lethality": 147.3,+ "health": 155.7+ },+ "lanc": {+ "attack": 279.2,+ "defense": 277.5,+ "lethality": 157.3,+ "health": 148.4+ },+ "mark": {+ "attack": 608.0,+ "defense": 605.3,+ "lethality": 275.0,+ "health": 234.4+ }+ },+ "joiner_heroes": {}+ },+ "defender": {+ "name": "[ARK]Piddlyminxx",+ "heroes": {},+ "troops": {+ "lancer_t6": 1040+ },+ "stats": {+ "inf": {+ "attack": 286.3,+ "defense": 275.1,+ "lethality": 215.3,+ "health": 216.5+ },+ "lanc": {+ "attack": 278.8,+ "defense": 274.1,+ "lethality": 199.7,+ "health": 201.0+ },+ "mark": {+ "attack": 284.6,+ "defense": 281.6,+ "lethality": 221.8,+ "health": 216.9+ }+ },+ "joiner_heroes": {}+ },+ "game_report_result": [+ {+ "attacker": 2736,+ "defender": 0+ }+ ]+ }+]\ No newline at end of fileIndex: testcases/emulator_verified/wos451_bradley_s21_lancer_damage_up_control.json===================================================================--- testcases/emulator_verified/wos451_bradley_s21_lancer_damage_up_control.json prev run+++ testcases/emulator_verified/wos451_bradley_s21_lancer_damage_up_control.json this run@@ -0,0 +1,68 @@+[+ {+ "test_id": "wos451_bradley_s21_lancer_damage_up_control",+ "description": "WOS-451 paired no-hero control for Bradley S2/1 damage-to-lancer-up bucket discriminator. WIP attacks minxxx with 2800 T6 marksmen into 1040 T6 lancers, matching the hero fixture accounts, roles, troop counts, and report path.",+ "attacker": {+ "name": "[BBQ]XxWIPxX",+ "heroes": {},+ "troops": {+ "marksman_t6": 2800+ },+ "stats": {+ "inf": {+ "attack": 221.4,+ "defense": 221.7,+ "lethality": 147.3,+ "health": 155.7+ },+ "lanc": {+ "attack": 194.7,+ "defense": 193.0,+ "lethality": 157.3,+ "health": 148.4+ },+ "mark": {+ "attack": 194.7,+ "defense": 192.0,+ "lethality": 148.6,+ "health": 149.5+ }+ },+ "joiner_heroes": {}+ },+ "defender": {+ "name": "[ARK]Piddlyminxx",+ "heroes": {},+ "troops": {+ "lancer_t6": 1040+ },+ "stats": {+ "inf": {+ "attack": 286.3,+ "defense": 275.1,+ "lethality": 215.3,+ "health": 216.5+ },+ "lanc": {+ "attack": 278.8,+ "defense": 274.1,+ "lethality": 199.7,+ "health": 201.0+ },+ "mark": {+ "attack": 284.6,+ "defense": 281.6,+ "lethality": 221.8,+ "health": 216.9+ }+ },+ "joiner_heroes": {}+ },+ "game_report_result": [+ {+ "attacker": 1504,+ "defender": 0+ }+ ]+ }+]\ No newline at end of fileIndex: testcases/emulator_verified/wos451_bradley_s22_infantry_damage_up_bucket.json===================================================================--- testcases/emulator_verified/wos451_bradley_s22_infantry_damage_up_bucket.json prev run+++ testcases/emulator_verified/wos451_bradley_s22_infantry_damage_up_bucket.json this run@@ -0,0 +1,83 @@+[+ {+ "test_id": "wos451_bradley_s22_infantry_damage_up_bucket",+ "description": "WOS-451 Bradley S2/2 damage-to-infantry-up bucket discriminator. WIP attacks minxxx with Bradley + Flint + Jessie and 2800 T6 marksmen into 1040 T6 infantry. Candidate buckets: active.hero.damage.up, active.hero.attack.up, active.hero.lethality.up.",+ "attacker": {+ "name": "[BBQ]XxWIPxX",+ "heroes": {+ "Flint": {+ "skill_1": 1,+ "skill_2": 1,+ "skill_3": 0+ },+ "Jessie": {+ "skill_1": 1,+ "skill_2": 1+ },+ "Bradley": {+ "skill_1": 4,+ "skill_2": 4,+ "skill_3": 4+ }+ },+ "troops": {+ "marksman_t6": 2800+ },+ "stats": {+ "inf": {+ "attack": 286.7,+ "defense": 287.0,+ "lethality": 147.3,+ "health": 155.7+ },+ "lanc": {+ "attack": 279.2,+ "defense": 277.5,+ "lethality": 157.3,+ "health": 148.4+ },+ "mark": {+ "attack": 608.0,+ "defense": 605.3,+ "lethality": 275.0,+ "health": 234.4+ }+ },+ "joiner_heroes": {}+ },+ "defender": {+ "name": "[ARK]Piddlyminxx",+ "heroes": {},+ "troops": {+ "infantry_t6": 1040+ },+ "stats": {+ "inf": {+ "attack": 286.3,+ "defense": 275.1,+ "lethality": 215.3,+ "health": 216.5+ },+ "lanc": {+ "attack": 278.8,+ "defense": 274.1,+ "lethality": 199.7,+ "health": 201.0+ },+ "mark": {+ "attack": 284.6,+ "defense": 281.6,+ "lethality": 221.8,+ "health": 216.9+ }+ },+ "joiner_heroes": {}+ },+ "game_report_result": [+ {+ "attacker": 2746,+ "defender": 0+ }+ ]+ }+]\ No newline at end of fileIndex: testcases/emulator_verified/wos451_bradley_s22_infantry_damage_up_control.json===================================================================--- testcases/emulator_verified/wos451_bradley_s22_infantry_damage_up_control.json prev run+++ testcases/emulator_verified/wos451_bradley_s22_infantry_damage_up_control.json this run@@ -0,0 +1,68 @@+[+ {+ "test_id": "wos451_bradley_s22_infantry_damage_up_control",+ "description": "WOS-451 paired no-hero control for Bradley S2/2 damage-to-infantry-up bucket discriminator. WIP attacks minxxx with 2800 T6 marksmen into 1040 T6 infantry, matching the hero fixture accounts, roles, troop counts, and report path.",+ "attacker": {+ "name": "[BBQ]XxWIPxX",+ "heroes": {},+ "troops": {+ "marksman_t6": 2800+ },+ "stats": {+ "inf": {+ "attack": 221.4,+ "defense": 221.7,+ "lethality": 147.3,+ "health": 155.7+ },+ "lanc": {+ "attack": 194.7,+ "defense": 193.0,+ "lethality": 157.3,+ "health": 148.4+ },+ "mark": {+ "attack": 194.7,+ "defense": 192.0,+ "lethality": 148.6,+ "health": 149.5+ }+ },+ "joiner_heroes": {}+ },+ "defender": {+ "name": "[ARK]Piddlyminxx",+ "heroes": {},+ "troops": {+ "infantry_t6": 1040+ },+ "stats": {+ "inf": {+ "attack": 286.3,+ "defense": 275.1,+ "lethality": 215.3,+ "health": 216.5+ },+ "lanc": {+ "attack": 278.8,+ "defense": 274.1,+ "lethality": 199.7,+ "health": 201.0+ },+ "mark": {+ "attack": 284.6,+ "defense": 281.6,+ "lethality": 221.8,+ "health": 216.9+ }+ },+ "joiner_heroes": {}+ },+ "game_report_result": [+ {+ "attacker": 1623,+ "defender": 0+ }+ ]+ }+]\ No newline at end of fileIndex: testcases/emulator_verified/wos451_bradley_s3_all_damage_up_bucket.json===================================================================--- testcases/emulator_verified/wos451_bradley_s3_all_damage_up_bucket.json prev run+++ testcases/emulator_verified/wos451_bradley_s3_all_damage_up_bucket.json this run@@ -0,0 +1,87 @@+[+ {+ "test_id": "wos451_bradley_s3_all_damage_up_bucket",+ "description": "WOS-451 Bradley S3 all-troops damage-up bucket confirmation. WIP attacks minxxx with Bradley + Flint + Jessie and 2160 each T6 mixed into 800 each T6 mixed. Candidate buckets: active.hero.damage.up, active.hero.attack.up, active.hero.lethality.up.",+ "attacker": {+ "name": "[BBQ]XxWIPxX",+ "heroes": {+ "Flint": {+ "skill_1": 1,+ "skill_2": 1,+ "skill_3": 0+ },+ "Jessie": {+ "skill_1": 1,+ "skill_2": 1+ },+ "Bradley": {+ "skill_1": 4,+ "skill_2": 4,+ "skill_3": 4+ }+ },+ "troops": {+ "infantry_t6": 2160,+ "lancer_t6": 2160,+ "marksman_t6": 2160+ },+ "stats": {+ "inf": {+ "attack": 286.7,+ "defense": 287.0,+ "lethality": 147.3,+ "health": 155.7+ },+ "lanc": {+ "attack": 279.2,+ "defense": 277.5,+ "lethality": 157.3,+ "health": 148.4+ },+ "mark": {+ "attack": 608.0,+ "defense": 605.3,+ "lethality": 275.0,+ "health": 234.4+ }+ },+ "joiner_heroes": {}+ },+ "defender": {+ "name": "[ARK]Piddlyminxx",+ "heroes": {},+ "troops": {+ "infantry_t6": 800,+ "lancer_t6": 800,+ "marksman_t6": 800+ },+ "stats": {+ "inf": {+ "attack": 286.3,+ "defense": 275.1,+ "lethality": 215.3,+ "health": 216.5+ },+ "lanc": {+ "attack": 278.8,+ "defense": 274.1,+ "lethality": 199.7,+ "health": 201.0+ },+ "mark": {+ "attack": 284.6,+ "defense": 281.6,+ "lethality": 221.8,+ "health": 216.9+ }+ },+ "joiner_heroes": {}+ },+ "game_report_result": [+ {+ "attacker": 6151,+ "defender": 0+ }+ ]+ }+]\ No newline at end of fileIndex: testcases/emulator_verified/wos451_bradley_s3_all_damage_up_control.json===================================================================--- testcases/emulator_verified/wos451_bradley_s3_all_damage_up_control.json prev run+++ testcases/emulator_verified/wos451_bradley_s3_all_damage_up_control.json this run@@ -0,0 +1,72 @@+[+ {+ "test_id": "wos451_bradley_s3_all_damage_up_control",+ "description": "WOS-451 paired no-hero control for Bradley S3 all-troops damage-up confirmation. WIP attacks minxxx with 2160 each T6 mixed into 800 each T6 mixed, matching the hero fixture accounts, roles, troop counts, and report path.",+ "attacker": {+ "name": "[BBQ]XxWIPxX",+ "heroes": {},+ "troops": {+ "infantry_t6": 2160,+ "lancer_t6": 2160,+ "marksman_t6": 2160+ },+ "stats": {+ "inf": {+ "attack": 221.4,+ "defense": 221.7,+ "lethality": 147.3,+ "health": 155.7+ },+ "lanc": {+ "attack": 194.7,+ "defense": 193.0,+ "lethality": 157.3,+ "health": 148.4+ },+ "mark": {+ "attack": 194.7,+ "defense": 192.0,+ "lethality": 148.6,+ "health": 149.5+ }+ },+ "joiner_heroes": {}+ },+ "defender": {+ "name": "[ARK]Piddlyminxx",+ "heroes": {},+ "troops": {+ "infantry_t6": 800,+ "lancer_t6": 800,+ "marksman_t6": 800+ },+ "stats": {+ "inf": {+ "attack": 286.3,+ "defense": 275.1,+ "lethality": 215.3,+ "health": 216.5+ },+ "lanc": {+ "attack": 278.8,+ "defense": 274.1,+ "lethality": 199.7,+ "health": 201.0+ },+ "mark": {+ "attack": 284.6,+ "defense": 281.6,+ "lethality": 221.8,+ "health": 216.9+ }+ },+ "joiner_heroes": {}+ },+ "game_report_result": [+ {+ "attacker": 4903,+ "defender": 0+ }+ ]+ }+]\ No newline at end of fileIndex: testcases/emulator_verified/wos451_gordon_s11_lancer_damage_up_bucket.json===================================================================--- testcases/emulator_verified/wos451_gordon_s11_lancer_damage_up_bucket.json prev run+++ testcases/emulator_verified/wos451_gordon_s11_lancer_damage_up_bucket.json this run@@ -0,0 +1,83 @@+[+ {+ "test_id": "wos451_gordon_s11_lancer_damage_up_bucket",+ "description": "WOS-451 Gordon S1/1 lancer damage-dealt-up bucket discriminator. minxxx attacks WIP with Gordon + Flint + Jasser and 500 T6 lancers into 2990 T6 infantry. Candidate buckets: active.hero.damage.up, active.hero.attack.up, active.hero.lethality.up.",+ "attacker": {+ "name": "[ARK]Piddlyminxx",+ "heroes": {+ "Flint": {+ "skill_1": 2,+ "skill_2": 2,+ "skill_3": 1+ },+ "Gordon": {+ "skill_1": 2,+ "skill_2": 2,+ "skill_3": 1+ },+ "Jasser": {+ "skill_1": 4,+ "skill_2": 4+ }+ },+ "troops": {+ "lancer_t6": 500+ },+ "stats": {+ "inf": {+ "attack": 384.7,+ "defense": 373.5,+ "lethality": 215.3,+ "health": 216.5+ },+ "lanc": {+ "attack": 485.5,+ "defense": 480.8,+ "lethality": 199.7,+ "health": 201.0+ },+ "mark": {+ "attack": 351.0,+ "defense": 348.0,+ "lethality": 221.8,+ "health": 216.9+ }+ },+ "joiner_heroes": {}+ },+ "defender": {+ "name": "BBQ]XxWIPxX",+ "heroes": {},+ "troops": {+ "infantry_t6": 2990+ },+ "stats": {+ "inf": {+ "attack": 221.4,+ "defense": 221.7,+ "lethality": 147.3,+ "health": 155.7+ },+ "lanc": {+ "attack": 194.7,+ "defense": 193.0,+ "lethality": 157.3,+ "health": 148.4+ },+ "mark": {+ "attack": 194.7,+ "defense": 192.0,+ "lethality": 148.6,+ "health": 149.5+ }+ },+ "joiner_heroes": {}+ },+ "game_report_result": [+ {+ "attacker": 0,+ "defender": 1517+ }+ ]+ }+]\ No newline at end of fileIndex: testcases/emulator_verified/wos451_gordon_s11_lancer_damage_up_control.json===================================================================--- testcases/emulator_verified/wos451_gordon_s11_lancer_damage_up_control.json prev run+++ testcases/emulator_verified/wos451_gordon_s11_lancer_damage_up_control.json this run@@ -0,0 +1,68 @@+[+ {+ "test_id": "wos451_gordon_s11_lancer_damage_up_control",+ "description": "WOS-451 paired no-hero control for Gordon S1/1 lancer damage-dealt-up bucket discriminator. minxxx attacks WIP with 500 T6 lancers into 2990 T6 infantry, matching the hero fixture accounts, roles, troop counts, and report path.",+ "attacker": {+ "name": "[ARK]Piddlyminxx",+ "heroes": {},+ "troops": {+ "lancer_t6": 500+ },+ "stats": {+ "inf": {+ "attack": 286.3,+ "defense": 275.1,+ "lethality": 215.3,+ "health": 216.5+ },+ "lanc": {+ "attack": 278.8,+ "defense": 274.1,+ "lethality": 199.7,+ "health": 201.0+ },+ "mark": {+ "attack": 284.6,+ "defense": 281.6,+ "lethality": 221.8,+ "health": 216.9+ }+ },+ "joiner_heroes": {}+ },+ "defender": {+ "name": "BBQ]XxWIPxX",+ "heroes": {},+ "troops": {+ "infantry_t6": 2990+ },+ "stats": {+ "inf": {+ "attack": 221.4,+ "defense": 221.7,+ "lethality": 147.3,+ "health": 155.7+ },+ "lanc": {+ "attack": 194.7,+ "defense": 193.0,+ "lethality": 157.3,+ "health": 148.4+ },+ "mark": {+ "attack": 194.7,+ "defense": 192.0,+ "lethality": 148.6,+ "health": 149.5+ }+ },+ "joiner_heroes": {}+ },+ "game_report_result": [+ {+ "attacker": 0,+ "defender": 2739+ }+ ]+ }+]\ No newline at end of fileIndex: testcases/emulator_verified/wos451_gordon_s21_lancer_damage_up_bucket.json===================================================================--- testcases/emulator_verified/wos451_gordon_s21_lancer_damage_up_bucket.json prev run+++ testcases/emulator_verified/wos451_gordon_s21_lancer_damage_up_bucket.json this run@@ -0,0 +1,83 @@+[+ {+ "test_id": "wos451_gordon_s21_lancer_damage_up_bucket",+ "description": "WOS-451 Gordon S2/1 lancer damage-dealt-up bucket discriminator. minxxx attacks WIP with Gordon + Flint + Jasser and 360 T6 lancers into 2100 T6 infantry. Candidate buckets: active.hero.damage.up, active.hero.attack.up, active.hero.lethality.up.",+ "attacker": {+ "name": "[ARK]Piddlyminxx",+ "heroes": {+ "Flint": {+ "skill_1": 2,+ "skill_2": 2,+ "skill_3": 1+ },+ "Gordon": {+ "skill_1": 2,+ "skill_2": 2,+ "skill_3": 1+ },+ "Jasser": {+ "skill_1": 4,+ "skill_2": 4+ }+ },+ "troops": {+ "lancer_t6": 360+ },+ "stats": {+ "inf": {+ "attack": 384.7,+ "defense": 373.5,+ "lethality": 215.3,+ "health": 216.5+ },+ "lanc": {+ "attack": 485.5,+ "defense": 480.8,+ "lethality": 199.7,+ "health": 201.0+ },+ "mark": {+ "attack": 351.0,+ "defense": 348.0,+ "lethality": 221.8,+ "health": 216.9+ }+ },+ "joiner_heroes": {}+ },+ "defender": {+ "name": "BBQ]XxWIPxX",+ "heroes": {},+ "troops": {+ "infantry_t6": 2100+ },+ "stats": {+ "inf": {+ "attack": 221.4,+ "defense": 221.7,+ "lethality": 147.3,+ "health": 155.7+ },+ "lanc": {+ "attack": 194.7,+ "defense": 193.0,+ "lethality": 157.3,+ "health": 148.4+ },+ "mark": {+ "attack": 194.7,+ "defense": 192.0,+ "lethality": 148.6,+ "health": 149.5+ }+ },+ "joiner_heroes": {}+ },+ "game_report_result": [+ {+ "attacker": 0,+ "defender": 1017+ }+ ]+ }+]\ No newline at end of fileIndex: testcases/emulator_verified/wos451_gordon_s21_lancer_damage_up_control.json===================================================================--- testcases/emulator_verified/wos451_gordon_s21_lancer_damage_up_control.json prev run+++ testcases/emulator_verified/wos451_gordon_s21_lancer_damage_up_control.json this run@@ -0,0 +1,68 @@+[+ {+ "test_id": "wos451_gordon_s21_lancer_damage_up_control",+ "description": "WOS-451 paired no-hero control for Gordon S2/1 lancer damage-dealt-up bucket discriminator. minxxx attacks WIP with 360 T6 lancers into 2100 T6 infantry, matching the hero fixture accounts, roles, troop counts, and report path.",+ "attacker": {+ "name": "[ARK]Piddlyminxx",+ "heroes": {},+ "troops": {+ "lancer_t6": 360+ },+ "stats": {+ "inf": {+ "attack": 286.3,+ "defense": 275.1,+ "lethality": 215.3,+ "health": 216.5+ },+ "lanc": {+ "attack": 278.8,+ "defense": 274.1,+ "lethality": 199.7,+ "health": 201.0+ },+ "mark": {+ "attack": 284.6,+ "defense": 281.6,+ "lethality": 221.8,+ "health": 216.9+ }+ },+ "joiner_heroes": {}+ },+ "defender": {+ "name": "BBQ]XxWIPxX",+ "heroes": {},+ "troops": {+ "infantry_t6": 2100+ },+ "stats": {+ "inf": {+ "attack": 221.4,+ "defense": 221.7,+ "lethality": 147.3,+ "health": 155.7+ },+ "lanc": {+ "attack": 194.7,+ "defense": 193.0,+ "lethality": 157.3,+ "health": 148.4+ },+ "mark": {+ "attack": 194.7,+ "defense": 192.0,+ "lethality": 148.6,+ "health": 149.5+ }+ },+ "joiner_heroes": {}+ },+ "game_report_result": [+ {+ "attacker": 0,+ "defender": 1917+ }+ ]+ }+]\ No newline at end of file
Show Raw Dirty State Patch (vs Clean Baseline)
diff --git a/simulator/config/hero_definitions/Gwen.json b/simulator/config/hero_definitions/Gwen.json--- a/simulator/config/hero_definitions/Gwen.json+++ b/simulator/config/hero_definitions/Gwen.json@@ -6,7 +6,8 @@"EagleVision": {"description": "Increasing target's damage taken by X%","trigger": {- "type": "attack"+ "type": "attack",+ "every": 2},"effects": {"EagleVision/1": {@@ -19,7 +20,7 @@25],"units": {- "applies_to": "target"+ "applies_to": "enemy"},"duration": {"type": "attack",@@ -29,10 +30,10 @@}},"AirDominance": {- "description": "Grants all troops' attack X% extra damage after every 5 attacks and causes the target to receive X% extra damage for its next attack received",+ "description": "Grants all troops' attack X% extra damage after every 4 attacks and causes the target to receive X% extra damage for its next attack received","trigger": {"type": "attack",- "every": 5+ "every": 4},"effects": {"AirDominance/1": {@@ -60,7 +61,7 @@]},"AirDominance/2": {- "type": "active.hero.defense.down",+ "type": "active.hero.damageTaken.up","value": [5,7.5,@@ -99,8 +100,7 @@"units": {"applies_to": ["marksman"- ],- "applies_vs": "any"+ ]},"duration": {"type": "attack",diff --git a/simulator/config/troop_stats.json b/simulator/config/troop_stats.json--- a/simulator/config/troop_stats.json+++ b/simulator/config/troop_stats.json@@ -875,6 +875,30 @@"Health": 2073}},+ "infantry_t10_fc9": {+ "id": "infantry_t10_fc9",+ "type": "infantry",+ "tier": 10,+ "fc": 9,+ "stats": {+ "Attack": 726,+ "Defense": 10,+ "Lethality": 10,+ "Health": 2178+ }+ },+ "infantry_t10_fc10": {+ "id": "infantry_t10_fc10",+ "type": "infantry",+ "tier": 10,+ "fc": 10,+ "stats": {+ "Attack": 762,+ "Defense": 10,+ "Lethality": 10,+ "Health": 2286+ }+ },"infantry_t11": {"id": "infantry_t11","type": "infantry",@@ -935,6 +959,30 @@"Health": 2285}},+ "infantry_t11_fc9": {+ "id": "infantry_t11_fc9",+ "type": "infantry",+ "tier": 11,+ "fc": 9,+ "stats": {+ "Attack": 800,+ "Defense": 10,+ "Lethality": 10,+ "Health": 2400+ }+ },+ "infantry_t11_fc10": {+ "id": "infantry_t11_fc10",+ "type": "infantry",+ "tier": 11,+ "fc": 10,+ "stats": {+ "Attack": 840,+ "Defense": 10,+ "Lethality": 10,+ "Health": 2520+ }+ },"lancer_t10_fc6": {"id": "lancer_t10_fc6","type": "lancer",@@ -971,6 +1019,30 @@"Health": 691}},+ "lancer_t10_fc9": {+ "id": "lancer_t10_fc9",+ "type": "lancer",+ "tier": 10,+ "fc": 9,+ "stats": {+ "Attack": 2178,+ "Defense": 10,+ "Lethality": 10,+ "Health": 726+ }+ },+ "lancer_t10_fc10": {+ "id": "lancer_t10_fc10",+ "type": "lancer",+ "tier": 10,+ "fc": 10,+ "stats": {+ "Attack": 2286,+ "Defense": 10,+ "Lethality": 10,+ "Health": 762+ }+ },"lancer_t11_fc6": {"id": "lancer_t11_fc6","type": "lancer",@@ -1007,6 +1079,30 @@"Health": 762}},+ "lancer_t11_fc9": {+ "id": "lancer_t11_fc9",+ "type": "lancer",+ "tier": 11,+ "fc": 9,+ "stats": {+ "Attack": 2400,+ "Defense": 10,+ "Lethality": 10,+ "Health": 800+ }+ },+ "lancer_t11_fc10": {+ "id": "lancer_t11_fc10",+ "type": "lancer",+ "tier": 11,+ "fc": 10,+ "stats": {+ "Attack": 2520,+ "Defense": 10,+ "Lethality": 10,+ "Health": 840+ }+ },"marksman_t10_fc6": {"id": "marksman_t10_fc6","type": "marksman",@@ -1043,6 +1139,30 @@"Health": 519}},+ "marksman_t10_fc9": {+ "id": "marksman_t10_fc9",+ "type": "marksman",+ "tier": 10,+ "fc": 9,+ "stats": {+ "Attack": 2904,+ "Defense": 10,+ "Lethality": 10,+ "Health": 545+ }+ },+ "marksman_t10_fc10": {+ "id": "marksman_t10_fc10",+ "type": "marksman",+ "tier": 10,+ "fc": 10,+ "stats": {+ "Attack": 3048,+ "Defense": 10,+ "Lethality": 10,+ "Health": 572+ }+ },"marksman_t11_fc6": {"id": "marksman_t11_fc6","type": "marksman",@@ -1079,6 +1199,30 @@"Health": 572}},+ "marksman_t11_fc9": {+ "id": "marksman_t11_fc9",+ "type": "marksman",+ "tier": 11,+ "fc": 9,+ "stats": {+ "Attack": 3200,+ "Defense": 10,+ "Lethality": 10,+ "Health": 600+ }+ },+ "marksman_t11_fc10": {+ "id": "marksman_t11_fc10",+ "type": "marksman",+ "tier": 11,+ "fc": 10,+ "stats": {+ "Attack": 3360,+ "Defense": 10,+ "Lethality": 10,+ "Health": 630+ }+ },"lancer_t1": {"id": "lancer_t1","type": "lancers",
Accuracy Results
201 / 201