Skip to content

Commit

Permalink
Merge pull request #2970 from wowsims/paladin
Browse files Browse the repository at this point in the history
Paladin re-add SoV dot mask and phantom hit
  • Loading branch information
Watcher7 authored Apr 18, 2023
2 parents 45cd73a + d10ba72 commit a12c824
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 6 deletions.
22 changes: 16 additions & 6 deletions sim/paladin/sov.go
Original file line number Diff line number Diff line change
Expand Up @@ -41,9 +41,9 @@ func (paladin *Paladin) registerSealOfVengeanceSpellAndAura() {
// TODO: Verify whether these bonuses should indeed be additive with similar

dotSpell := paladin.RegisterSpell(core.SpellConfig{
ActionID: core.ActionID{SpellID: 31803},
ActionID: core.ActionID{SpellID: 31803, Tag: 2},
SpellSchool: core.SpellSchoolHoly,
ProcMask: core.ProcMaskEmpty, // Might need to be changed later if SOV secondary rolls can proc other things.
ProcMask: core.ProcMaskSpellDamage,
Flags: core.SpellFlagMeleeMetrics,

DamageMultiplier: 1 *
Expand All @@ -52,7 +52,7 @@ func (paladin *Paladin) registerSealOfVengeanceSpellAndAura() {

Dot: core.DotConfig{
Aura: core.Aura{
Label: "Holy Vengeance",
Label: "Holy Vengeance (DoT)",
MaxStacks: 5,
},
NumberOfTicks: 5,
Expand All @@ -69,13 +69,24 @@ func (paladin *Paladin) registerSealOfVengeanceSpellAndAura() {
dot.CalcAndDealPeriodicSnapshotDamage(sim, target, dot.Spell.OutcomeAlwaysHit)
},
},
})
paladin.SovDotSpell = dotSpell

dotApplicationSpell := paladin.RegisterSpell(core.SpellConfig{
ActionID: core.ActionID{SpellID: 31803, Tag: 1},
SpellSchool: core.SpellSchoolHoly,
ProcMask: core.ProcMaskEmpty, // Might need to be changed later if SOV secondary rolls can proc other things.

DamageMultiplier: 1 *
(1 + paladin.getItemSetLightswornBattlegearBonus4() + paladin.getItemSetAegisPlateBonus2() + paladin.getTalentSealsOfThePureBonus()),
ThreatMultiplier: 1,

ApplyEffects: func(sim *core.Simulation, target *core.Unit, spell *core.Spell) {
// Does no damage, just applies dot and rolls.
result := spell.CalcAndDealOutcome(sim, target, spell.OutcomeMeleeSpecialHit)

if result.Landed() {
dot := spell.Dot(target)
dot := dotSpell.Dot(target)
if !dot.IsActive() {
dot.Apply(sim)
}
Expand All @@ -85,7 +96,6 @@ func (paladin *Paladin) registerSealOfVengeanceSpellAndAura() {
}
},
})
paladin.SovDotSpell = dotSpell

onJudgementProc := paladin.RegisterSpell(core.SpellConfig{
ActionID: core.ActionID{SpellID: 31804}, // Judgement of Vengeance.
Expand Down Expand Up @@ -185,7 +195,7 @@ func (paladin *Paladin) registerSealOfVengeanceSpellAndAura() {

// Only white hits, HotR, CS, and DS can trigger this. (SoV dot)
if spell.ProcMask.Matches(core.ProcMaskMeleeWhiteHit) || spell == paladin.HammerOfTheRighteous || spell == paladin.CrusaderStrike || spell == paladin.DivineStorm {
dotSpell.Cast(sim, result.Target)
dotApplicationSpell.Cast(sim, result.Target)
}
},
})
Expand Down
7 changes: 7 additions & 0 deletions ui/core/proto_utils/action_id.ts
Original file line number Diff line number Diff line change
Expand Up @@ -292,6 +292,13 @@ export class ActionId {
name += ' (DoT)'
}
break;
case 'Holy Vengeance':
if (this.tag == 1) {
name += ' (Application)'
} else if (this.tag == 2) {
name += ' (DoT)'
}
break;
// For targetted buffs, tag is the source player's raid index or -1 if none.
case 'Bloodlust':
case 'Ferocious Inspiration':
Expand Down

0 comments on commit a12c824

Please sign in to comment.