Skip to content
Open
Show file tree
Hide file tree
Changes from 7 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
3 changes: 3 additions & 0 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 0 additions & 3 deletions proto/paladin.proto
Original file line number Diff line number Diff line change
Expand Up @@ -80,15 +80,12 @@ enum PaladinSeal {
NoSeal = 0;
Righteousness = 1;
Command = 2;
Martyrdom = 3;
}

message PaladinOptions {
PaladinSeal primarySeal = 1;
PaladinAura aura = 2;
bool IsUsingDivineStormStopAttack = 4;
bool IsUsingJudgementStopAttack = 5;
bool IsUsingCrusaderStrikeStopAttack = 6;

bool righteousFury = 8;
Blessings personalBlessing = 9;
Expand Down
4 changes: 2 additions & 2 deletions sim/common/item_sets/dungeon_set_1.go
Original file line number Diff line number Diff line change
Expand Up @@ -152,7 +152,7 @@ var ItemSetLightforgeArmor = core.NewItemSet(core.ItemSet{
c := agent.GetCharacter()
actionID := core.ActionID{SpellID: 27498}

procAura := c.NewTemporaryStatsAura("Crusader's Wrath", core.ActionID{SpellID: 27498}, stats.Stats{stats.SpellPower: 95}, time.Second*10)
procAura := c.NewTemporaryStatsAura("Crusader's Wrath", actionID, stats.Stats{stats.SpellPower: 95}, time.Second*10)
handler := func(sim *core.Simulation, spell *core.Spell, _ *core.SpellResult) {
procAura.Activate(sim)
}
Expand All @@ -163,7 +163,7 @@ var ItemSetLightforgeArmor = core.NewItemSet(core.ItemSet{
Callback: core.CallbackOnSpellHitDealt,
Outcome: core.OutcomeLanded,
ProcMask: core.ProcMaskMeleeWhiteHit,
ProcChance: 0.06, //Unsure if this is the classic or SoD proc rate.
PPM: 3, //6% is the sod proc rate, best data I could find online says 3 ppm
Comment thread
DaveAlessi marked this conversation as resolved.
Handler: handler,
})
},
Expand Down
47 changes: 0 additions & 47 deletions sim/paladin/avenging_wrath.go

This file was deleted.

23 changes: 10 additions & 13 deletions sim/paladin/exorcism.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,12 +17,12 @@ func (paladin *Paladin) registerExorcism() {
maxDamage float64
scale float64
}{
{level: 20, spellID: 415068, manaCost: 85, scaleLevel: 25, minDamage: 84, maxDamage: 96, scale: 1.2},
{level: 28, spellID: 415069, manaCost: 135, scaleLevel: 33, minDamage: 152, maxDamage: 172, scale: 1.6},
{level: 36, spellID: 415070, manaCost: 180, scaleLevel: 41, minDamage: 217, maxDamage: 245, scale: 2.0},
{level: 44, spellID: 415071, manaCost: 235, scaleLevel: 49, minDamage: 304, maxDamage: 342, scale: 2.4},
{level: 52, spellID: 415072, manaCost: 285, scaleLevel: 57, minDamage: 393, maxDamage: 439, scale: 2.8},
{level: 60, spellID: 415073, manaCost: 345, scaleLevel: 60, minDamage: 505, maxDamage: 563, scale: 3.2},
{level: 20, spellID: 879, manaCost: 85, scaleLevel: 25, minDamage: 84, maxDamage: 96, scale: 1.2},
{level: 28, spellID: 5614, manaCost: 135, scaleLevel: 33, minDamage: 152, maxDamage: 172, scale: 1.6},
{level: 36, spellID: 5615, manaCost: 180, scaleLevel: 41, minDamage: 217, maxDamage: 245, scale: 2.0},
{level: 44, spellID: 10312, manaCost: 235, scaleLevel: 49, minDamage: 304, maxDamage: 342, scale: 2.4},
{level: 52, spellID: 10313, manaCost: 285, scaleLevel: 57, minDamage: 393, maxDamage: 439, scale: 2.8},
{level: 60, spellID: 10314, manaCost: 345, scaleLevel: 60, minDamage: 505, maxDamage: 563, scale: 3.2},
}

for i, rank := range ranks {
Expand Down Expand Up @@ -64,15 +64,12 @@ func (paladin *Paladin) registerExorcism() {

BonusCoefficient: 0.429,

ApplyEffects: func(sim *core.Simulation, target *core.Unit, spell *core.Spell) {
bonusCrit := 0.0
if target.MobType == proto.MobType_MobTypeDemon || target.MobType == proto.MobType_MobTypeUndead {
bonusCrit += 100 * core.CritRatingPerCritChance
}
ExtraCastCondition: func(sim *core.Simulation, target *core.Unit) bool {
return target.MobType == proto.MobType_MobTypeDemon || target.MobType == proto.MobType_MobTypeUndead
},

spell.BonusCritRating += bonusCrit
ApplyEffects: func(sim *core.Simulation, target *core.Unit, spell *core.Spell) {
spell.CalcAndDealDamage(sim, target, sim.Roll(minDamage, maxDamage), spell.OutcomeMagicHitAndCrit)
spell.BonusCritRating -= bonusCrit
},
})

Expand Down
38 changes: 33 additions & 5 deletions sim/paladin/item_sets_pve.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ import (
// Classic Phase 1 Item Sets - Molten Core
///////////////////////////////////////////////////////////////////////////

var ItemSetVestmentsOfProphecy = core.NewItemSet(core.ItemSet{
var ItemSetLawbringerArmor = core.NewItemSet(core.ItemSet{
Name: "Lawbringer Armor",
Bonuses: map[int32]core.ApplyEffect{
// Increases the chance of triggering a Judgement of Light heal by 10%.
Expand All @@ -36,7 +36,7 @@ var ItemSetVestmentsOfProphecy = core.NewItemSet(core.ItemSet{
// Classic Phase 3 Item Sets - BWL
///////////////////////////////////////////////////////////////////////////

var ItemSetSoulforgeArmor = core.NewItemSet(core.ItemSet{
var ItemSetJudgementArmor = core.NewItemSet(core.ItemSet{
Name: "Judgement Armor",
Bonuses: map[int32]core.ApplyEffect{
// Increases the radius of a Paladin's auras by 10.
Expand Down Expand Up @@ -69,7 +69,7 @@ var ItemSetSoulforgeArmor = core.NewItemSet(core.ItemSet{
// Classic Phase 4 Item Sets - ZG and AB
///////////////////////////////////////////////////////////////////////////

var ItemSetConfessorsRaiment = core.NewItemSet(core.ItemSet{
var ItemSetFreethinkersArmor = core.NewItemSet(core.ItemSet{
Name: "Freethinker's Armor",
Bonuses: map[int32]core.ApplyEffect{
// Restores 4 mana per 5 sec.
Expand All @@ -92,7 +92,7 @@ var ItemSetConfessorsRaiment = core.NewItemSet(core.ItemSet{
// Classic Phase 5 Item Sets - AQ
///////////////////////////////////////////////////////////////////////////

var ItemSetGarmentsOfTheOracle = core.NewItemSet(core.ItemSet{
var ItemSetAvengersBattlegear = core.NewItemSet(core.ItemSet{
Name: "Avenger's Battlegear",
Bonuses: map[int32]core.ApplyEffect{
// Increases the duration of your Judgements by 20%.
Expand All @@ -107,11 +107,39 @@ var ItemSetGarmentsOfTheOracle = core.NewItemSet(core.ItemSet{
},
})

var ItemSetBattlegearOfEternalJustice = core.NewItemSet(core.ItemSet{
Name: "Battlegear of Eternal Justice",
Bonuses: map[int32]core.ApplyEffect{
// 20% chance to regain 100 mana when you cast a Judgement.
3: func(agent core.Agent) {
paladin := agent.(PaladinAgent).GetPaladin()

manaMetrics := paladin.NewManaMetrics(core.ActionID{SpellID: 0})

spellCodes := []int32{
SpellCode_PaladinJudgementOfCommand,
SpellCode_PaladinJudgementOfRighteousness,
}

paladin.RegisterAura(core.Aura{
Comment thread
kayla-glick marked this conversation as resolved.
Outdated
Label: "Battlegear of Eternal Justice 3 pc",
OnCastComplete: func(aura *core.Aura, sim *core.Simulation, spell *core.Spell) {
if slices.Contains(spellCodes, spell.SpellCode) {
if sim.Proc(0.20, "Battlegear of Eternal Justice 3 pc") {
paladin.AddMana(sim, 100, manaMetrics)
}
}
},
})
},
},
})

///////////////////////////////////////////////////////////////////////////
// Classic Phase 6 Item Sets - Naxx
///////////////////////////////////////////////////////////////////////////

var ItemSetVestmentsOfFaith = core.NewItemSet(core.ItemSet{
var ItemSetRedemptionArmor = core.NewItemSet(core.ItemSet{
Name: "Redemption Armor",
Bonuses: map[int32]core.ApplyEffect{
// Increases the amount healed by your Judgement of Light by 20.
Expand Down
1 change: 0 additions & 1 deletion sim/paladin/paladin.go
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,6 @@ func (paladin *Paladin) Initialize() {
paladin.registerDivineFavor()
paladin.registerHammerOfWrath()
paladin.registerHolyWrath()
paladin.registerAvengingWrath()
paladin.registerHolyShield()
paladin.registerBlessingOfSanctuary()
paladin.registerLayOnHands()
Expand Down
Loading