Documentation
¶
Index ¶
- Constants
- Variables
- type Paladin
- func (paladin *Paladin) ActivateRighteousFury()
- func (paladin *Paladin) AddPartyBuffs(partyBuffs *proto.PartyBuffs)
- func (paladin *Paladin) AddRaidBuffs(raidBuffs *proto.RaidBuffs)
- func (paladin *Paladin) ApplyTalents()
- func (paladin *Paladin) CanExorcism(target *core.Unit) bool
- func (paladin *Paladin) CanJudgementOfBlood(sim *core.Simulation) bool
- func (paladin *Paladin) CanJudgementOfLight(sim *core.Simulation) bool
- func (paladin *Paladin) CanJudgementOfTheCrusader(sim *core.Simulation) bool
- func (paladin *Paladin) CanJudgementOfWisdom(sim *core.Simulation) bool
- func (paladin *Paladin) GetCharacter() *core.Character
- func (paladin *Paladin) GetPaladin() *Paladin
- func (paladin *Paladin) Initialize()
- func (paladin *Paladin) MeleeCritMultiplier() float64
- func (paladin *Paladin) OnAutoAttack(sim *core.Simulation, spell *core.Spell)
- func (paladin *Paladin) RegisterAvengingWrathCD()
- func (paladin *Paladin) RegisterConsecrationSpell(rank int32)
- func (paladin *Paladin) Reset(sim *core.Simulation)
- func (paladin *Paladin) SetupSealOfCommand()
- func (paladin *Paladin) SpellCritMultiplier() float64
- func (paladin *Paladin) UpdateSeal(sim *core.Simulation, newSeal *core.Aura)
- func (paladin *Paladin) WeaponSpecializationMultiplier() float64
- type PaladinAgent
Constants ¶
View Source
const ( SpellFlagSeal = core.SpellFlagAgentReserved1 SpellFlagJudgement = core.SpellFlagAgentReserved2 )
View Source
const JudgementCDTime = time.Second * 10
View Source
const JudgementDuration = time.Second * 20
View Source
const JudgementManaCost = 147.0
View Source
const SealDuration = time.Second * 30
View Source
const TwistWindow = time.Millisecond * 400
Variables ¶
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 2pc 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.SpellEffect) { 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) } }, }) }, }, })
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) { }, }, })
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) { }, }, })
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) { }, }, })
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) { }, }, })
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, spellEffect *core.SpellEffect) { if !spellEffect.ProcMask.Matches(core.ProcMaskMelee) { return } if sim.RandomFloat("lightbringer 2pc") > 0.2 { return } paladin.AddMana(sim, 50, manaMetrics, true) }, }) }, 4: func(agent core.Agent) { }, }, })
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
Consecration *core.Spell
CrusaderStrike *core.Spell
Exorcism *core.Spell
HolyShield *core.Spell
JudgementOfBlood *core.Spell
JudgementOfTheCrusader *core.Spell
JudgementOfWisdom *core.Spell
JudgementOfLight *core.Spell
JudgementOfRighteousness *core.Spell
SealOfBlood *core.Spell
SealOfCommand *core.Spell
SealOfTheCrusader *core.Spell
SealOfWisdom *core.Spell
SealOfLight *core.Spell
SealOfRighteousness *core.Spell
ConsecrationDot *core.Dot
HolyShieldAura *core.Aura
JudgementOfTheCrusaderAura *core.Aura
JudgementOfWisdomAura *core.Aura
JudgementOfLightAura *core.Aura
SealOfBloodAura *core.Aura
SealOfCommandAura *core.Aura
SealOfTheCrusaderAura *core.Aura
SealOfWisdomAura *core.Aura
SealOfLightAura *core.Aura
SealOfRighteousnessAura *core.Aura
SpiritualAttunementMetrics *core.ResourceMetrics
}
func NewPaladin ¶
func NewPaladin(character core.Character, talents proto.PaladinTalents) *Paladin
maybe need to add stat dependencies
func (*Paladin) ActivateRighteousFury ¶
func (paladin *Paladin) ActivateRighteousFury()
func (*Paladin) AddPartyBuffs ¶
func (paladin *Paladin) AddPartyBuffs(partyBuffs *proto.PartyBuffs)
func (*Paladin) AddRaidBuffs ¶
func (*Paladin) ApplyTalents ¶
func (paladin *Paladin) ApplyTalents()
func (*Paladin) CanJudgementOfBlood ¶
func (paladin *Paladin) CanJudgementOfBlood(sim *core.Simulation) bool
func (*Paladin) CanJudgementOfLight ¶
func (paladin *Paladin) CanJudgementOfLight(sim *core.Simulation) bool
func (*Paladin) CanJudgementOfTheCrusader ¶
func (paladin *Paladin) CanJudgementOfTheCrusader(sim *core.Simulation) bool
func (*Paladin) CanJudgementOfWisdom ¶
func (paladin *Paladin) CanJudgementOfWisdom(sim *core.Simulation) bool
func (*Paladin) GetCharacter ¶
func (*Paladin) GetPaladin ¶
func (*Paladin) Initialize ¶
func (paladin *Paladin) Initialize()
func (*Paladin) MeleeCritMultiplier ¶
func (*Paladin) OnAutoAttack ¶
func (paladin *Paladin) OnAutoAttack(sim *core.Simulation, spell *core.Spell)
func (*Paladin) RegisterAvengingWrathCD ¶
func (paladin *Paladin) RegisterAvengingWrathCD()
func (*Paladin) RegisterConsecrationSpell ¶
Maybe could switch "rank" parameter type to some proto thing. Would require updates to proto files. Prot guys do whatever you want here I guess
func (*Paladin) Reset ¶
func (paladin *Paladin) Reset(sim *core.Simulation)
func (*Paladin) SetupSealOfCommand ¶
func (paladin *Paladin) SetupSealOfCommand()
func (*Paladin) SpellCritMultiplier ¶
func (*Paladin) UpdateSeal ¶
func (paladin *Paladin) UpdateSeal(sim *core.Simulation, newSeal *core.Aura)
func (*Paladin) WeaponSpecializationMultiplier ¶
type PaladinAgent ¶
type PaladinAgent interface {
GetPaladin() *Paladin
}
Implemented by each Paladin spec.
Source Files
¶
Click to show internal directories.
Click to hide internal directories.