From 92b16030cfc9377a4f7f15838a60da26a5e9b09a Mon Sep 17 00:00:00 2001
From: FelixPflaum <141590183+FelixPflaum@users.noreply.github.com>
Date: Sat, 27 Jul 2024 17:53:41 +0200
Subject: [PATCH] Reset extra attacks on sim reset

---
 sim/core/attack.go                            |  8 ++++
 sim/druid/feral/TestFeral.results             | 14 +++---
 sim/hunter/TestBM.results                     | 46 +++++++++----------
 sim/hunter/TestSV.results                     | 30 ++++++------
 .../retribution/TestRetribution.results       | 18 ++++----
 sim/rogue/dps_rogue/TestAssassination.results |  4 +-
 sim/rogue/dps_rogue/TestCombat.results        |  4 +-
 sim/warrior/dps/TestFury.results              | 26 +++++------
 8 files changed, 79 insertions(+), 71 deletions(-)

diff --git a/sim/core/attack.go b/sim/core/attack.go
index e53d0c3423..c75ffa80b6 100644
--- a/sim/core/attack.go
+++ b/sim/core/attack.go
@@ -492,6 +492,14 @@ func (aa *AutoAttacks) reset(sim *Simulation) {
 	aa.mh.swingAt = NeverExpires
 	aa.oh.swingAt = NeverExpires
 
+	// Make sure extra attacks are reset
+	aa.mh.extraAttacks = 0
+	aa.mh.spell.SetMetricsSplit(0)
+	if aa.ranged.spell != nil {
+		aa.ranged.extraAttacks = 0
+		aa.ranged.spell.SetMetricsSplit(0)
+	}
+
 	if aa.AutoSwingMelee {
 		aa.mh.updateSwingDuration(aa.mh.unit.SwingSpeed())
 		aa.mh.swingAt = 0
diff --git a/sim/druid/feral/TestFeral.results b/sim/druid/feral/TestFeral.results
index 46df0ffce1..b3c2e7b4fe 100644
--- a/sim/druid/feral/TestFeral.results
+++ b/sim/druid/feral/TestFeral.results
@@ -939,9 +939,9 @@ dps_results: {
 dps_results: {
  key: "TestFeral-Lvl50-AllItems-FeralheartRaiment"
  value: {
-  dps: 959.87947
-  tps: 701.57772
-  hps: 9.02419
+  dps: 960.49202
+  tps: 701.86332
+  hps: 9.01417
  }
 }
 dps_results: {
@@ -1342,8 +1342,8 @@ dps_results: {
 dps_results: {
  key: "TestFeral-Lvl60-Average-Default"
  value: {
-  dps: 3710.76268
-  tps: 2659.56239
+  dps: 3710.77938
+  tps: 2659.57648
  }
 }
 dps_results: {
@@ -1601,7 +1601,7 @@ dps_results: {
 dps_results: {
  key: "TestFeral-Lvl60-SwitchInFrontOfTarget-Default"
  value: {
-  dps: 2666.63792
-  tps: 1897.57406
+  dps: 2666.66011
+  tps: 1897.58073
  }
 }
diff --git a/sim/hunter/TestBM.results b/sim/hunter/TestBM.results
index 0412e53439..7dbc1a5aa7 100644
--- a/sim/hunter/TestBM.results
+++ b/sim/hunter/TestBM.results
@@ -51,7 +51,7 @@ stat_weights_results: {
  key: "TestBM-Lvl40-StatWeights-Default"
  value: {
   weights: 0
-  weights: 0.90114
+  weights: 0.90122
   weights: 0
   weights: 0
   weights: 0
@@ -67,9 +67,9 @@ stat_weights_results: {
   weights: 0
   weights: 0
   weights: 0
-  weights: 0.32114
-  weights: 9.11442
-  weights: 7.69424
+  weights: 0.32108
+  weights: 9.28205
+  weights: 7.88095
   weights: 0
   weights: 0
   weights: 0
@@ -77,7 +77,7 @@ stat_weights_results: {
   weights: 0
   weights: 0
   weights: 0
-  weights: 0.06836
+  weights: 0.06833
   weights: 0
   weights: 0
   weights: 0
@@ -120,29 +120,29 @@ dps_results: {
 dps_results: {
  key: "TestBM-Lvl40-Settings-NightElf-p2_melee-Basic-p2_melee-FullBuffs-Phase 2 Consumes-LongMultiTarget"
  value: {
-  dps: 1917.1654
-  tps: 1717.50879
+  dps: 1917.06218
+  tps: 1717.84555
  }
 }
 dps_results: {
  key: "TestBM-Lvl40-Settings-NightElf-p2_melee-Basic-p2_melee-FullBuffs-Phase 2 Consumes-LongSingleTarget"
  value: {
-  dps: 848.11262
-  tps: 360.16681
+  dps: 848.27173
+  tps: 360.0824
  }
 }
 dps_results: {
  key: "TestBM-Lvl40-Settings-NightElf-p2_melee-Basic-p2_melee-FullBuffs-Phase 2 Consumes-ShortSingleTarget"
  value: {
-  dps: 892.44339
-  tps: 374.06264
+  dps: 891.80423
+  tps: 373.48773
  }
 }
 dps_results: {
  key: "TestBM-Lvl40-Settings-NightElf-p2_melee-Basic-p2_melee-NoBuffs-Phase 2 Consumes-LongMultiTarget"
  value: {
-  dps: 1095.11619
-  tps: 1101.20929
+  dps: 1095.47382
+  tps: 1099.44525
  }
 }
 dps_results: {
@@ -155,8 +155,8 @@ dps_results: {
 dps_results: {
  key: "TestBM-Lvl40-Settings-NightElf-p2_melee-Basic-p2_melee-NoBuffs-Phase 2 Consumes-ShortSingleTarget"
  value: {
-  dps: 492.41506
-  tps: 196.73011
+  dps: 492.95895
+  tps: 197.68456
  }
 }
 dps_results: {
@@ -239,8 +239,8 @@ dps_results: {
 dps_results: {
  key: "TestBM-Lvl40-Settings-NightElf-p2_ranged_bm-Basic-p2_melee-NoBuffs-Phase 2 Consumes-ShortSingleTarget"
  value: {
-  dps: 296.26131
-  tps: 131.27115
+  dps: 294.54967
+  tps: 130.97046
  }
 }
 dps_results: {
@@ -288,8 +288,8 @@ dps_results: {
 dps_results: {
  key: "TestBM-Lvl40-Settings-Orc-p2_melee-Basic-p2_melee-FullBuffs-Phase 2 Consumes-LongMultiTarget"
  value: {
-  dps: 1834.80576
-  tps: 1627.87088
+  dps: 1835.34021
+  tps: 1628.81839
  }
 }
 dps_results: {
@@ -302,8 +302,8 @@ dps_results: {
 dps_results: {
  key: "TestBM-Lvl40-Settings-Orc-p2_melee-Basic-p2_melee-FullBuffs-Phase 2 Consumes-ShortSingleTarget"
  value: {
-  dps: 871.99955
-  tps: 348.52986
+  dps: 873.5991
+  tps: 347.94147
  }
 }
 dps_results: {
@@ -407,8 +407,8 @@ dps_results: {
 dps_results: {
  key: "TestBM-Lvl40-Settings-Orc-p2_ranged_bm-Basic-p2_melee-NoBuffs-Phase 2 Consumes-ShortSingleTarget"
  value: {
-  dps: 309.95024
-  tps: 130.79488
+  dps: 310.92113
+  tps: 131.7757
  }
 }
 dps_results: {
diff --git a/sim/hunter/TestSV.results b/sim/hunter/TestSV.results
index d1a07adf3c..945c6ccc8d 100644
--- a/sim/hunter/TestSV.results
+++ b/sim/hunter/TestSV.results
@@ -117,7 +117,7 @@ stat_weights_results: {
   weights: 0
   weights: 0
   weights: 0.35636
-  weights: 6.27092
+  weights: 5.69221
   weights: 6.88569
   weights: 0
   weights: 0
@@ -218,22 +218,22 @@ dps_results: {
 dps_results: {
  key: "TestSV-Lvl40-Settings-Dwarf-p2_melee-Basic-p2_melee-FullBuffs-Phase 2 Consumes-LongMultiTarget"
  value: {
-  dps: 1944.92859
-  tps: 1826.58957
+  dps: 1942.68463
+  tps: 1825.28209
  }
 }
 dps_results: {
  key: "TestSV-Lvl40-Settings-Dwarf-p2_melee-Basic-p2_melee-FullBuffs-Phase 2 Consumes-LongSingleTarget"
  value: {
-  dps: 790.77692
-  tps: 390.09457
+  dps: 789.98524
+  tps: 389.72275
  }
 }
 dps_results: {
  key: "TestSV-Lvl40-Settings-Dwarf-p2_melee-Basic-p2_melee-FullBuffs-Phase 2 Consumes-ShortSingleTarget"
  value: {
-  dps: 819.77126
-  tps: 404.88616
+  dps: 819.66232
+  tps: 404.89543
  }
 }
 dps_results: {
@@ -253,15 +253,15 @@ dps_results: {
 dps_results: {
  key: "TestSV-Lvl40-Settings-Dwarf-p2_melee-Basic-p2_melee-NoBuffs-Phase 2 Consumes-ShortSingleTarget"
  value: {
-  dps: 448.01044
-  tps: 208.42589
+  dps: 449.50123
+  tps: 210.26817
  }
 }
 dps_results: {
  key: "TestSV-Lvl40-Settings-Orc-p2_melee-Basic-p2_melee-FullBuffs-Phase 2 Consumes-LongMultiTarget"
  value: {
-  dps: 1914.73231
-  tps: 1798.85232
+  dps: 1914.91103
+  tps: 1799.20682
  }
 }
 dps_results: {
@@ -274,8 +274,8 @@ dps_results: {
 dps_results: {
  key: "TestSV-Lvl40-Settings-Orc-p2_melee-Basic-p2_melee-FullBuffs-Phase 2 Consumes-ShortSingleTarget"
  value: {
-  dps: 811.73578
-  tps: 390.64507
+  dps: 812.77822
+  tps: 391.77769
  }
 }
 dps_results: {
@@ -302,8 +302,8 @@ dps_results: {
 dps_results: {
  key: "TestSV-Lvl40-SwitchInFrontOfTarget-Default"
  value: {
-  dps: 739.57113
-  tps: 355.73279
+  dps: 739.26702
+  tps: 355.83896
  }
 }
 dps_results: {
diff --git a/sim/paladin/retribution/TestRetribution.results b/sim/paladin/retribution/TestRetribution.results
index eaa5519348..a0fa2f562f 100644
--- a/sim/paladin/retribution/TestRetribution.results
+++ b/sim/paladin/retribution/TestRetribution.results
@@ -148,12 +148,12 @@ character_stats_results: {
 stat_weights_results: {
  key: "TestRetribution-Lvl25-StatWeights-Default"
  value: {
-  weights: 0.45643
-  weights: 0.24663
+  weights: 0.45652
+  weights: 0.23955
   weights: 0
   weights: 0
   weights: 0
-  weights: 0.13576
+  weights: 0.13555
   weights: 0
   weights: 0
   weights: 0
@@ -161,13 +161,13 @@ stat_weights_results: {
   weights: 0
   weights: 0
   weights: 0
-  weights: 0.48147
+  weights: 0.44697
   weights: 0
   weights: 0
   weights: 0
-  weights: 0.20747
-  weights: 1.34536
-  weights: 2.144
+  weights: 0.20751
+  weights: 1.28104
+  weights: 2.14303
   weights: 0
   weights: 0
   weights: 0
@@ -393,8 +393,8 @@ dps_results: {
 dps_results: {
  key: "TestRetribution-Lvl25-SwitchInFrontOfTarget-Default"
  value: {
-  dps: 230.64012
-  tps: 237.65303
+  dps: 230.25143
+  tps: 237.26433
  }
 }
 dps_results: {
diff --git a/sim/rogue/dps_rogue/TestAssassination.results b/sim/rogue/dps_rogue/TestAssassination.results
index ccde226c82..fe1d52a238 100644
--- a/sim/rogue/dps_rogue/TestAssassination.results
+++ b/sim/rogue/dps_rogue/TestAssassination.results
@@ -204,8 +204,8 @@ dps_results: {
 dps_results: {
  key: "TestAssassination-Lvl25-Average-Default"
  value: {
-  dps: 278.96591
-  tps: 198.0658
+  dps: 278.96356
+  tps: 198.06413
  }
 }
 dps_results: {
diff --git a/sim/rogue/dps_rogue/TestCombat.results b/sim/rogue/dps_rogue/TestCombat.results
index 56adb8f5cb..fc71aacff8 100644
--- a/sim/rogue/dps_rogue/TestCombat.results
+++ b/sim/rogue/dps_rogue/TestCombat.results
@@ -204,8 +204,8 @@ dps_results: {
 dps_results: {
  key: "TestCombat-Lvl25-Average-Default"
  value: {
-  dps: 215.24205
-  tps: 152.82186
+  dps: 215.24493
+  tps: 152.8239
  }
 }
 dps_results: {
diff --git a/sim/warrior/dps/TestFury.results b/sim/warrior/dps/TestFury.results
index 7192e09d5a..13e853226b 100644
--- a/sim/warrior/dps/TestFury.results
+++ b/sim/warrior/dps/TestFury.results
@@ -99,7 +99,7 @@ character_stats_results: {
 stat_weights_results: {
  key: "TestFury-Lvl40-StatWeights-Default"
  value: {
-  weights: 1.61096
+  weights: 1.73729
   weights: 1.61573
   weights: 0
   weights: 0
@@ -116,9 +116,9 @@ stat_weights_results: {
   weights: 0
   weights: 0
   weights: 0
-  weights: 0.68273
-  weights: 7.28172
-  weights: 8.59079
+  weights: 0.76581
+  weights: 7.18595
+  weights: 8.60141
   weights: 0
   weights: 0
   weights: 0
@@ -148,8 +148,8 @@ stat_weights_results: {
 stat_weights_results: {
  key: "TestFury-Lvl60-StatWeights-Default"
  value: {
-  weights: 1.70323
-  weights: 3.55909
+  weights: 2.43689
+  weights: 3.21766
   weights: 0
   weights: 0
   weights: 0
@@ -165,9 +165,9 @@ stat_weights_results: {
   weights: 0
   weights: 0
   weights: 0
-  weights: 0.85935
-  weights: 4.48378
-  weights: 32.35009
+  weights: 1.59243
+  weights: 4.43424
+  weights: 34.04931
   weights: 0
   weights: 0
   weights: 0
@@ -337,8 +337,8 @@ dps_results: {
 dps_results: {
  key: "TestFury-Lvl60-AllItems-WailingBerserker'sPlateArmor"
  value: {
-  dps: 2834.7986
-  tps: 2494.28592
+  dps: 2833.25907
+  tps: 2493.00086
  }
 }
 dps_results: {
@@ -435,7 +435,7 @@ dps_results: {
 dps_results: {
  key: "TestFury-Lvl60-SwitchInFrontOfTarget-Default"
  value: {
-  dps: 2514.07705
-  tps: 2203.58386
+  dps: 2518.84401
+  tps: 2207.63259
  }
 }