diff --git a/sim/core/attack.go b/sim/core/attack.go index 34fc1c9337..8231acd40f 100644 --- a/sim/core/attack.go +++ b/sim/core/attack.go @@ -517,14 +517,14 @@ func (aa *AutoAttacks) startPull(sim *Simulation) { aa.enabled = true - if aa.AutoSwingMelee && aa.mh.unit.DistanceFromTarget <= 5 { + if aa.AutoSwingMelee && aa.mh.unit.DistanceFromTarget <= MaxMeleeAttackDistance { aa.mh.addWeaponAttack(sim, aa.mh.unit.SwingSpeed()) if aa.IsDualWielding { aa.oh.addWeaponAttack(sim, aa.mh.curSwingSpeed) } } - if aa.AutoSwingRanged && aa.mh.unit.DistanceFromTarget >= 8 { + if aa.AutoSwingRanged && aa.mh.unit.DistanceFromTarget >= MinRangedAttackDistance { aa.ranged.addWeaponAttack(sim, aa.ranged.unit.RangedSwingSpeed()) } } @@ -566,7 +566,7 @@ func (aa *AutoAttacks) EnableAutoSwing(sim *Simulation) { aa.enabled = true - if aa.AutoSwingMelee && aa.mh.unit.DistanceFromTarget <= 5 { + if aa.AutoSwingMelee && aa.mh.unit.DistanceFromTarget <= MaxMeleeAttackDistance { aa.mh.swingAt = max(aa.mh.swingAt, sim.CurrentTime, 0) aa.mh.addWeaponAttack(sim, aa.mh.unit.SwingSpeed()) if aa.IsDualWielding { @@ -575,7 +575,7 @@ func (aa *AutoAttacks) EnableAutoSwing(sim *Simulation) { } } - if aa.AutoSwingRanged && aa.mh.unit.DistanceFromTarget >= 8 { + if aa.AutoSwingRanged && aa.mh.unit.DistanceFromTarget >= MinRangedAttackDistance { aa.ranged.swingAt = max(aa.ranged.swingAt, sim.CurrentTime, 0) aa.ranged.addWeaponAttack(sim, aa.ranged.unit.RangedSwingSpeed()) } diff --git a/sim/core/constants.go b/sim/core/constants.go index ee218e48f0..d2de664bfc 100644 --- a/sim/core/constants.go +++ b/sim/core/constants.go @@ -13,6 +13,9 @@ const SpellBatchWindow = time.Millisecond * 10 const DefaultAttackPowerPerDPS = 14.0 const ArmorPenPerPercentArmor = 13.99 +const MaxMeleeAttackDistance = 5 +const MinRangedAttackDistance = 12 + const MissDodgeParryBlockCritChancePerDefense = 0.04 const DefenseRatingToChanceReduction = (1.0 / DefenseRatingPerDefense) * MissDodgeParryBlockCritChancePerDefense / 100 diff --git a/sim/core/unit.go b/sim/core/unit.go index c673e5cd05..0ae79c9310 100644 --- a/sim/core/unit.go +++ b/sim/core/unit.go @@ -428,7 +428,7 @@ func (unit *Unit) MoveTo(moveRange float64, sim *Simulation) { unit.moveSpell.Cast(sim, unit.CurrentTarget) sim.AddPendingAction(NewPeriodicAction(sim, PeriodicActionOptions{ - Period: time.Millisecond * 500, + Period: time.Millisecond * 1000 / 7, NumTicks: int(moveTicks), TickImmediately: false, diff --git a/sim/hunter/TestBM.results b/sim/hunter/TestBM.results index 09972fe65e..74158e99b9 100644 --- a/sim/hunter/TestBM.results +++ b/sim/hunter/TestBM.results @@ -100,7 +100,7 @@ stat_weights_results: { key: "TestBM-Lvl25-StatWeights-Default" value: { weights: 0 - weights: 0.51891 + weights: 0.53077 weights: 0 weights: 0 weights: 0 @@ -116,9 +116,9 @@ stat_weights_results: { weights: 0 weights: 0 weights: 0 - weights: 0.0262 - weights: 2.40326 - weights: 2.22103 + weights: 0.02801 + weights: 2.516 + weights: 2.23961 weights: 0 weights: 0 weights: 0 @@ -126,7 +126,7 @@ stat_weights_results: { weights: 0 weights: 0 weights: 0 - weights: 0.13124 + weights: 0.13184 weights: 0 weights: 0 weights: 0 @@ -197,106 +197,106 @@ stat_weights_results: { dps_results: { key: "TestBM-Lvl25-AllItems-BeastmasterArmor" value: { - dps: 322.86052 - tps: 165.63671 + dps: 329.13801 + tps: 171.79857 } } dps_results: { key: "TestBM-Lvl25-Average-Default" value: { - dps: 250.3442 - tps: 102.79252 + dps: 252.85604 + tps: 104.89061 } } dps_results: { key: "TestBM-Lvl25-Settings-NightElf-phase1-Basic-p1_weave-FullBuffs-Phase 1 Consumes-LongMultiTarget" value: { - dps: 250.89875 - tps: 114.38548 + dps: 257.62869 + tps: 119.02478 } } dps_results: { key: "TestBM-Lvl25-Settings-NightElf-phase1-Basic-p1_weave-FullBuffs-Phase 1 Consumes-LongSingleTarget" value: { - dps: 242.36747 - tps: 101.12937 + dps: 245.53092 + tps: 105.46271 } } dps_results: { key: "TestBM-Lvl25-Settings-NightElf-phase1-Basic-p1_weave-FullBuffs-Phase 1 Consumes-ShortSingleTarget" value: { - dps: 312.10516 - tps: 119.32138 + dps: 357.79828 + tps: 153.21729 } } dps_results: { key: "TestBM-Lvl25-Settings-NightElf-phase1-Basic-p1_weave-NoBuffs-Phase 1 Consumes-LongMultiTarget" value: { - dps: 126.40871 - tps: 62.42832 + dps: 129.82503 + tps: 65.34086 } } dps_results: { key: "TestBM-Lvl25-Settings-NightElf-phase1-Basic-p1_weave-NoBuffs-Phase 1 Consumes-LongSingleTarget" value: { - dps: 122.17212 - tps: 56.70515 + dps: 124.43263 + tps: 59.47774 } } dps_results: { key: "TestBM-Lvl25-Settings-NightElf-phase1-Basic-p1_weave-NoBuffs-Phase 1 Consumes-ShortSingleTarget" value: { - dps: 154.5189 - tps: 65.81464 + dps: 165.47936 + tps: 78.43874 } } dps_results: { key: "TestBM-Lvl25-Settings-Orc-phase1-Basic-p1_weave-FullBuffs-Phase 1 Consumes-LongMultiTarget" value: { - dps: 251.89503 - tps: 111.02439 + dps: 258.30095 + tps: 115.96123 } } dps_results: { key: "TestBM-Lvl25-Settings-Orc-phase1-Basic-p1_weave-FullBuffs-Phase 1 Consumes-LongSingleTarget" value: { - dps: 243.4198 - tps: 98.58413 + dps: 247.09104 + tps: 102.98106 } } dps_results: { key: "TestBM-Lvl25-Settings-Orc-phase1-Basic-p1_weave-FullBuffs-Phase 1 Consumes-ShortSingleTarget" value: { - dps: 315.17718 - tps: 117.42254 + dps: 358.97586 + tps: 150.11605 } } dps_results: { key: "TestBM-Lvl25-Settings-Orc-phase1-Basic-p1_weave-NoBuffs-Phase 1 Consumes-LongMultiTarget" value: { - dps: 126.73686 - tps: 61.71224 + dps: 130.0554 + tps: 63.97371 } } dps_results: { key: "TestBM-Lvl25-Settings-Orc-phase1-Basic-p1_weave-NoBuffs-Phase 1 Consumes-LongSingleTarget" value: { - dps: 123.05605 - tps: 55.86071 + dps: 124.5532 + tps: 57.86326 } } dps_results: { key: "TestBM-Lvl25-Settings-Orc-phase1-Basic-p1_weave-NoBuffs-Phase 1 Consumes-ShortSingleTarget" value: { - dps: 154.53532 - tps: 65.12392 + dps: 161.12417 + tps: 74.75417 } } dps_results: { key: "TestBM-Lvl25-SwitchInFrontOfTarget-Default" value: { - dps: 247.90955 - tps: 102.24514 + dps: 248.07389 + tps: 103.71803 } } dps_results: { @@ -323,43 +323,43 @@ dps_results: { dps_results: { key: "TestBM-Lvl40-Settings-NightElf-p2_melee-Basic-p2_melee-FullBuffs-Phase 2 Consumes-LongMultiTarget" value: { - dps: 1621.82778 - tps: 995.97245 + dps: 1821.20835 + tps: 1184.89474 } } dps_results: { key: "TestBM-Lvl40-Settings-NightElf-p2_melee-Basic-p2_melee-FullBuffs-Phase 2 Consumes-LongSingleTarget" value: { - dps: 730.26915 - tps: 236.75592 + dps: 837.90083 + tps: 326.81696 } } dps_results: { key: "TestBM-Lvl40-Settings-NightElf-p2_melee-Basic-p2_melee-FullBuffs-Phase 2 Consumes-ShortSingleTarget" value: { - dps: 762.85699 - tps: 248.61717 + dps: 879.77664 + tps: 339.3802 } } dps_results: { key: "TestBM-Lvl40-Settings-NightElf-p2_melee-Basic-p2_melee-NoBuffs-Phase 2 Consumes-LongMultiTarget" value: { - dps: 865.73065 - tps: 640.06892 + dps: 1015.91811 + tps: 790.45397 } } dps_results: { key: "TestBM-Lvl40-Settings-NightElf-p2_melee-Basic-p2_melee-NoBuffs-Phase 2 Consumes-LongSingleTarget" value: { - dps: 370.2734 - tps: 131.15666 + dps: 420.9362 + tps: 169.29647 } } dps_results: { key: "TestBM-Lvl40-Settings-NightElf-p2_melee-Basic-p2_melee-NoBuffs-Phase 2 Consumes-ShortSingleTarget" value: { - dps: 399.71796 - tps: 135.04526 + dps: 455.38741 + tps: 170.08554 } } dps_results: { @@ -407,43 +407,43 @@ dps_results: { dps_results: { key: "TestBM-Lvl40-Settings-NightElf-p2_ranged_bm-Basic-p2_melee-FullBuffs-Phase 2 Consumes-LongMultiTarget" value: { - dps: 486.22279 - tps: 474.74016 + dps: 512.55838 + tps: 564.61171 } } dps_results: { key: "TestBM-Lvl40-Settings-NightElf-p2_ranged_bm-Basic-p2_melee-FullBuffs-Phase 2 Consumes-LongSingleTarget" value: { - dps: 486.22279 - tps: 209.7514 + dps: 512.55838 + tps: 240.05141 } } dps_results: { key: "TestBM-Lvl40-Settings-NightElf-p2_ranged_bm-Basic-p2_melee-FullBuffs-Phase 2 Consumes-ShortSingleTarget" value: { - dps: 537.78676 - tps: 233.56775 + dps: 548.8634 + tps: 257.91959 } } dps_results: { key: "TestBM-Lvl40-Settings-NightElf-p2_ranged_bm-Basic-p2_melee-NoBuffs-Phase 2 Consumes-LongMultiTarget" value: { - dps: 243.3659 - tps: 438.18124 + dps: 246.07684 + tps: 449.92796 } } dps_results: { key: "TestBM-Lvl40-Settings-NightElf-p2_ranged_bm-Basic-p2_melee-NoBuffs-Phase 2 Consumes-LongSingleTarget" value: { - dps: 243.3659 - tps: 123.581 + dps: 246.07684 + tps: 125.69401 } } dps_results: { key: "TestBM-Lvl40-Settings-NightElf-p2_ranged_bm-Basic-p2_melee-NoBuffs-Phase 2 Consumes-ShortSingleTarget" value: { - dps: 277.45929 - tps: 133.68913 + dps: 269.9229 + tps: 130.908 } } dps_results: { @@ -491,43 +491,43 @@ dps_results: { dps_results: { key: "TestBM-Lvl40-Settings-Orc-p2_melee-Basic-p2_melee-FullBuffs-Phase 2 Consumes-LongMultiTarget" value: { - dps: 1630.77885 - tps: 990.55107 + dps: 1805.8468 + tps: 1161.50171 } } dps_results: { key: "TestBM-Lvl40-Settings-Orc-p2_melee-Basic-p2_melee-FullBuffs-Phase 2 Consumes-LongSingleTarget" value: { - dps: 744.69965 - tps: 235.90031 + dps: 843.826 + tps: 323.09824 } } dps_results: { key: "TestBM-Lvl40-Settings-Orc-p2_melee-Basic-p2_melee-FullBuffs-Phase 2 Consumes-ShortSingleTarget" value: { - dps: 787.53742 - tps: 249.04312 + dps: 891.61084 + tps: 332.72337 } } dps_results: { key: "TestBM-Lvl40-Settings-Orc-p2_melee-Basic-p2_melee-NoBuffs-Phase 2 Consumes-LongMultiTarget" value: { - dps: 863.26146 - tps: 633.2562 + dps: 1003.90037 + tps: 778.30242 } } dps_results: { key: "TestBM-Lvl40-Settings-Orc-p2_melee-Basic-p2_melee-NoBuffs-Phase 2 Consumes-LongSingleTarget" value: { - dps: 373.62562 - tps: 129.14291 + dps: 424.35603 + tps: 168.18546 } } dps_results: { key: "TestBM-Lvl40-Settings-Orc-p2_melee-Basic-p2_melee-NoBuffs-Phase 2 Consumes-ShortSingleTarget" value: { - dps: 406.77043 - tps: 135.17851 + dps: 455.45797 + tps: 166.21835 } } dps_results: { @@ -575,43 +575,43 @@ dps_results: { dps_results: { key: "TestBM-Lvl40-Settings-Orc-p2_ranged_bm-Basic-p2_melee-FullBuffs-Phase 2 Consumes-LongMultiTarget" value: { - dps: 497.58636 - tps: 473.68846 + dps: 526.86689 + tps: 562.12478 } } dps_results: { key: "TestBM-Lvl40-Settings-Orc-p2_ranged_bm-Basic-p2_melee-FullBuffs-Phase 2 Consumes-LongSingleTarget" value: { - dps: 497.58636 - tps: 206.87987 + dps: 526.86689 + tps: 239.40739 } } dps_results: { key: "TestBM-Lvl40-Settings-Orc-p2_ranged_bm-Basic-p2_melee-FullBuffs-Phase 2 Consumes-ShortSingleTarget" value: { - dps: 552.45886 - tps: 236.75199 + dps: 563.62273 + tps: 254.61929 } } dps_results: { key: "TestBM-Lvl40-Settings-Orc-p2_ranged_bm-Basic-p2_melee-NoBuffs-Phase 2 Consumes-LongMultiTarget" value: { - dps: 248.0248 - tps: 436.80323 + dps: 253.22927 + tps: 447.1994 } } dps_results: { key: "TestBM-Lvl40-Settings-Orc-p2_ranged_bm-Basic-p2_melee-NoBuffs-Phase 2 Consumes-LongSingleTarget" value: { - dps: 248.0248 - tps: 122.04852 + dps: 253.22927 + tps: 126.12835 } } dps_results: { key: "TestBM-Lvl40-Settings-Orc-p2_ranged_bm-Basic-p2_melee-NoBuffs-Phase 2 Consumes-ShortSingleTarget" value: { - dps: 281.03819 - tps: 132.24348 + dps: 282.13349 + tps: 130.23571 } } dps_results: { diff --git a/sim/hunter/TestMM.results b/sim/hunter/TestMM.results index 0a7872748e..e1046ff9fb 100644 --- a/sim/hunter/TestMM.results +++ b/sim/hunter/TestMM.results @@ -100,7 +100,7 @@ stat_weights_results: { key: "TestMM-Lvl25-StatWeights-Default" value: { weights: 0 - weights: 0.42134 + weights: 0.42143 weights: 0 weights: 0 weights: 0 @@ -116,9 +116,9 @@ stat_weights_results: { weights: 0 weights: 0 weights: 0 - weights: 0.03161 - weights: 2.32423 - weights: 2.04516 + weights: 0.03208 + weights: 2.0933 + weights: 2.07672 weights: 0 weights: 0 weights: 0 @@ -126,7 +126,7 @@ stat_weights_results: { weights: 0 weights: 0 weights: 0 - weights: 0.12382 + weights: 0.12499 weights: 0 weights: 0 weights: 0 @@ -197,106 +197,106 @@ stat_weights_results: { dps_results: { key: "TestMM-Lvl25-AllItems-BeastmasterArmor" value: { - dps: 317.40381 - tps: 174.3657 + dps: 325.01626 + tps: 181.75677 } } dps_results: { key: "TestMM-Lvl25-Average-Default" value: { - dps: 237.09163 - tps: 105.50931 + dps: 238.74394 + tps: 107.31649 } } dps_results: { key: "TestMM-Lvl25-Settings-Dwarf-phase1-Basic-p1_weave-FullBuffs-Phase 1 Consumes-LongMultiTarget" value: { - dps: 233.46906 - tps: 114.43437 + dps: 241.0249 + tps: 119.84683 } } dps_results: { key: "TestMM-Lvl25-Settings-Dwarf-phase1-Basic-p1_weave-FullBuffs-Phase 1 Consumes-LongSingleTarget" value: { - dps: 222.16438 - tps: 100.50421 + dps: 229.04531 + tps: 105.46469 } } dps_results: { key: "TestMM-Lvl25-Settings-Dwarf-phase1-Basic-p1_weave-FullBuffs-Phase 1 Consumes-ShortSingleTarget" value: { - dps: 297.68661 - tps: 126.96257 + dps: 344.84387 + tps: 152.67551 } } dps_results: { key: "TestMM-Lvl25-Settings-Dwarf-phase1-Basic-p1_weave-NoBuffs-Phase 1 Consumes-LongMultiTarget" value: { - dps: 117.3875 - tps: 63.05768 + dps: 119.9057 + tps: 64.81461 } } dps_results: { key: "TestMM-Lvl25-Settings-Dwarf-phase1-Basic-p1_weave-NoBuffs-Phase 1 Consumes-LongSingleTarget" value: { - dps: 112.16344 - tps: 56.82452 + dps: 115.59932 + tps: 59.43702 } } dps_results: { key: "TestMM-Lvl25-Settings-Dwarf-phase1-Basic-p1_weave-NoBuffs-Phase 1 Consumes-ShortSingleTarget" value: { - dps: 147.07858 - tps: 68.76283 + dps: 165.18412 + tps: 82.93043 } } dps_results: { key: "TestMM-Lvl25-Settings-Orc-phase1-Basic-p1_weave-FullBuffs-Phase 1 Consumes-LongMultiTarget" value: { - dps: 238.93696 - tps: 114.97132 + dps: 246.37548 + tps: 121.34234 } } dps_results: { key: "TestMM-Lvl25-Settings-Orc-phase1-Basic-p1_weave-FullBuffs-Phase 1 Consumes-LongSingleTarget" value: { - dps: 228.04429 - tps: 101.33553 + dps: 234.0019 + tps: 105.24519 } } dps_results: { key: "TestMM-Lvl25-Settings-Orc-phase1-Basic-p1_weave-FullBuffs-Phase 1 Consumes-ShortSingleTarget" value: { - dps: 304.20553 - tps: 127.56377 + dps: 351.65613 + tps: 153.37919 } } dps_results: { key: "TestMM-Lvl25-Settings-Orc-phase1-Basic-p1_weave-NoBuffs-Phase 1 Consumes-LongMultiTarget" value: { - dps: 118.20948 - tps: 61.82332 + dps: 122.28699 + tps: 64.50714 } } dps_results: { key: "TestMM-Lvl25-Settings-Orc-phase1-Basic-p1_weave-NoBuffs-Phase 1 Consumes-LongSingleTarget" value: { - dps: 114.65893 - tps: 56.8723 + dps: 118.08539 + tps: 59.36571 } } dps_results: { key: "TestMM-Lvl25-Settings-Orc-phase1-Basic-p1_weave-NoBuffs-Phase 1 Consumes-ShortSingleTarget" value: { - dps: 148.8127 - tps: 68.15914 + dps: 164.69071 + tps: 81.12654 } } dps_results: { key: "TestMM-Lvl25-SwitchInFrontOfTarget-Default" value: { - dps: 234.02799 - tps: 106.00548 + dps: 235.76775 + tps: 107.47194 } } dps_results: { diff --git a/sim/hunter/TestSV.results b/sim/hunter/TestSV.results index edf36daac8..942f632d3d 100644 --- a/sim/hunter/TestSV.results +++ b/sim/hunter/TestSV.results @@ -100,7 +100,7 @@ stat_weights_results: { key: "TestSV-Lvl25-StatWeights-Default" value: { weights: 0 - weights: 0.42471 + weights: 0.46944 weights: 0 weights: 0 weights: 0 @@ -116,9 +116,9 @@ stat_weights_results: { weights: 0 weights: 0 weights: 0 - weights: 0.02742 - weights: 1.87513 - weights: 1.95844 + weights: 0.02853 + weights: 3.09965 + weights: 2.05937 weights: 0 weights: 0 weights: 0 @@ -126,7 +126,7 @@ stat_weights_results: { weights: 0 weights: 0 weights: 0 - weights: 0.12048 + weights: 0.12111 weights: 0 weights: 0 weights: 0 @@ -197,106 +197,106 @@ stat_weights_results: { dps_results: { key: "TestSV-Lvl25-AllItems-BeastmasterArmor" value: { - dps: 312.12877 - tps: 166.21411 + dps: 315.54176 + tps: 171.46691 } } dps_results: { key: "TestSV-Lvl25-Average-Default" value: { - dps: 226.32869 - tps: 100.41993 + dps: 229.0378 + tps: 102.46264 } } dps_results: { key: "TestSV-Lvl25-Settings-NightElf-phase1-Basic-p1_weave-FullBuffs-Phase 1 Consumes-LongMultiTarget" value: { - dps: 229.45762 - tps: 113.50363 + dps: 234.70818 + tps: 116.51019 } } dps_results: { key: "TestSV-Lvl25-Settings-NightElf-phase1-Basic-p1_weave-FullBuffs-Phase 1 Consumes-LongSingleTarget" value: { - dps: 219.9321 - tps: 99.07432 + dps: 222.93762 + tps: 103.47843 } } dps_results: { key: "TestSV-Lvl25-Settings-NightElf-phase1-Basic-p1_weave-FullBuffs-Phase 1 Consumes-ShortSingleTarget" value: { - dps: 296.39028 - tps: 122.13163 + dps: 344.21197 + tps: 152.47823 } } dps_results: { key: "TestSV-Lvl25-Settings-NightElf-phase1-Basic-p1_weave-NoBuffs-Phase 1 Consumes-LongMultiTarget" value: { - dps: 114.48996 - tps: 61.20312 + dps: 118.32782 + tps: 63.68751 } } dps_results: { key: "TestSV-Lvl25-Settings-NightElf-phase1-Basic-p1_weave-NoBuffs-Phase 1 Consumes-LongSingleTarget" value: { - dps: 110.10097 - tps: 55.36928 + dps: 112.81679 + tps: 57.87097 } } dps_results: { key: "TestSV-Lvl25-Settings-NightElf-phase1-Basic-p1_weave-NoBuffs-Phase 1 Consumes-ShortSingleTarget" value: { - dps: 144.31375 - tps: 64.76151 + dps: 157.96918 + tps: 78.49461 } } dps_results: { key: "TestSV-Lvl25-Settings-Orc-phase1-Basic-p1_weave-FullBuffs-Phase 1 Consumes-LongMultiTarget" value: { - dps: 229.37991 - tps: 109.82405 + dps: 235.22262 + tps: 114.51388 } } dps_results: { key: "TestSV-Lvl25-Settings-Orc-phase1-Basic-p1_weave-FullBuffs-Phase 1 Consumes-LongSingleTarget" value: { - dps: 220.96553 - tps: 96.74541 + dps: 224.81764 + tps: 101.08274 } } dps_results: { key: "TestSV-Lvl25-Settings-Orc-phase1-Basic-p1_weave-FullBuffs-Phase 1 Consumes-ShortSingleTarget" value: { - dps: 298.54116 - tps: 120.08976 + dps: 344.10676 + tps: 149.97081 } } dps_results: { key: "TestSV-Lvl25-Settings-Orc-phase1-Basic-p1_weave-NoBuffs-Phase 1 Consumes-LongMultiTarget" value: { - dps: 114.91423 - tps: 60.10125 + dps: 117.9478 + tps: 62.49287 } } dps_results: { key: "TestSV-Lvl25-Settings-Orc-phase1-Basic-p1_weave-NoBuffs-Phase 1 Consumes-LongSingleTarget" value: { - dps: 110.5218 - tps: 54.40434 + dps: 111.91388 + tps: 56.16102 } } dps_results: { key: "TestSV-Lvl25-Settings-Orc-phase1-Basic-p1_weave-NoBuffs-Phase 1 Consumes-ShortSingleTarget" value: { - dps: 143.48348 - tps: 65.29829 + dps: 153.28127 + tps: 74.3443 } } dps_results: { key: "TestSV-Lvl25-SwitchInFrontOfTarget-Default" value: { - dps: 222.68336 - tps: 99.52159 + dps: 225.35881 + tps: 102.06573 } } dps_results: { @@ -323,85 +323,85 @@ dps_results: { dps_results: { key: "TestSV-Lvl40-Settings-Dwarf-p2_melee-Basic-p2_melee-FullBuffs-Phase 2 Consumes-LongMultiTarget" value: { - dps: 1606.17589 - tps: 1024.23204 + dps: 1869.94639 + tps: 1262.90741 } } dps_results: { key: "TestSV-Lvl40-Settings-Dwarf-p2_melee-Basic-p2_melee-FullBuffs-Phase 2 Consumes-LongSingleTarget" value: { - dps: 646.83936 - tps: 243.35858 + dps: 789.57246 + tps: 358.72637 } } dps_results: { key: "TestSV-Lvl40-Settings-Dwarf-p2_melee-Basic-p2_melee-FullBuffs-Phase 2 Consumes-ShortSingleTarget" value: { - dps: 664.72246 - tps: 252.96198 + dps: 816.767 + tps: 376.03978 } } dps_results: { key: "TestSV-Lvl40-Settings-Dwarf-p2_melee-Basic-p2_melee-NoBuffs-Phase 2 Consumes-LongMultiTarget" value: { - dps: 857.9147 - tps: 637.72295 + dps: 1062.97185 + tps: 836.63235 } } dps_results: { key: "TestSV-Lvl40-Settings-Dwarf-p2_melee-Basic-p2_melee-NoBuffs-Phase 2 Consumes-LongSingleTarget" value: { - dps: 332.47728 - tps: 134.10586 + dps: 409.53563 + tps: 187.90722 } } dps_results: { key: "TestSV-Lvl40-Settings-Dwarf-p2_melee-Basic-p2_melee-NoBuffs-Phase 2 Consumes-ShortSingleTarget" value: { - dps: 354.11556 - tps: 137.46675 + dps: 431.31528 + tps: 187.66556 } } dps_results: { key: "TestSV-Lvl40-Settings-Orc-p2_melee-Basic-p2_melee-FullBuffs-Phase 2 Consumes-LongMultiTarget" value: { - dps: 1617.31294 - tps: 1023.9301 + dps: 1865.08931 + tps: 1253.44618 } } dps_results: { key: "TestSV-Lvl40-Settings-Orc-p2_melee-Basic-p2_melee-FullBuffs-Phase 2 Consumes-LongSingleTarget" value: { - dps: 662.87964 - tps: 244.83736 + dps: 801.55906 + tps: 360.98791 } } dps_results: { key: "TestSV-Lvl40-Settings-Orc-p2_melee-Basic-p2_melee-FullBuffs-Phase 2 Consumes-ShortSingleTarget" value: { - dps: 680.75712 - tps: 258.06929 + dps: 825.5615 + tps: 379.2634 } } dps_results: { key: "TestSV-Lvl40-Settings-Orc-p2_melee-Basic-p2_melee-NoBuffs-Phase 2 Consumes-LongMultiTarget" value: { - dps: 856.99433 - tps: 635.62351 + dps: 1055.03424 + tps: 820.77818 } } dps_results: { key: "TestSV-Lvl40-Settings-Orc-p2_melee-Basic-p2_melee-NoBuffs-Phase 2 Consumes-LongSingleTarget" value: { - dps: 337.85046 - tps: 134.93215 + dps: 413.91904 + tps: 187.9094 } } dps_results: { key: "TestSV-Lvl40-Settings-Orc-p2_melee-Basic-p2_melee-NoBuffs-Phase 2 Consumes-ShortSingleTarget" value: { - dps: 359.98879 - tps: 138.54583 + dps: 439.52835 + tps: 196.15882 } } dps_results: { diff --git a/sim/hunter/aimed_shot.go b/sim/hunter/aimed_shot.go index 4bbf4b566b..a9a592be9e 100644 --- a/sim/hunter/aimed_shot.go +++ b/sim/hunter/aimed_shot.go @@ -56,7 +56,7 @@ func (hunter *Hunter) getAimedShotConfig(rank int, timer *core.Timer) core.Spell }, }, ExtraCastCondition: func(sim *core.Simulation, target *core.Unit) bool { - return hunter.DistanceFromTarget >= 8 + return hunter.DistanceFromTarget >= core.MinRangedAttackDistance }, CritDamageBonus: hunter.mortalShots(), diff --git a/sim/hunter/arcane_shot.go b/sim/hunter/arcane_shot.go index a9b6d4247e..7bbf48ee4c 100644 --- a/sim/hunter/arcane_shot.go +++ b/sim/hunter/arcane_shot.go @@ -46,7 +46,7 @@ func (hunter *Hunter) getArcaneShotConfig(rank int, timer *core.Timer) core.Spel }, }, ExtraCastCondition: func(sim *core.Simulation, target *core.Unit) bool { - return hunter.DistanceFromTarget >= 8 + return hunter.DistanceFromTarget >= core.MinRangedAttackDistance }, CritDamageBonus: hunter.mortalShots(), diff --git a/sim/hunter/carve.go b/sim/hunter/carve.go index e049897007..5829fa88fe 100644 --- a/sim/hunter/carve.go +++ b/sim/hunter/carve.go @@ -50,7 +50,7 @@ func (hunter *Hunter) registerCarveSpell() { }, }, ExtraCastCondition: func(sim *core.Simulation, target *core.Unit) bool { - return hunter.DistanceFromTarget <= 5 + return hunter.DistanceFromTarget <= core.MaxMeleeAttackDistance }, DamageMultiplier: 0.65, diff --git a/sim/hunter/chimera_shot.go b/sim/hunter/chimera_shot.go index 39a86e241c..aba036cf35 100644 --- a/sim/hunter/chimera_shot.go +++ b/sim/hunter/chimera_shot.go @@ -46,7 +46,7 @@ func (hunter *Hunter) registerChimeraShotSpell() { }, }, ExtraCastCondition: func(sim *core.Simulation, target *core.Unit) bool { - return hunter.DistanceFromTarget >= 8 + return hunter.DistanceFromTarget >= core.MinRangedAttackDistance }, CritDamageBonus: hunter.mortalShots(), diff --git a/sim/hunter/explosive_shot.go b/sim/hunter/explosive_shot.go index 82ab61d5ce..45145cbd94 100644 --- a/sim/hunter/explosive_shot.go +++ b/sim/hunter/explosive_shot.go @@ -47,7 +47,7 @@ func (hunter *Hunter) registerExplosiveShotSpell(timer *core.Timer) { }, }, ExtraCastCondition: func(sim *core.Simulation, target *core.Unit) bool { - return hunter.DistanceFromTarget >= 8 + return hunter.DistanceFromTarget >= core.MinRangedAttackDistance }, CritDamageBonus: hunter.mortalShots(), diff --git a/sim/hunter/flanking_strike.go b/sim/hunter/flanking_strike.go index 5e93787505..1ce9a4605b 100644 --- a/sim/hunter/flanking_strike.go +++ b/sim/hunter/flanking_strike.go @@ -91,7 +91,7 @@ func (hunter *Hunter) registerFlankingStrikeSpell() { }, }, ExtraCastCondition: func(sim *core.Simulation, target *core.Unit) bool { - return hunter.DistanceFromTarget <= 5 + return hunter.DistanceFromTarget <= core.MaxMeleeAttackDistance }, CritDamageBonus: hunter.mortalShots(), diff --git a/sim/hunter/mongoose_bite.go b/sim/hunter/mongoose_bite.go index e2e7d05e42..90b4c54582 100644 --- a/sim/hunter/mongoose_bite.go +++ b/sim/hunter/mongoose_bite.go @@ -42,7 +42,7 @@ func (hunter *Hunter) getMongooseBiteConfig(rank int) core.SpellConfig { }, ExtraCastCondition: func(sim *core.Simulation, target *core.Unit) bool { - return hunter.DistanceFromTarget <= 5 && hunter.DefensiveState.IsActive() + return hunter.DistanceFromTarget <= core.MaxMeleeAttackDistance && hunter.DefensiveState.IsActive() }, BonusCritRating: float64(hunter.Talents.SavageStrikes) * 10 * core.CritRatingPerCritChance, diff --git a/sim/hunter/multi_shot.go b/sim/hunter/multi_shot.go index 068c7abec8..93b79be44a 100644 --- a/sim/hunter/multi_shot.go +++ b/sim/hunter/multi_shot.go @@ -56,7 +56,7 @@ func (hunter *Hunter) getMultiShotConfig(rank int, timer *core.Timer) core.Spell }, }, ExtraCastCondition: func(sim *core.Simulation, target *core.Unit) bool { - return hunter.DistanceFromTarget >= 8 + return hunter.DistanceFromTarget >= core.MinRangedAttackDistance }, CritDamageBonus: hunter.mortalShots(), diff --git a/sim/hunter/raptor_strike.go b/sim/hunter/raptor_strike.go index c5c5487ff1..e469375374 100644 --- a/sim/hunter/raptor_strike.go +++ b/sim/hunter/raptor_strike.go @@ -70,7 +70,7 @@ func (hunter *Hunter) getRaptorStrikeConfig(rank int) core.SpellConfig { }, }, ExtraCastCondition: func(sim *core.Simulation, target *core.Unit) bool { - return hunter.DistanceFromTarget <= 5 + return hunter.DistanceFromTarget <= core.MaxMeleeAttackDistance }, BonusCritRating: float64(hunter.Talents.SavageStrikes) * 10 * core.CritRatingPerCritChance, @@ -172,7 +172,7 @@ func (hunter *Hunter) makeQueueSpellsAndAura(srcSpell *core.Spell) *core.Spell { return hunter.curQueueAura != queueAura && hunter.CurrentMana() >= srcSpell.DefaultCast.Cost && sim.CurrentTime >= hunter.Hardcast.Expires && - hunter.DistanceFromTarget <= 5 && + hunter.DistanceFromTarget <= core.MaxMeleeAttackDistance && srcSpell.IsReady(sim) }, diff --git a/sim/hunter/serpent_sting.go b/sim/hunter/serpent_sting.go index a1864ee410..c13183d1b5 100644 --- a/sim/hunter/serpent_sting.go +++ b/sim/hunter/serpent_sting.go @@ -37,7 +37,7 @@ func (hunter *Hunter) getSerpentStingConfig(rank int) core.SpellConfig { IgnoreHaste: true, // Hunter GCD is locked at 1.5s }, ExtraCastCondition: func(sim *core.Simulation, target *core.Unit) bool { - return hunter.DistanceFromTarget >= 8 + return hunter.DistanceFromTarget >= core.MinRangedAttackDistance }, DamageMultiplier: 1 + 0.02*float64(hunter.Talents.ImprovedSerpentSting), diff --git a/sim/hunter/steady_shot.go b/sim/hunter/steady_shot.go index 357b886e1a..09131b2348 100644 --- a/sim/hunter/steady_shot.go +++ b/sim/hunter/steady_shot.go @@ -46,7 +46,7 @@ func (hunter *Hunter) registerSteadyShotSpell() { }, }, ExtraCastCondition: func(sim *core.Simulation, target *core.Unit) bool { - return hunter.DistanceFromTarget >= 8 + return hunter.DistanceFromTarget >= core.MinRangedAttackDistance }, CritDamageBonus: hunter.mortalShots(), diff --git a/sim/hunter/wing_clip.go b/sim/hunter/wing_clip.go index df2a1ba2ac..3cd209d595 100644 --- a/sim/hunter/wing_clip.go +++ b/sim/hunter/wing_clip.go @@ -30,7 +30,7 @@ func (hunter *Hunter) getWingClipConfig(rank int) core.SpellConfig { IgnoreHaste: true, }, ExtraCastCondition: func(sim *core.Simulation, target *core.Unit) bool { - return hunter.DistanceFromTarget <= 5 + return hunter.DistanceFromTarget <= core.MaxMeleeAttackDistance }, CritDamageBonus: hunter.mortalShots(), diff --git a/sim/hunter/wyvern_strike.go b/sim/hunter/wyvern_strike.go index 0e5ab6257b..473761aa4a 100644 --- a/sim/hunter/wyvern_strike.go +++ b/sim/hunter/wyvern_strike.go @@ -39,7 +39,7 @@ func (hunter *Hunter) getWyvernStrikeConfig(rank int) core.SpellConfig { }, }, ExtraCastCondition: func(sim *core.Simulation, target *core.Unit) bool { - return hunter.DistanceFromTarget <= 5 + return hunter.DistanceFromTarget <= core.MaxMeleeAttackDistance }, CritDamageBonus: hunter.mortalShots(), diff --git a/ui/hunter/apls/p1_weave.apl.json b/ui/hunter/apls/p1_weave.apl.json index 0ccc2fc7c0..4c93e36de8 100644 --- a/ui/hunter/apls/p1_weave.apl.json +++ b/ui/hunter/apls/p1_weave.apl.json @@ -12,6 +12,6 @@ {"action":{"castSpell":{"spellId":{"spellId":415320}}}}, {"action":{"castSpell":{"spellId":{"spellId":14262,"tag":1,"rank":4}}}}, {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpGe","lhs":{"autoTimeToNext":{"autoType":"Ranged"}},"rhs":{"const":{"val":"1.5s"}}}},{"not":{"val":{"spellIsReady":{"spellId":{"spellId":2643,"rank":1}}}}}]}},"move":{"rangeFromTarget":{"const":{"val":"5"}}}}}, - {"action":{"condition":{"cmp":{"op":"OpGe","lhs":{"autoTimeToNext":{"autoType":"Melee"}},"rhs":{"const":{"val":"1.5s"}}}},"move":{"rangeFromTarget":{"const":{"val":"8"}}}}} + {"action":{"condition":{"cmp":{"op":"OpGe","lhs":{"autoTimeToNext":{"autoType":"Melee"}},"rhs":{"const":{"val":"1.5s"}}}},"move":{"rangeFromTarget":{"const":{"val":"12"}}}}} ] } \ No newline at end of file diff --git a/ui/hunter/apls/p2_ranged_bm.apl.json b/ui/hunter/apls/p2_ranged_bm.apl.json index 4a2a077938..270218264c 100644 --- a/ui/hunter/apls/p2_ranged_bm.apl.json +++ b/ui/hunter/apls/p2_ranged_bm.apl.json @@ -23,7 +23,7 @@ {"action":{"castSpell":{"spellId":{"spellId":14264,"tag":1,"rank":6}}}}, {"action":{"castSpell":{"spellId":{"spellId":415341,"rank":6}}}}, {"hide":true,"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpGe","lhs":{"autoTimeToNext":{"autoType":"Ranged"}},"rhs":{"const":{"val":"1.5s"}}}},{"not":{"val":{"spellIsReady":{"spellId":{"spellId":14288,"rank":2}}}}},{"spellIsReady":{"spellId":{"spellId":14264,"tag":1,"rank":6}}},{"not":{"val":{"spellIsReady":{"spellId":{"spellId":409433}}}}},{"spellIsReady":{"spellId":{"spellId":415341,"rank":6}}}]}},"move":{"rangeFromTarget":{"const":{"val":"5"}}}}}, - {"hide":true,"action":{"condition":{"or":{"vals":[{"not":{"val":{"spellIsReady":{"spellId":{"spellId":14264,"tag":1,"rank":6}}}}},{"spellCanCast":{"spellId":{"spellId":409433}}},{"spellCanCast":{"spellId":{"spellId":14288,"rank":2}}},{"not":{"val":{"spellIsReady":{"spellId":{"spellId":415341,"rank":6}}}}},{"cmp":{"op":"OpEq","lhs":{"autoTimeToNext":{"autoType":"MainHand"}},"rhs":{"autoSwingTime":{"autoType":"MainHand"}}}}]}},"move":{"rangeFromTarget":{"const":{"val":"8"}}}}}, + {"hide":true,"action":{"condition":{"or":{"vals":[{"not":{"val":{"spellIsReady":{"spellId":{"spellId":14264,"tag":1,"rank":6}}}}},{"spellCanCast":{"spellId":{"spellId":409433}}},{"spellCanCast":{"spellId":{"spellId":14288,"rank":2}}},{"not":{"val":{"spellIsReady":{"spellId":{"spellId":415341,"rank":6}}}}},{"cmp":{"op":"OpEq","lhs":{"autoTimeToNext":{"autoType":"MainHand"}},"rhs":{"autoSwingTime":{"autoType":"MainHand"}}}}]}},"move":{"rangeFromTarget":{"const":{"val":"12"}}}}}, {"action":{"condition":{"not":{"val":{"auraIsActive":{"auraId":{"spellId":415423}}}}},"castSpell":{"spellId":{"spellId":14284,"rank":5}}}}, {"action":{"condition":{"and":{"vals":[{"gcdIsReady":{}},{"not":{"val":{"dotIsActive":{"spellId":{"spellId":409526,"rank":3}}}}}]}},"castSpell":{"spellId":{"spellId":409526,"rank":3}}}}, {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"currentManaPercent":{}},"rhs":{"const":{"val":"25%"}}}},{"gcdIsReady":{}}]}},"castSpell":{"spellId":{"itemId":3827}}}},