priest

package
v1.9.3 Latest Latest
Warning

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

Go to latest
Published: Mar 13, 2026 License: MIT Imports: 5 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ItemSetAbsolution = core.NewItemSet(core.ItemSet{
	Name: "Absolution Regalia",
	Bonuses: map[int32]core.ApplyEffect{
		2: func(agent core.Agent) {

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

		},
	},
})
View Source
var ItemSetAvatar = core.NewItemSet(core.ItemSet{
	Name: "Avatar Regalia",
	Bonuses: map[int32]core.ApplyEffect{
		2: func(agent core.Agent) {
			priest := agent.(PriestAgent).GetPriest()
			manaMetrics := priest.NewManaMetrics(core.ActionID{SpellID: 37600})

			priest.RegisterAura(core.Aura{
				Label:    "Avatar Regalia 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 sim.RandomFloat("avatar 2p") > 0.06 {
						return
					}

					priest.AddMana(sim, 150, manaMetrics, false)
				},
			})
		},
		4: func(agent core.Agent) {
			priest := agent.(PriestAgent).GetPriest()

			procAura := priest.NewTemporaryStatsAura("Avatar Regalia 4pc Proc", core.ActionID{SpellID: 37604}, stats.Stats{stats.SpellPower: 100}, time.Second*15)
			procAura.OnSpellHitDealt = func(aura *core.Aura, sim *core.Simulation, spell *core.Spell, spellEffect *core.SpellEffect) {
				aura.Deactivate(sim)
			}

			priest.RegisterAura(core.Aura{
				Label:    "Avatar Regalia 4pc",
				Duration: core.NeverExpires,
				OnReset: func(aura *core.Aura, sim *core.Simulation) {
					aura.Activate(sim)
				},
				OnPeriodicDamageDealt: func(aura *core.Aura, sim *core.Simulation, spell *core.Spell, spellEffect *core.SpellEffect) {
					if spell != priest.ShadowWordPain {
						return
					}

					if sim.RandomFloat("avatar 4p") > 0.4 {
						return
					}

					procAura.Activate(sim)
				},
			})
		},
	},
})
View Source
var ItemSetIncarnate = core.NewItemSet(core.ItemSet{
	Name: "Incarnate Raiment",
	Bonuses: map[int32]core.ApplyEffect{
		2: func(agent core.Agent) {

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

		},
	},
})

Functions

This section is empty.

Types

type Priest

type Priest struct {
	core.Character
	SelfBuffs
	Talents proto.PriestTalents

	SurgeOfLight bool

	Latency float64

	// cached cast stuff
	// TODO: aoe multi-target situations will need multiple spells ticking for each target.
	DevouringPlague *core.Spell
	HolyFire        *core.Spell
	InnerFocus      *core.Spell
	MindBlast       *core.Spell
	MindFlay        []*core.Spell
	ShadowWordDeath *core.Spell
	ShadowWordPain  *core.Spell
	Shadowfiend     *core.Spell
	Smite           *core.Spell
	Starshards      *core.Spell
	VampiricTouch   *core.Spell

	DevouringPlagueDot *core.Dot
	HolyFireDot        *core.Dot
	MindFlayDot        []*core.Dot
	ShadowWordPainDot  *core.Dot
	ShadowfiendDot     *core.Dot
	StarshardsDot      *core.Dot
	VampiricTouchDot   *core.Dot

	InnerFocusAura       *core.Aura
	MiseryAura           *core.Aura
	ShadowWeavingAura    *core.Aura
	SurgeOfLightProcAura *core.Aura
}

func New

func New(char core.Character, selfBuffs SelfBuffs, talents proto.PriestTalents) *Priest

func (*Priest) AddPartyBuffs

func (priest *Priest) AddPartyBuffs(partyBuffs *proto.PartyBuffs)

func (*Priest) AddRaidBuffs

func (priest *Priest) AddRaidBuffs(raidBuffs *proto.RaidBuffs)

func (*Priest) ApplyMisery

func (priest *Priest) ApplyMisery(sim *core.Simulation, target *core.Unit)

func (*Priest) ApplyShadowOnHitEffects

func (priest *Priest) ApplyShadowOnHitEffects()

func (*Priest) ApplyShadowWeaving

func (priest *Priest) ApplyShadowWeaving(sim *core.Simulation, target *core.Unit)

func (*Priest) ApplyTalents

func (priest *Priest) ApplyTalents()

func (*Priest) ApplyVampiricTouchManaReturn

func (priest *Priest) ApplyVampiricTouchManaReturn(sim *core.Simulation, damage float64)

func (*Priest) GetCharacter

func (priest *Priest) GetCharacter() *core.Character

func (*Priest) Initialize

func (priest *Priest) Initialize()

func (*Priest) MindFlayActionID

func (priest *Priest) MindFlayActionID(numTicks int) core.ActionID

func (*Priest) Reset

func (priest *Priest) Reset(_ *core.Simulation)

type PriestAgent

type PriestAgent interface {
	GetPriest() *Priest
}

Agent is a generic way to access underlying priest on any of the agents.

type SelfBuffs

type SelfBuffs struct {
	UseShadowfiend bool

	PowerInfusionTarget proto.RaidTarget
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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