Documentation ¶
Index ¶
- Constants
- Variables
- 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) GetCharacter() *core.Character
- func (paladin *Paladin) GetMutualLockoutDPAW() *core.Timer
- func (paladin *Paladin) GetPaladin() *Paladin
- func (paladin *Paladin) HasMajorGlyph(glyph proto.PaladinMajorGlyph) bool
- func (paladin *Paladin) HasMinorGlyph(glyph proto.PaladinMinorGlyph) bool
- func (paladin *Paladin) Initialize()
- func (paladin *Paladin) MeleeCritMultiplier() float64
- func (paladin *Paladin) RegisterAvengingWrathCD()
- func (paladin *Paladin) Reset(_ *core.Simulation)
- func (paladin *Paladin) SpellCritMultiplier() float64
- func (paladin *Paladin) ToughnessArmorMultiplier() float64
- type PaladinAgent
Constants ¶
View Source
const ( SpellFlagSecondaryJudgement = core.SpellFlagAgentReserved1 SpellFlagPrimaryJudgement = core.SpellFlagAgentReserved2 )
View Source
const SealDuration = time.Minute * 30
Variables ¶
View Source
var ItemSetAegisBattlegear = core.NewItemSet(core.ItemSet{ Name: "Aegis Battlegear", Bonuses: map[int32]core.ApplyEffect{ 2: func(agent core.Agent) { }, 4: func(agent core.Agent) { }, }, })
Tier 8 ret
View Source
var ItemSetAegisPlate = core.NewItemSet(core.ItemSet{ Name: "Aegis Plate", Bonuses: map[int32]core.ApplyEffect{ 2: func(agent core.Agent) { }, 4: func(agent core.Agent) { }, }, })
Tier 8 prot
View Source
var ItemSetCrystalforgeArmor = core.NewItemSet(core.ItemSet{ Name: "Crystalforge Armor", Bonuses: map[int32]core.ApplyEffect{ 2: func(agent core.Agent) { }, 4: func(agent core.Agent) { paladin := agent.(PaladinAgent).GetPaladin() procAura := paladin.RegisterAura(core.Aura{ Label: "Crystalforge 4pc Proc", ActionID: core.ActionID{SpellID: 37191}, Duration: time.Second * 6, OnGain: func(aura *core.Aura, sim *core.Simulation) { paladin.AddStatDynamic(sim, stats.BlockValue, 100) }, OnExpire: func(aura *core.Aura, sim *core.Simulation) { paladin.AddStatDynamic(sim, stats.BlockValue, -100) }, OnSpellHitTaken: func(aura *core.Aura, sim *core.Simulation, spell *core.Spell, spellEffect *core.SpellResult) { if spellEffect.Outcome.Matches(core.OutcomeBlock) { aura.Deactivate(sim) } }, }) paladin.RegisterAura(core.Aura{ Label: "Crystalforge 2pc", Duration: core.NeverExpires, OnReset: func(aura *core.Aura, sim *core.Simulation) { aura.Activate(sim) }, OnCastComplete: func(aura *core.Aura, sim *core.Simulation, spell *core.Spell) { if spell == paladin.HolyShield { procAura.Activate(sim) } }, }) }, }, })
T5 Prot
View Source
var ItemSetCrystalforgeBattlegear = core.NewItemSet(core.ItemSet{ Name: "Crystalforge Battlegear", Bonuses: map[int32]core.ApplyEffect{ 2: func(agent core.Agent) { }, 4: func(agent core.Agent) { }, }, })
T5 Ret
View Source
var ItemSetGladiatorsVindication = core.NewItemSet(core.ItemSet{ Name: "Gladiator's Vindication", Bonuses: map[int32]core.ApplyEffect{ 2: func(agent core.Agent) { paladin := agent.(PaladinAgent).GetPaladin() paladin.AddStat(stats.AttackPower, 50) paladin.AddStat(stats.Resilience, 100) }, 4: func(agent core.Agent) { paladin := agent.(PaladinAgent).GetPaladin() paladin.AddStat(stats.AttackPower, 150) }, }, })
PvP ret
View Source
var ItemSetJusticarArmor = core.NewItemSet(core.ItemSet{ Name: "Justicar Armor", Bonuses: map[int32]core.ApplyEffect{ 2: func(agent core.Agent) { }, 4: func(agent core.Agent) { }, }, })
T4 Prot
View Source
var ItemSetJusticarBattlegear = core.NewItemSet(core.ItemSet{ Name: "Justicar Battlegear", Bonuses: map[int32]core.ApplyEffect{ 2: func(agent core.Agent) { }, 4: func(agent core.Agent) { }, }, })
T4 Ret
View Source
var ItemSetLightbringerArmor = core.NewItemSet(core.ItemSet{ Name: "Lightbringer Armor", Bonuses: map[int32]core.ApplyEffect{ 2: func(agent core.Agent) { }, 4: func(agent core.Agent) { }, }, })
T6 Prot
View Source
var ItemSetLightbringerBattlegear = core.NewItemSet(core.ItemSet{ Name: "Lightbringer Battlegear", Bonuses: map[int32]core.ApplyEffect{ 2: func(agent core.Agent) { paladin := agent.(PaladinAgent).GetPaladin() manaMetrics := paladin.NewManaMetrics(core.ActionID{SpellID: 38428}) paladin.RegisterAura(core.Aura{ Label: "Lightbringer Battlegear 2pc", Duration: core.NeverExpires, OnReset: func(aura *core.Aura, sim *core.Simulation) { aura.Activate(sim) }, OnSpellHitDealt: func(aura *core.Aura, sim *core.Simulation, spell *core.Spell, result *core.SpellResult) { if !spell.ProcMask.Matches(core.ProcMaskMelee) { return } if sim.RandomFloat("lightbringer 2pc") > 0.2 { return } paladin.AddMana(sim, 50, manaMetrics) }, }) }, 4: func(agent core.Agent) { }, }, })
Tier 6 ret
View Source
var ItemSetLightswornBattlegear = core.NewItemSet(core.ItemSet{ Name: "Lightsworn Battlegear", Bonuses: map[int32]core.ApplyEffect{ 2: func(agent core.Agent) { paladin := agent.(PaladinAgent).GetPaladin() procSpell := paladin.RegisterSpell(core.SpellConfig{ ActionID: core.ActionID{SpellID: 70765}, ApplyEffects: func(_ *core.Simulation, _ *core.Unit, _ *core.Spell) { paladin.DivineStorm.CD.Reset() }, }) paladin.RegisterAura(core.Aura{ Label: "Lightsworn Battlegear 2pc", Duration: core.NeverExpires, OnReset: func(aura *core.Aura, sim *core.Simulation) { aura.Activate(sim) }, OnSpellHitDealt: func(aura *core.Aura, sim *core.Simulation, spell *core.Spell, result *core.SpellResult) { if !spell.ProcMask.Matches(core.ProcMaskMeleeWhiteHit) { return } if sim.RandomFloat("lightsworn 2pc") > 0.4 { return } procSpell.Cast(sim, &paladin.Unit) }, }) }, 4: func(agent core.Agent) { }, }, })
Tier 10 ret
View Source
var ItemSetLightswornPlate = core.NewItemSet(core.ItemSet{ Name: "Lightsworn Plate", Bonuses: map[int32]core.ApplyEffect{ 2: func(agent core.Agent) { }, 4: func(agent core.Agent) { }, }, })
Tier 10 prot
View Source
var ItemSetRedemptionBattlegear = core.NewItemSet(core.ItemSet{ Name: "Redemption Battlegear", Bonuses: map[int32]core.ApplyEffect{ 2: func(agent core.Agent) { }, 4: func(agent core.Agent) { }, }, })
Tier 7 ret
View Source
var ItemSetRedemptionPlate = core.NewItemSet(core.ItemSet{ Name: "Redemption Plate", Bonuses: map[int32]core.ApplyEffect{ 2: func(agent core.Agent) { }, 4: func(agent core.Agent) { }, }, })
Tier 7 prot
View Source
var ItemSetTuralyonsBattlegear = core.NewItemSet(core.ItemSet{ Name: "Turalyon's Battlegear", AlternativeName: "Liadrin's Battlegear", Bonuses: map[int32]core.ApplyEffect{ 2: func(agent core.Agent) { }, 4: func(agent core.Agent) { }, }, })
Tier 9 ret (Alliance/Horde)
View Source
var ItemSetTuralyonsPlate = core.NewItemSet(core.ItemSet{ Name: "Turalyon's Plate", AlternativeName: "Liadrin's Plate", Bonuses: map[int32]core.ApplyEffect{ 2: func(agent core.Agent) { }, 4: func(agent core.Agent) { }, }, })
Tier 9 prot (Alliance/Horde)
View Source
var TalentTreeSizes = [3]int{26, 26, 26}
Functions ¶
This section is empty.
Types ¶
type Paladin ¶
type Paladin struct { core.Character PaladinAura proto.PaladinAura Talents *proto.PaladinTalents CurrentSeal *core.Aura CurrentJudgement *core.Aura //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 JudgementOfWisdom *core.Spell JudgementOfLight *core.Spell HammerOfWrath *core.Spell SealOfVengeance *core.Spell SealOfRighteousness *core.Spell SealOfCommand *core.Spell AvengingWrath *core.Spell DivineProtection *core.Spell SovDotSpell *core.Spell HolyShieldAura *core.Aura RighteousFuryAura *core.Aura //DivinePleaAura *core.Aura JudgementOfWisdomAura *core.Aura JudgementOfLightAura *core.Aura SealOfVengeanceAura *core.Aura SealOfCommandAura *core.Aura SealOfRighteousnessAura *core.Aura AvengingWrathAura *core.Aura DivineProtectionAura *core.Aura ForbearanceAura *core.Aura VengeanceAura *core.Aura ArtOfWarInstantCast *core.Aura SpiritualAttunementMetrics *core.ResourceMetrics HasTuralyonsOrLiadrinsBattlegear2Pc bool DemonAndUndeadTargetCount int32 AvoidClippingConsecration bool HoldLastAvengingWrathUntilExecution bool CancelChaosBane bool // contains filtered or unexported fields }
func NewPaladin ¶
maybe need to add stat dependencies
func (*Paladin) ActivateRighteousFury ¶
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) GetCharacter ¶
func (*Paladin) GetMutualLockoutDPAW ¶
Shared 30sec cooldown for Divine Protection and Avenging Wrath
func (*Paladin) GetPaladin ¶
func (*Paladin) HasMajorGlyph ¶
func (paladin *Paladin) HasMajorGlyph(glyph proto.PaladinMajorGlyph) bool
func (*Paladin) HasMinorGlyph ¶
func (paladin *Paladin) HasMinorGlyph(glyph proto.PaladinMinorGlyph) bool
func (*Paladin) Initialize ¶
func (paladin *Paladin) Initialize()
func (*Paladin) MeleeCritMultiplier ¶
Prior to WOTLK, behavior was to double dip.
func (*Paladin) RegisterAvengingWrathCD ¶
func (paladin *Paladin) RegisterAvengingWrathCD()
func (*Paladin) Reset ¶
func (paladin *Paladin) Reset(_ *core.Simulation)
func (*Paladin) SpellCritMultiplier ¶
func (*Paladin) ToughnessArmorMultiplier ¶ added in v1.0.1
type PaladinAgent ¶
type PaladinAgent interface {
GetPaladin() *Paladin
}
Implemented by each Paladin spec.
Source Files ¶
- avengers_shield.go
- avenging_wrath.go
- consecration.go
- crusader_strike.go
- divine_plea.go
- divine_protection.go
- divine_storm.go
- exorcism.go
- hammer_of_the_righteous.go
- hammer_of_wrath.go
- hand_of_reckoning.go
- holy_shield.go
- holy_wrath.go
- items.go
- judgement.go
- paladin.go
- righteous_fury.go
- seals.go
- shield_of_righteousness.go
- soc.go
- sor.go
- sov.go
- spiritual_attunement.go
- talents.go
Click to show internal directories.
Click to hide internal directories.