paladin

package
v0.1.4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 10, 2022 License: MIT Imports: 5 Imported by: 0

Documentation

Index

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) {
			paladin := agent.(PaladinAgent).GetPaladin()
			procAura := paladin.NewTemporaryStatsAura("Aegis", core.ActionID{SpellID: 64883}, stats.Stats{stats.BlockValue: 225}, time.Second*6)

			paladin.RegisterAura(core.Aura{
				Label:    "Aegis Plate 4P Bonus",
				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.SpellID == paladin.ShieldOfRighteousness.SpellID {
						procAura.Activate(sim)
					}
				},
			})
		},
	},
})

Tier 8 prot

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 ItemSetLiadrinsBattlegear = core.NewItemSet(core.ItemSet{
	Name: "Liadrin's Battlegear",
	Bonuses: map[int32]core.ApplyEffect{
		2: func(agent core.Agent) {

		},
		4: func(agent core.Agent) {

		},
	},
})

Tier 9 ret (Horde)

View Source
var ItemSetLiadrinsPlate = core.NewItemSet(core.ItemSet{
	Name: "Liadrin's Plate",
	Bonuses: map[int32]core.ApplyEffect{
		2: func(agent core.Agent) {

		},
		4: func(agent core.Agent) {

		},
	},
})

Tier 9 prot (Horde)

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, true)
				},
			})
		},
		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",
	Bonuses: map[int32]core.ApplyEffect{
		2: func(agent core.Agent) {

		},
		4: func(agent core.Agent) {

		},
	},
})

Tier 9 ret (Alliance)

View Source
var ItemSetTuralyonsPlate = core.NewItemSet(core.ItemSet{
	Name: "Turalyon's Plate",
	Bonuses: map[int32]core.ApplyEffect{
		2: func(agent core.Agent) {

		},
		4: func(agent core.Agent) {

		},
	},
})

Tier 9 prot (Alliance)

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
	ShieldOfRighteousness *core.Spell
	AvengersShield        *core.Spell
	JudgementOfWisdom     *core.Spell
	JudgementOfLight      *core.Spell
	HammerOfWrath         *core.Spell
	SealOfVengeance       *core.Spell
	SealOfRighteousness   *core.Spell
	SealOfCommand         *core.Spell

	ConsecrationDot     *core.Dot
	SealOfVengeanceDots []*core.Dot

	HolyShieldAura *core.Aura
	// RighteousFuryAura       *core.Aura
	DivinePleaAura          *core.Aura
	JudgementOfWisdomAura   *core.Aura
	JudgementOfLightAura    *core.Aura
	SealOfVengeanceAura     *core.Aura
	SealOfCommandAura       *core.Aura
	SealOfRighteousnessAura *core.Aura

	RighteousVengeanceSpell  *core.Spell
	RighteousVengeanceDots   []*core.Dot
	RighteousVengeancePools  []float64
	RighteousVengeanceDamage []float64

	ArtOfWarInstantCast *core.Aura

	SpiritualAttunementMetrics *core.ResourceMetrics

	HasTuralyonsOrLiadrinsBattlegear2Pc bool

	DemonAndUndeadTargetCount int32
}

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 *Paladin) AddRaidBuffs(raidBuffs *proto.RaidBuffs)

func (*Paladin) ApplyTalents

func (paladin *Paladin) ApplyTalents()

func (*Paladin) GetCharacter

func (paladin *Paladin) GetCharacter() *core.Character

func (*Paladin) GetPaladin

func (paladin *Paladin) GetPaladin() *Paladin

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

func (paladin *Paladin) MeleeCritMultiplier() float64

Prior to WOTLK, behavior was to double dip.

func (*Paladin) OnAutoAttack

func (paladin *Paladin) OnAutoAttack(sim *core.Simulation, spell *core.Spell)

func (*Paladin) RegisterAvengingWrathCD

func (paladin *Paladin) RegisterAvengingWrathCD()

func (*Paladin) Reset

func (paladin *Paladin) Reset(sim *core.Simulation)

func (*Paladin) SpellCritMultiplier

func (paladin *Paladin) SpellCritMultiplier() float64

type PaladinAgent

type PaladinAgent interface {
	GetPaladin() *Paladin
}

Implemented by each Paladin spec.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL