Skip to content

Commit

Permalink
Merge branch 'master' of https://github.com/wowsims/sod into hunter_t…
Browse files Browse the repository at this point in the history
…ier2sets
  • Loading branch information
Nathan-Berman-AA committed Sep 3, 2024
2 parents 2e1deb0 + 062426b commit e488ef1
Show file tree
Hide file tree
Showing 7 changed files with 81 additions and 74 deletions.
18 changes: 9 additions & 9 deletions sim/warrior/dps_warrior/TestArms.results
Original file line number Diff line number Diff line change
Expand Up @@ -50,8 +50,8 @@ character_stats_results: {
stat_weights_results: {
key: "TestArms-Lvl50-StatWeights-Default"
value: {
weights: 0.96938
weights: 0.94115
weights: 1.32803
weights: 0.90474
weights: 0
weights: 0
weights: 0
Expand All @@ -67,9 +67,9 @@ stat_weights_results: {
weights: 0
weights: 0
weights: 0
weights: 0.29689
weights: 13.18277
weights: 10.97717
weights: 0.51165
weights: 16.60611
weights: 11.22814
weights: 0
weights: 0
weights: 0
Expand Down Expand Up @@ -106,8 +106,8 @@ dps_results: {
dps_results: {
key: "TestArms-Lvl50-Average-Default"
value: {
dps: 1140.11392
tps: 969.13226
dps: 1190.65125
tps: 1012.94692
}
}
dps_results: {
Expand Down Expand Up @@ -197,7 +197,7 @@ dps_results: {
dps_results: {
key: "TestArms-Lvl50-SwitchInFrontOfTarget-Default"
value: {
dps: 1057.42077
tps: 899.84329
dps: 1111.33007
tps: 947.15308
}
}
70 changes: 35 additions & 35 deletions sim/warrior/dps_warrior/TestFury.results
Original file line number Diff line number Diff line change
Expand Up @@ -148,8 +148,8 @@ stat_weights_results: {
stat_weights_results: {
key: "TestFury-Lvl60-StatWeights-Default"
value: {
weights: 2.72024
weights: 0.2116
weights: 0.75763
weights: 1.37522
weights: 0
weights: 0
weights: 0
Expand All @@ -165,9 +165,9 @@ stat_weights_results: {
weights: 0
weights: 0
weights: 0
weights: 2.11692
weights: 6.80157
weights: 29.43846
weights: 1.44992
weights: 3.62881
weights: 31.64845
weights: 0
weights: 0
weights: 0
Expand Down Expand Up @@ -302,8 +302,8 @@ dps_results: {
dps_results: {
key: "TestFury-Lvl60-AllItems-BanishedMartyr'sFullPlate"
value: {
dps: 2586.0156
tps: 2282.02741
dps: 2600.08044
tps: 2301.99384
}
}
dps_results: {
Expand All @@ -316,50 +316,50 @@ dps_results: {
dps_results: {
key: "TestFury-Lvl60-AllItems-BloodGuard'sPlate"
value: {
dps: 2174.733
tps: 1911.88061
dps: 2175.68789
tps: 1913.2109
}
}
dps_results: {
key: "TestFury-Lvl60-AllItems-EmeraldDreamPlate"
value: {
dps: 2161.45805
tps: 1903.10474
dps: 2169.85182
tps: 1911.43626
}
}
dps_results: {
key: "TestFury-Lvl60-AllItems-Knight-Lieutenant'sPlate"
value: {
dps: 2174.733
tps: 1911.88061
dps: 2175.68789
tps: 1913.2109
}
}
dps_results: {
key: "TestFury-Lvl60-AllItems-WailingBerserker'sPlateArmor"
value: {
dps: 2796.38015
tps: 2465.92593
dps: 2783.37913
tps: 2454.40955
}
}
dps_results: {
key: "TestFury-Lvl60-Average-Default"
value: {
dps: 3242.16144
tps: 2832.66473
dps: 3263.8589
tps: 2851.02817
}
}
dps_results: {
key: "TestFury-Lvl60-Settings-Human-phase_4_dw-Fury-phase_4_fury-FullBuffs-Phase 1 Consumes-LongMultiTarget"
value: {
dps: 1297.60266
tps: 1311.31884
dps: 1317.73966
tps: 1330.45288
}
}
dps_results: {
key: "TestFury-Lvl60-Settings-Human-phase_4_dw-Fury-phase_4_fury-FullBuffs-Phase 1 Consumes-LongSingleTarget"
value: {
dps: 407.19885
tps: 402.21558
dps: 412.04719
tps: 406.96082
}
}
dps_results: {
Expand All @@ -372,15 +372,15 @@ dps_results: {
dps_results: {
key: "TestFury-Lvl60-Settings-Human-phase_4_dw-Fury-phase_4_fury-NoBuffs-Phase 1 Consumes-LongMultiTarget"
value: {
dps: 570.41724
tps: 633.29146
dps: 578.79622
tps: 642.56094
}
}
dps_results: {
key: "TestFury-Lvl60-Settings-Human-phase_4_dw-Fury-phase_4_fury-NoBuffs-Phase 1 Consumes-LongSingleTarget"
value: {
dps: 202.5115
tps: 229.18915
dps: 203.85659
tps: 231.17468
}
}
dps_results: {
Expand All @@ -393,15 +393,15 @@ dps_results: {
dps_results: {
key: "TestFury-Lvl60-Settings-Orc-phase_4_dw-Fury-phase_4_fury-FullBuffs-Phase 1 Consumes-LongMultiTarget"
value: {
dps: 1395.19137
tps: 1400.14264
dps: 1400.01147
tps: 1404.59231
}
}
dps_results: {
key: "TestFury-Lvl60-Settings-Orc-phase_4_dw-Fury-phase_4_fury-FullBuffs-Phase 1 Consumes-LongSingleTarget"
value: {
dps: 420.92334
tps: 412.82339
dps: 426.6352
tps: 418.15813
}
}
dps_results: {
Expand All @@ -414,15 +414,15 @@ dps_results: {
dps_results: {
key: "TestFury-Lvl60-Settings-Orc-phase_4_dw-Fury-phase_4_fury-NoBuffs-Phase 1 Consumes-LongMultiTarget"
value: {
dps: 594.71646
tps: 655.29917
dps: 595.74211
tps: 656.18596
}
}
dps_results: {
key: "TestFury-Lvl60-Settings-Orc-phase_4_dw-Fury-phase_4_fury-NoBuffs-Phase 1 Consumes-LongSingleTarget"
value: {
dps: 199.58548
tps: 225.90013
dps: 203.9354
tps: 229.94943
}
}
dps_results: {
Expand All @@ -435,7 +435,7 @@ dps_results: {
dps_results: {
key: "TestFury-Lvl60-SwitchInFrontOfTarget-Default"
value: {
dps: 2548.85172
tps: 2230.54743
dps: 2554.40805
tps: 2234.44992
}
}
2 changes: 1 addition & 1 deletion sim/warrior/quick_strike.go
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ func (warrior *Warrior) registerQuickStrike() {
ThreatMultiplier: 1,

ApplyEffects: func(sim *core.Simulation, target *core.Unit, spell *core.Spell) {
baseDamage := sim.Roll(0.10, 0.20) * spell.MeleeAttackPower()
baseDamage := sim.Roll(0.25, 0.35) * spell.MeleeAttackPower()

result := spell.CalcAndDealDamage(sim, target, baseDamage, spell.OutcomeMeleeWeaponSpecialHitAndCrit)

Expand Down
5 changes: 1 addition & 4 deletions sim/warrior/rampage.go
Original file line number Diff line number Diff line change
Expand Up @@ -31,12 +31,9 @@ func (warrior *Warrior) registerRampage() {

warrior.Rampage = warrior.RegisterSpell(AnyStance, core.SpellConfig{
ActionID: actionID,
Flags: core.SpellFlagAPL,
Flags: core.SpellFlagAPL | core.SpellFlagCastTimeNoGCD,

Cast: core.CastConfig{
DefaultCast: core.Cast{
GCD: core.GCDDefault,
},
CD: core.Cooldown{
Timer: warrior.NewTimer(),
Duration: time.Minute * 2,
Expand Down
20 changes: 12 additions & 8 deletions sim/warrior/runes.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package warrior

import (
"slices"
"time"

"github.com/wowsims/sod/sim/core"
Expand Down Expand Up @@ -131,10 +132,12 @@ func (warrior *Warrior) applyFrenziedAssault() {
Label: "Frenzied Assault",
Duration: core.NeverExpires,
OnGain: func(aura *core.Aura, sim *core.Simulation) {
warrior.MultiplyMeleeSpeed(sim, 1.2)
warrior.MultiplyMeleeSpeed(sim, 1.3)
warrior.AddDamageDealtRageBonus(1)
},
OnExpire: func(aura *core.Aura, sim *core.Simulation) {
warrior.MultiplyMeleeSpeed(sim, 1/1.2)
warrior.MultiplyMeleeSpeed(sim, 1/1.3)
warrior.AddDamageDealtRageBonus(-1)
},
})

Expand All @@ -151,7 +154,9 @@ func (warrior *Warrior) applyFrenziedAssault() {
return
}

buffAura.Activate(sim)
if !buffAura.IsActive() {
buffAura.Activate(sim)
}
},
})
},
Expand Down Expand Up @@ -325,10 +330,6 @@ func (warrior *Warrior) applyFreshMeat() {
return
}

hasBloodthirstTalent := warrior.Talents.Bloodthirst

damagedUnits := make(map[int32]bool)

warrior.FreshMeatEnrageAura = warrior.RegisterAura(core.Aura{
ActionID: core.ActionID{SpellID: 14201},
Label: "Enrage (Fresh Meat)",
Expand All @@ -341,6 +342,9 @@ func (warrior *Warrior) applyFreshMeat() {
},
})

var damagedUnits map[int32]bool
affectedSpellCodes := []int32{SpellCode_WarriorBloodthirst, SpellCode_WarriorMortalStrike, SpellCode_WarriorShieldSlam}

warrior.RegisterAura(core.Aura{
Label: "Fresh Meat Trigger",
Duration: core.NeverExpires,
Expand All @@ -349,7 +353,7 @@ func (warrior *Warrior) applyFreshMeat() {
aura.Activate(sim)
},
OnSpellHitDealt: func(aura *core.Aura, sim *core.Simulation, spell *core.Spell, result *core.SpellResult) {
if !hasBloodthirstTalent || spell.SpellCode != SpellCode_WarriorBloodthirst {
if !slices.Contains(affectedSpellCodes, spell.SpellCode) {
return
}

Expand Down
8 changes: 7 additions & 1 deletion sim/warrior/sunder_armor.go
Original file line number Diff line number Diff line change
Expand Up @@ -36,18 +36,24 @@ func (warrior *Warrior) registerSunderArmorSpell() *WarriorSpell {

CritDamageBonus: warrior.impale(),
DamageMultiplier: 1.5,

ThreatMultiplier: 1,

ExtraCastCondition: func(sim *core.Simulation, target *core.Unit) bool {
return warrior.PseudoStats.CanBlock
},

ApplyEffects: func(sim *core.Simulation, target *core.Unit, spell *core.Spell) {
threatMultiplier := 1.0
if warrior.Stance == DefensiveStance {
threatMultiplier = 1.50
}
spell.ThreatMultiplier *= threatMultiplier

weapon := warrior.AutoAttacks.MH()
baseDamage := weapon.CalculateAverageWeaponDamage(spell.MeleeAttackPower()) / weapon.SwingSpeed
multiplier := 1 + 0.1*float64(effectiveStacks)
spell.CalcAndDealDamage(sim, target, baseDamage*multiplier, spell.OutcomeMeleeSpecialCritOnly)
spell.ThreatMultiplier /= threatMultiplier
},
})
}
Expand Down
Loading

0 comments on commit e488ef1

Please sign in to comment.