Documentation ¶
Index ¶
- Constants
- Variables
- type APLValueCurrentHolyPower
- type AncientGuardianPet
- type HolyPowerBar
- type Paladin
- func (paladin *Paladin) ActivateRighteousFury()
- func (paladin *Paladin) AddPartyBuffs(_ *proto.PartyBuffs)
- func (paladin *Paladin) AddRaidBuffs(raidBuffs *proto.RaidBuffs)
- func (paladin *Paladin) ApplyTalents()
- func (paladin *Paladin) BuilderCooldown() *core.Timer
- func (paladin *Paladin) CurrentHolyPower() int32
- func (paladin *Paladin) GetCharacter() *core.Character
- func (paladin *Paladin) GetHolyPowerValue() int32
- func (paladin *Paladin) GetPaladin() *Paladin
- func (paladin *Paladin) HasHolyPowerBar() bool
- func (paladin *Paladin) HasMajorGlyph(glyph proto.PaladinMajorGlyph) bool
- func (paladin *Paladin) HasMinorGlyph(glyph proto.PaladinMinorGlyph) bool
- func (paladin *Paladin) HasPrimeGlyph(glyph proto.PaladinPrimeGlyph) bool
- func (paladin *Paladin) Initialize()
- func (paladin *Paladin) NewAPLValue(rot *core.APLRotation, config *proto.APLValue) core.APLValue
- func (paladin *Paladin) NewAncientGuardian() *AncientGuardianPet
- func (unit *Paladin) NewHolyPowerMetrics(actionID core.ActionID) *core.ResourceMetrics
- func (paladin *Paladin) Reset(sim *core.Simulation)
- type PaladinAgent
Constants ¶
View Source
const ( SpellFlagSecondaryJudgement = core.SpellFlagAgentReserved1 SpellFlagPrimaryJudgement = core.SpellFlagAgentReserved2 )
View Source
const ( SpellMaskTemplarsVerdict int64 = 1 << iota SpellMaskCrusaderStrike SpellMaskDivineStorm SpellMaskExorcism SpellMaskGlyphOfExorcism SpellMaskHammerOfWrath SpellMaskJudgementBase SpellMaskJudgementOfTruth SpellMaskJudgementOfInsight SpellMaskJudgementOfRighteousness SpellMaskJudgementOfJustice SpellMaskHolyWrath SpellMaskConsecration SpellMaskHammerOfTheRighteousMelee SpellMaskHammerOfTheRighteousAoe SpellMaskAvengersShield SpellMaskDivinePlea SpellMaskDivineProtection SpellMaskAvengingWrath SpellMaskCensure SpellMaskInquisition SpellMaskHandOfLight SpellMaskZealotry SpellMaskGuardianOfAncientKings SpellMaskAncientFury SpellMaskSealsOfCommand SpellMaskShieldOfTheRighteous SpellMaskHolyShield SpellMaskArdentDefender SpellMaskHolyShock SpellMaskWordOfGlory SpellMaskSealOfTruth SpellMaskSealOfInsight SpellMaskSealOfRighteousness SpellMaskSealOfJustice )
View Source
const PetExpertiseScale = 3.25 * core.ExpertisePerQuarterPercentReduction / core.PhysicalHitRatingPerHitPercent // 0.8125
View Source
const SpellMaskBuilder = SpellMaskCrusaderStrike | SpellMaskDivineStorm | SpellMaskHammerOfTheRighteousMelee
View Source
const SpellMaskCanConsumeDivinePurpose = SpellMaskInquisition | SpellMaskTemplarsVerdict
View Source
const SpellMaskCanTriggerAncientPower = SpellMaskCanTriggerSealOfTruth | SpellMaskHolyWrath
View Source
const SpellMaskCanTriggerDivinePurpose = SpellMaskHammerOfWrath | SpellMaskExorcism | SpellMaskJudgement | SpellMaskHolyWrath | SpellMaskTemplarsVerdict | SpellMaskDivineStorm | SpellMaskInquisition
View Source
const SpellMaskCanTriggerSealOfInsight = SpellMaskCanTriggerSealOfJustice
View Source
const SpellMaskCanTriggerSealOfJustice = SpellMaskCrusaderStrike | SpellMaskTemplarsVerdict | SpellMaskHammerOfWrath
View Source
const SpellMaskCanTriggerSealOfRighteousness = SpellMaskCanTriggerSealOfJustice | SpellMaskDivineStorm | SpellMaskHammerOfTheRighteousMelee
View Source
const SpellMaskCanTriggerSealOfTruth = SpellMaskCrusaderStrike | SpellMaskTemplarsVerdict | SpellMaskExorcism | SpellMaskHammerOfWrath | SpellMaskJudgement | SpellMaskHammerOfTheRighteousMelee | SpellMaskShieldOfTheRighteous
View Source
const SpellMaskHammerOfTheRighteous = SpellMaskHammerOfTheRighteousMelee | SpellMaskHammerOfTheRighteousAoe
View Source
const SpellMaskJudgement = SpellMaskJudgementOfTruth | SpellMaskJudgementOfInsight | SpellMaskJudgementOfRighteousness | SpellMaskJudgementOfJustice
View Source
const SpellMaskModifiedByTwoHandedSpec = SpellMaskJudgement | SpellMaskSealOfTruth | SpellMaskSealsOfCommand | SpellMaskHammerOfWrath
View Source
const SpellMaskModifiedByZealOfTheCrusader = SpellMaskTemplarsVerdict | SpellMaskCrusaderStrike | SpellMaskDivineStorm | SpellMaskExorcism | SpellMaskGlyphOfExorcism | SpellMaskHammerOfWrath | SpellMaskJudgementOfTruth | SpellMaskJudgementOfRighteousness | SpellMaskHolyWrath | SpellMaskConsecration | SpellMaskHammerOfTheRighteousMelee | SpellMaskHammerOfTheRighteousAoe | SpellMaskAvengersShield | SpellMaskCensure | SpellMaskSealsOfCommand | SpellMaskHolyShock | SpellMaskSealOfTruth | SpellMaskSealOfRighteousness | SpellMaskSealOfJustice
Variables ¶
View Source
var ItemSetArmorOfRadiantGlory = core.NewItemSet(core.ItemSet{ Name: "Armor of Radiant Glory", Bonuses: map[int32]core.ApplyEffect{ 2: func(agent core.Agent) { paladin := agent.(PaladinAgent).GetPaladin() actionID := core.ActionID{SpellID: 105801} duration := time.Second * 6 shieldStrength := 0.0 shield := paladin.NewDamageAbsorptionAura("Delayed Judgement", actionID, duration, func(unit *core.Unit) float64 { return shieldStrength }) core.MakeProcTriggerAura(&paladin.Unit, core.ProcTrigger{ Name: "Delayed Judgement Proc", Callback: core.CallbackOnSpellHitDealt, ClassSpellMask: SpellMaskJudgement, Outcome: core.OutcomeLanded, ProcChance: 1, Handler: func(sim *core.Simulation, spell *core.Spell, result *core.SpellResult) { shieldStrength = result.Damage * 0.25 if shieldStrength > 1 { shield.Activate(sim) } }, }) }, 4: func(agent core.Agent) { }, }, })
Tier 13 prot
View Source
var ItemSetBattlearmorOfImmolation = core.NewItemSet(core.ItemSet{ Name: "Battlearmor of Immolation", Bonuses: map[int32]core.ApplyEffect{ 2: func(agent core.Agent) { paladin := agent.(PaladinAgent).GetPaladin() procDamage := 0.0 righteousFlames := paladin.RegisterSpell(core.SpellConfig{ ActionID: core.ActionID{SpellID: 53600}.WithTag(3), SpellSchool: core.SpellSchoolFire, ProcMask: core.ProcMaskEmpty, Flags: core.SpellFlagIgnoreModifiers | core.SpellFlagBinary | core.SpellFlagNoOnCastComplete | core.SpellFlagNoOnDamageDealt, DamageMultiplier: 1, ThreatMultiplier: 1, ApplyEffects: func(sim *core.Simulation, target *core.Unit, spell *core.Spell) { spell.CalcAndDealDamage(sim, target, procDamage, spell.OutcomeAlwaysHit) }, }) core.MakeProcTriggerAura(&paladin.Unit, core.ProcTrigger{ Name: "Righteous Flames", Callback: core.CallbackOnSpellHitDealt, ClassSpellMask: SpellMaskShieldOfTheRighteous, Outcome: core.OutcomeLanded, ProcChance: 1, Handler: func(sim *core.Simulation, spell *core.Spell, result *core.SpellResult) { procDamage = result.Damage * 0.2 righteousFlames.Cast(sim, result.Target) }, }) }, 4: func(agent core.Agent) { paladin := agent.(PaladinAgent).GetPaladin() flamingAegis := paladin.GetOrRegisterAura(core.Aura{ Label: "Flaming Aegis", ActionID: core.ActionID{SpellID: 99090}, Duration: time.Second * 10, OnGain: func(aura *core.Aura, sim *core.Simulation) { paladin.PseudoStats.BaseParryChance += 0.12 }, OnExpire: func(aura *core.Aura, sim *core.Simulation) { paladin.PseudoStats.BaseParryChance -= 0.12 }, }) core.MakeProcTriggerAura(&paladin.Unit, core.ProcTrigger{ Name: "T12 4pc trigger", Callback: core.CallbackOnCastComplete, ClassSpellMask: SpellMaskDivineProtection, ProcChance: 1, Handler: func(sim *core.Simulation, spell *core.Spell, result *core.SpellResult) { core.StartDelayedAction(sim, core.DelayedActionOptions{ DoAt: sim.CurrentTime + paladin.DivineProtectionAura.Duration, Priority: core.ActionPriorityLow, OnAction: func(_ *core.Simulation) { flamingAegis.Activate(sim) }, }) }, }) }, }, })
Tier 12 prot
View Source
var ItemSetBattleplateOfImmolation = core.NewItemSet(core.ItemSet{ Name: "Battleplate of Immolation", Bonuses: map[int32]core.ApplyEffect{ 2: func(agent core.Agent) { paladin := agent.(PaladinAgent).GetPaladin() cata.RegisterIgniteEffect(&paladin.Unit, cata.IgniteConfig{ ActionID: core.ActionID{SpellID: 35395}.WithTag(3), DisableCastMetrics: true, DotAuraLabel: "Flames of the Faithful", IncludeAuraDelay: true, ProcTrigger: core.ProcTrigger{ Name: "Flames of the Faithful", Callback: core.CallbackOnSpellHitDealt, ClassSpellMask: SpellMaskCrusaderStrike, Outcome: core.OutcomeLanded, }, DamageCalculator: func(result *core.SpellResult) float64 { return result.Damage * 0.15 }, }) }, 4: func(agent core.Agent) { }, }, })
Tier 12 ret
View Source
var ItemSetBattleplateOfRadiantGlory = core.NewItemSet(core.ItemSet{ Name: "Battleplate of Radiant Glory", Bonuses: map[int32]core.ApplyEffect{ 2: func(agent core.Agent) { paladin := agent.(PaladinAgent).GetPaladin() hpMetrics := paladin.NewHolyPowerMetrics(core.ActionID{SpellID: 105767}) core.MakeProcTriggerAura(&paladin.Unit, core.ProcTrigger{ Name: "T13 2pc trigger", ActionID: core.ActionID{SpellID: 105765}, Callback: core.CallbackOnSpellHitDealt, ClassSpellMask: SpellMaskJudgement, ProcChance: 1, Handler: func(sim *core.Simulation, spell *core.Spell, result *core.SpellResult) { waitTime := time.Millisecond * time.Duration(sim.RollWithLabel(150, 750, "T13 2pc")) core.StartDelayedAction(sim, core.DelayedActionOptions{ DoAt: sim.CurrentTime + waitTime, Priority: core.ActionPriorityRegen, OnAction: func(_ *core.Simulation) { paladin.GainHolyPower(sim, 1, hpMetrics) }, }) }, }) }, 4: func(agent core.Agent) { paladin := agent.(PaladinAgent).GetPaladin() damageMod := paladin.AddDynamicMod(core.SpellModConfig{ Kind: core.SpellMod_DamageDone_Pct, ClassMask: SpellMaskModifiedByZealOfTheCrusader, FloatValue: 0.18, }) zealOfTheCrusader := paladin.RegisterAura(core.Aura{ Label: "Zeal of the Crusader", ActionID: core.ActionID{SpellID: 105819}, Duration: time.Second * 20, OnGain: func(aura *core.Aura, sim *core.Simulation) { damageMod.Activate() }, OnExpire: func(aura *core.Aura, sim *core.Simulation) { damageMod.Deactivate() }, }) core.MakeProcTriggerAura(&paladin.Unit, core.ProcTrigger{ Name: "T13 4pc trigger", ActionID: core.ActionID{SpellID: 105820}, Callback: core.CallbackOnCastComplete, ClassSpellMask: SpellMaskZealotry, ProcChance: 1, Handler: func(sim *core.Simulation, spell *core.Spell, result *core.SpellResult) { zealOfTheCrusader.Activate(sim) }, }) }, }, })
Tier 13 ret
View Source
var ItemSetGladiatorsVindication = core.NewItemSet(core.ItemSet{ ID: 917, Name: "Gladiator's Vindication", Bonuses: map[int32]core.ApplyEffect{ 2: func(agent core.Agent) { paladin := agent.(PaladinAgent).GetPaladin() paladin.AddStat(stats.Strength, 70) }, 4: func(agent core.Agent) { paladin := agent.(PaladinAgent).GetPaladin() paladin.AddStat(stats.Strength, 90) paladin.AddStaticMod(core.SpellModConfig{ Kind: core.SpellMod_Cooldown_Flat, ClassMask: SpellMaskJudgementBase, TimeValue: -1 * time.Second, }) }, }, })
PvP set
View Source
var ItemSetReinforcedSapphiriumBattlearmor = core.NewItemSet(core.ItemSet{ Name: "Reinforced Sapphirium Battlearmor", Bonuses: map[int32]core.ApplyEffect{ 2: func(agent core.Agent) { paladin := agent.(PaladinAgent).GetPaladin() paladin.AddStaticMod(core.SpellModConfig{ Kind: core.SpellMod_DamageDone_Flat, ClassMask: SpellMaskCrusaderStrike, FloatValue: 0.1, }) }, 4: func(agent core.Agent) { }, }, })
Tier 11 prot
View Source
var ItemSetReinforcedSapphiriumBattleplate = core.NewItemSet(core.ItemSet{ Name: "Reinforced Sapphirium Battleplate", Bonuses: map[int32]core.ApplyEffect{ 2: func(agent core.Agent) { paladin := agent.(PaladinAgent).GetPaladin() paladin.AddStaticMod(core.SpellModConfig{ Kind: core.SpellMod_DamageDone_Flat, ClassMask: SpellMaskTemplarsVerdict, FloatValue: 0.1, }) }, 4: func(agent core.Agent) { }, }, })
Tier 11 ret
View Source
var TalentTreeSizes = [3]int{20, 20, 20}
Functions ¶
This section is empty.
Types ¶
type APLValueCurrentHolyPower ¶ added in v0.0.2
type APLValueCurrentHolyPower struct { core.DefaultAPLValueImpl // contains filtered or unexported fields }
func (*APLValueCurrentHolyPower) GetInt ¶ added in v0.0.2
func (value *APLValueCurrentHolyPower) GetInt(sim *core.Simulation) int32
func (*APLValueCurrentHolyPower) String ¶ added in v0.0.2
func (value *APLValueCurrentHolyPower) String() string
func (*APLValueCurrentHolyPower) Type ¶ added in v0.0.2
func (value *APLValueCurrentHolyPower) Type() proto.APLValueType
type AncientGuardianPet ¶ added in v0.0.18
func (*AncientGuardianPet) ExecuteCustomRotation ¶ added in v0.0.18
func (ancientGuardian *AncientGuardianPet) ExecuteCustomRotation(sim *core.Simulation)
func (*AncientGuardianPet) GetPet ¶ added in v0.0.18
func (ancientGuardian *AncientGuardianPet) GetPet() *core.Pet
func (*AncientGuardianPet) Initialize ¶ added in v0.0.18
func (guardian *AncientGuardianPet) Initialize()
func (*AncientGuardianPet) Reset ¶ added in v0.0.18
func (ancientGuardian *AncientGuardianPet) Reset(_ *core.Simulation)
type HolyPowerBar ¶ added in v0.0.2
type HolyPowerBar struct {
// contains filtered or unexported fields
}
func (*HolyPowerBar) GainHolyPower ¶ added in v0.0.2
func (pb *HolyPowerBar) GainHolyPower(sim *core.Simulation, amountToAdd int32, metrics *core.ResourceMetrics)
func (*HolyPowerBar) Reset ¶ added in v0.0.2
func (pb *HolyPowerBar) Reset()
func (*HolyPowerBar) SpendHolyPower ¶ added in v0.0.2
func (pb *HolyPowerBar) SpendHolyPower(sim *core.Simulation, metrics *core.ResourceMetrics)
type Paladin ¶
type Paladin struct { core.Character HolyPowerBar PaladinAura proto.PaladinAura Seal proto.PaladinSeal Talents *proto.PaladinTalents CurrentSeal *core.Aura CurrentJudgement *core.Spell SnapshotGuardian bool // Pets AncientGuardian *AncientGuardianPet DivinePlea *core.Spell DivineStorm *core.Spell HolyWrath *core.Spell Consecration *core.Spell CrusaderStrike *core.Spell Exorcism *core.Spell HolyShield *core.Spell HammerOfTheRighteous *core.Spell HandOfReckoning *core.Spell ShieldOfRighteousness *core.Spell AvengersShield *core.Spell HammerOfWrath *core.Spell AvengingWrath *core.Spell DivineProtection *core.Spell TemplarsVerdict *core.Spell Zealotry *core.Spell Inquisition *core.Spell HandOfLight *core.Spell JudgementOfTruth *core.Spell JudgementOfInsight *core.Spell JudgementOfRighteousness *core.Spell JudgementOfJustice *core.Spell ShieldOfTheRighteous *core.Spell HolyShieldAura *core.Aura RighteousFuryAura *core.Aura DivinePleaAura *core.Aura SealOfTruthAura *core.Aura SealOfInsightAura *core.Aura SealOfRighteousnessAura *core.Aura SealOfJusticeAura *core.Aura AvengingWrathAura *core.Aura DivineProtectionAura *core.Aura ZealotryAura *core.Aura InquisitionAura *core.Aura DivinePurposeAura *core.Aura JudgementsOfThePureAura *core.Aura GrandCrusaderAura *core.Aura SacredDutyAura *core.Aura // contains filtered or unexported fields }
func NewPaladin ¶
func (*Paladin) ActivateRighteousFury ¶ added in v0.0.31
func (paladin *Paladin) ActivateRighteousFury()
func (*Paladin) AddPartyBuffs ¶
func (paladin *Paladin) AddPartyBuffs(_ *proto.PartyBuffs)
func (*Paladin) AddRaidBuffs ¶
func (*Paladin) ApplyTalents ¶
func (paladin *Paladin) ApplyTalents()
func (*Paladin) BuilderCooldown ¶ added in v0.0.49
Shared cooldown for builders
func (*Paladin) CurrentHolyPower ¶ added in v0.0.2
CurrentHolyPower returns the actual amount of holy power the paladin has, not counting the Divine Purpose proc.
func (*Paladin) GetCharacter ¶
func (*Paladin) GetHolyPowerValue ¶ added in v0.0.9
GetHolyPowerValue returns the amount of holy power used for calculating the damage done by Templar's Verdict and duration of Inquisition.
func (*Paladin) GetPaladin ¶
func (*Paladin) HasHolyPowerBar ¶ added in v0.0.2
func (*Paladin) HasMajorGlyph ¶
func (paladin *Paladin) HasMajorGlyph(glyph proto.PaladinMajorGlyph) bool
func (*Paladin) HasMinorGlyph ¶
func (paladin *Paladin) HasMinorGlyph(glyph proto.PaladinMinorGlyph) bool
func (*Paladin) HasPrimeGlyph ¶ added in v0.0.2
func (paladin *Paladin) HasPrimeGlyph(glyph proto.PaladinPrimeGlyph) bool
func (*Paladin) Initialize ¶
func (paladin *Paladin) Initialize()
func (*Paladin) NewAPLValue ¶ added in v0.0.2
func (*Paladin) NewAncientGuardian ¶ added in v0.0.18
func (paladin *Paladin) NewAncientGuardian() *AncientGuardianPet
func (*Paladin) NewHolyPowerMetrics ¶ added in v0.0.2
func (unit *Paladin) NewHolyPowerMetrics(actionID core.ActionID) *core.ResourceMetrics
func (*Paladin) Reset ¶
func (paladin *Paladin) Reset(sim *core.Simulation)
type PaladinAgent ¶
type PaladinAgent interface {
GetPaladin() *Paladin
}
Implemented by each Paladin spec.
Source Files ¶
- ancient_guardian_pet.go
- apl_values.go
- avenging_wrath.go
- consecration.go
- crusader_strike.go
- divine_plea.go
- divine_protection.go
- exorcism.go
- glyphs.go
- guardian_of_ancient_kings.go
- hammer_of_wrath.go
- holy_power.go
- holy_wrath.go
- inquisition.go
- items.go
- judgement.go
- paladin.go
- righteous_fury.go
- seal_of_insight.go
- seal_of_justice.go
- seal_of_righteousness.go
- seal_of_truth.go
- talents.go
- talents_holy.go
- talents_protection.go
- talents_retribution.go
Click to show internal directories.
Click to hide internal directories.