Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Hunter updates #423

Merged
merged 1 commit into from
Mar 19, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 17 additions & 0 deletions sim/common/vanilla/melee_items.go
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,23 @@ func init() {

itemhelpers.CreateWeaponProcDamage(2164, "Gut Ripper", 1.0, 18107, core.SpellSchoolPhysical, 95, 26, 0, core.DefenseTypeMelee)

itemhelpers.CreateWeaponProcSpell(2825, "Bow of Searing Arrows", 3.35, func(character *core.Character) *core.Spell {
return character.RegisterSpell(core.SpellConfig{
ActionID: core.ActionID{SpellID: 29638},
SpellSchool: core.SpellSchoolFire,
ProcMask: core.ProcMaskEmpty,

DamageMultiplier: 1,
CritMultiplier: character.DefaultMeleeCritMultiplier(),
ThreatMultiplier: 1,

ApplyEffects: func(sim *core.Simulation, target *core.Unit, spell *core.Spell) {
dmg := sim.Roll(18, 26)
spell.CalcAndDealDamage(sim, target, dmg, spell.OutcomeRangedCritOnly)
},
})
})

itemhelpers.CreateWeaponProcAura(7717, "Ravager", 1.0, func(character *core.Character) *core.Aura {
tickActionID := core.ActionID{SpellID: 9633}
procActionID := core.ActionID{SpellID: 9632}
Expand Down
3 changes: 3 additions & 0 deletions sim/core/character.go
Original file line number Diff line number Diff line change
Expand Up @@ -595,6 +595,9 @@ func (character *Character) getProcMaskFor(pred func(weapon *Item) bool) ProcMas
if pred(character.OffHand()) {
mask |= ProcMaskMeleeOH
}
if pred(character.Ranged()) {
mask |= ProcMaskRanged
}
return mask
}

Expand Down
48 changes: 24 additions & 24 deletions sim/hunter/TestBM.results
Original file line number Diff line number Diff line change
Expand Up @@ -617,43 +617,43 @@ dps_results: {
dps_results: {
key: "TestBM-Lvl40-Settings-NightElf-p2_ranged_bm-Basic-p2_ranged_bm-FullBuffs-Phase 2 Consumes-LongMultiTarget"
value: {
dps: 737.30022
tps: 818.99644
dps: 734.34878
tps: 837.09641
}
}
dps_results: {
key: "TestBM-Lvl40-Settings-NightElf-p2_ranged_bm-Basic-p2_ranged_bm-FullBuffs-Phase 2 Consumes-LongSingleTarget"
value: {
dps: 664.28096
tps: 412.87287
dps: 655.71546
tps: 409.36756
}
}
dps_results: {
key: "TestBM-Lvl40-Settings-NightElf-p2_ranged_bm-Basic-p2_ranged_bm-FullBuffs-Phase 2 Consumes-ShortSingleTarget"
value: {
dps: 717.27406
tps: 444.4757
dps: 715.47823
tps: 442.93236
}
}
dps_results: {
key: "TestBM-Lvl40-Settings-NightElf-p2_ranged_bm-Basic-p2_ranged_bm-NoBuffs-Phase 2 Consumes-LongMultiTarget"
value: {
dps: 395.56711
tps: 657.12469
dps: 394.57831
tps: 656.35655
}
}
dps_results: {
key: "TestBM-Lvl40-Settings-NightElf-p2_ranged_bm-Basic-p2_ranged_bm-NoBuffs-Phase 2 Consumes-LongSingleTarget"
value: {
dps: 348.79212
tps: 256.52152
dps: 347.77883
tps: 255.78046
}
}
dps_results: {
key: "TestBM-Lvl40-Settings-NightElf-p2_ranged_bm-Basic-p2_ranged_bm-NoBuffs-Phase 2 Consumes-ShortSingleTarget"
value: {
dps: 372.46818
tps: 274.57294
dps: 371.53495
tps: 273.87494
}
}
dps_results: {
Expand Down Expand Up @@ -785,43 +785,43 @@ dps_results: {
dps_results: {
key: "TestBM-Lvl40-Settings-Orc-p2_ranged_bm-Basic-p2_ranged_bm-FullBuffs-Phase 2 Consumes-LongMultiTarget"
value: {
dps: 741.75854
tps: 815.98875
dps: 736.00172
tps: 833.83943
}
}
dps_results: {
key: "TestBM-Lvl40-Settings-Orc-p2_ranged_bm-Basic-p2_ranged_bm-FullBuffs-Phase 2 Consumes-LongSingleTarget"
value: {
dps: 669.34349
tps: 407.31573
dps: 663.058
tps: 403.94554
}
}
dps_results: {
key: "TestBM-Lvl40-Settings-Orc-p2_ranged_bm-Basic-p2_ranged_bm-FullBuffs-Phase 2 Consumes-ShortSingleTarget"
value: {
dps: 723.59187
tps: 439.67616
dps: 721.82657
tps: 437.96468
}
}
dps_results: {
key: "TestBM-Lvl40-Settings-Orc-p2_ranged_bm-Basic-p2_ranged_bm-NoBuffs-Phase 2 Consumes-LongMultiTarget"
value: {
dps: 395.38531
tps: 654.03544
dps: 394.20681
tps: 653.12811
}
}
dps_results: {
key: "TestBM-Lvl40-Settings-Orc-p2_ranged_bm-Basic-p2_ranged_bm-NoBuffs-Phase 2 Consumes-LongSingleTarget"
value: {
dps: 349.59093
tps: 252.11944
dps: 348.71191
tps: 251.48436
}
}
dps_results: {
key: "TestBM-Lvl40-Settings-Orc-p2_ranged_bm-Basic-p2_ranged_bm-NoBuffs-Phase 2 Consumes-ShortSingleTarget"
value: {
dps: 372.78039
tps: 270.21387
dps: 371.91336
tps: 269.57967
}
}
dps_results: {
Expand Down
48 changes: 24 additions & 24 deletions sim/hunter/TestMM.results
Original file line number Diff line number Diff line change
Expand Up @@ -498,85 +498,85 @@ dps_results: {
dps_results: {
key: "TestMM-Lvl40-Settings-Dwarf-p2_ranged_mm-Basic-p2_ranged_mm-FullBuffs-Phase 2 Consumes-LongMultiTarget"
value: {
dps: 697.3848
tps: 873.63901
dps: 689.45878
tps: 879.45198
}
}
dps_results: {
key: "TestMM-Lvl40-Settings-Dwarf-p2_ranged_mm-Basic-p2_ranged_mm-FullBuffs-Phase 2 Consumes-LongSingleTarget"
value: {
dps: 610.16547
tps: 484.80605
dps: 598.59442
tps: 474.65025
}
}
dps_results: {
key: "TestMM-Lvl40-Settings-Dwarf-p2_ranged_mm-Basic-p2_ranged_mm-FullBuffs-Phase 2 Consumes-ShortSingleTarget"
value: {
dps: 622.73185
tps: 497.43705
dps: 619.10965
tps: 492.75967
}
}
dps_results: {
key: "TestMM-Lvl40-Settings-Dwarf-p2_ranged_mm-Basic-p2_ranged_mm-NoBuffs-Phase 2 Consumes-LongMultiTarget"
value: {
dps: 399.04925
tps: 642.1439
dps: 396.78369
tps: 640.03294
}
}
dps_results: {
key: "TestMM-Lvl40-Settings-Dwarf-p2_ranged_mm-Basic-p2_ranged_mm-NoBuffs-Phase 2 Consumes-LongSingleTarget"
value: {
dps: 340.4456
tps: 291.07905
dps: 338.40062
tps: 289.20843
}
}
dps_results: {
key: "TestMM-Lvl40-Settings-Dwarf-p2_ranged_mm-Basic-p2_ranged_mm-NoBuffs-Phase 2 Consumes-ShortSingleTarget"
value: {
dps: 367.5266
tps: 310.11104
dps: 365.86359
tps: 308.54696
}
}
dps_results: {
key: "TestMM-Lvl40-Settings-Orc-p2_ranged_mm-Basic-p2_ranged_mm-FullBuffs-Phase 2 Consumes-LongMultiTarget"
value: {
dps: 701.53678
tps: 873.0915
dps: 694.13934
tps: 877.51405
}
}
dps_results: {
key: "TestMM-Lvl40-Settings-Orc-p2_ranged_mm-Basic-p2_ranged_mm-FullBuffs-Phase 2 Consumes-LongSingleTarget"
value: {
dps: 615.401
tps: 482.25429
dps: 607.3839
tps: 475.95786
}
}
dps_results: {
key: "TestMM-Lvl40-Settings-Orc-p2_ranged_mm-Basic-p2_ranged_mm-FullBuffs-Phase 2 Consumes-ShortSingleTarget"
value: {
dps: 631.5846
tps: 497.68516
dps: 627.90331
tps: 492.9873
}
}
dps_results: {
key: "TestMM-Lvl40-Settings-Orc-p2_ranged_mm-Basic-p2_ranged_mm-NoBuffs-Phase 2 Consumes-LongMultiTarget"
value: {
dps: 401.61719
tps: 642.9635
dps: 399.14662
tps: 640.69253
}
}
dps_results: {
key: "TestMM-Lvl40-Settings-Orc-p2_ranged_mm-Basic-p2_ranged_mm-NoBuffs-Phase 2 Consumes-LongSingleTarget"
value: {
dps: 343.29271
tps: 290.79465
dps: 341.27469
tps: 288.95059
}
}
dps_results: {
key: "TestMM-Lvl40-Settings-Orc-p2_ranged_mm-Basic-p2_ranged_mm-NoBuffs-Phase 2 Consumes-ShortSingleTarget"
value: {
dps: 370.72175
tps: 309.48301
dps: 368.93282
tps: 307.80831
}
}
dps_results: {
Expand Down
8 changes: 8 additions & 0 deletions sim/hunter/runes.go
Original file line number Diff line number Diff line change
Expand Up @@ -125,13 +125,21 @@ func (hunter *Hunter) applySniperTraining() {
if spell.ProcMask.Matches(core.ProcMaskRangedSpecial) {
spell.BonusCritRating += 10 * core.CritRatingPerCritChance
}
// Chimera - Serpent double dips this bonus and has ProcMaskEmpty so just add 20 here
if spell.ActionID.SpellID == 409493 {
spell.BonusCritRating += 20 * core.CritRatingPerCritChance
}
}
},
OnExpire: func(aura *core.Aura, sim *core.Simulation) {
for _, spell := range aura.Unit.Spellbook {
if spell.ProcMask.Matches(core.ProcMaskRangedSpecial) {
spell.BonusCritRating -= 10 * core.CritRatingPerCritChance
}
// Chimera - Serpent double dips this bonus and has ProcMaskEmpty so just remove 20 here
if spell.ActionID.SpellID == 409493 {
spell.BonusCritRating -= 20 * core.CritRatingPerCritChance
}
}
},
})
Expand Down
7 changes: 3 additions & 4 deletions sim/hunter/serpent_sting.go
Original file line number Diff line number Diff line change
Expand Up @@ -86,9 +86,10 @@ func (hunter *Hunter) chimeraShotSerpentStingSpell() *core.Spell {
return hunter.RegisterSpell(core.SpellConfig{
ActionID: core.ActionID{SpellID: 409493},
SpellSchool: core.SpellSchoolNature,
ProcMask: core.ProcMaskRangedSpecial,
ProcMask: core.ProcMaskEmpty,
Flags: core.SpellFlagMeleeMetrics,

BonusCritRating: 1 * float64(hunter.Talents.LethalShots) * core.CritRatingPerCritChance, // This is added manually here because spell uses ProcMaskEmpty
DamageMultiplierAdditive: 1 + 0.02*float64(hunter.Talents.ImprovedSerpentSting),
DamageMultiplier: 1,
CritMultiplier: hunter.critMultiplier(true, hunter.CurrentTarget),
Expand All @@ -101,10 +102,8 @@ func (hunter *Hunter) chimeraShotSerpentStingSpell() *core.Spell {
})
}

const SERPENT_STING_MAX_RANK = 9

func (hunter *Hunter) registerSerpentStingSpell() {
for i := SERPENT_STING_MAX_RANK; i >= 0; i-- {
for i := 9; i >= 0; i-- {
config := hunter.getSerpentStingConfig(i)

if config.RequiredLevel <= int(hunter.Level) {
Expand Down
Loading