priest

package
v1.0.14 Latest Latest
Warning

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

Go to latest
Published: Nov 10, 2025 License: MIT Imports: 6 Imported by: 0

Documentation

Index

Constants

View Source
const (
	SpellCode_PriestNone int32 = iota

	SpellCode_PriestDevouringPlague
	SpellCode_PriestFlashHeal
	SpellCode_PriestGreaterHeal
	SpellCode_PriestHeal
	SpellCode_PriestHolyFire
	SpellCode_PriestMindBlast
	SpellCode_PriestMindFlay
	SpellCode_PriestShadowWordPain
	SpellCode_PriestSmite
	SpellCode_PriestStarshards
	SpellCode_PriestVampiricTouch
)
View Source
const DevouringPlagueRanks = 6
View Source
const HolyFireRanks = 8
View Source
const MindBlastRanks = 9
View Source
const MindFlayRanks = 6
View Source
const MindFlayTicks = 3
View Source
const ShadowWordPainRanks = 8
View Source
const SmiteRanks = 8
View Source
const (
	SpellFlagPriest = core.SpellFlagAgentReserved1
)
View Source
const StarshardsRanks = 7
View Source
const StarshardsTicks = 6

Variables

View Source
var DevouringPlagueBaseDamage = [DevouringPlagueRanks + 1]float64{0, 152, 272, 400, 544, 712, 904}
View Source
var DevouringPlagueLevel = [DevouringPlagueRanks + 1]int{0, 20, 28, 36, 44, 52, 60}
View Source
var DevouringPlagueManaCost = [DevouringPlagueRanks + 1]float64{0, 215, 350, 495, 645, 810, 985}
View Source
var DevouringPlagueSpellId = [DevouringPlagueRanks + 1]int32{0, 2944, 19276, 19277, 19278, 19279, 19280}
View Source
var HolyFireBaseDamage = [HolyFireRanks + 1][]float64{{0}, {84, 104}, {97, 122}, {144, 178}, {173, 218}, {219, 273}, {259, 328}, {323, 406}, {355, 449}}
View Source
var HolyFireDotDamage = [HolyFireRanks + 1]float64{0, 30, 40, 55, 65, 85, 100, 125, 145}
View Source
var HolyFireLevel = [HolyFireRanks + 1]int{0, 20, 24, 30, 36, 42, 48, 54, 60}
View Source
var HolyFireManaCost = [HolyFireRanks + 1]float64{0, 85, 95, 125, 145, 170, 200, 230, 255}
View Source
var HolyFireSpellCoef = [HolyFireRanks + 1]float64{0, 0.123, 0.271, 0.554, 0.714, 0.714, 0.714, 0.714, 0.714}
View Source
var HolyFireSpellId = [HolyFireRanks + 1]int32{0, 14914, 15262, 15263, 15264, 15265, 15266, 15267, 15261}
View Source
var ItemSetChampionsInvestiture = core.NewItemSet(core.ItemSet{
	Name: "Champion's Investiture",
	Bonuses: map[int32]core.ApplyEffect{

		2: func(agent core.Agent) {
			c := agent.GetCharacter()
			c.AddStat(stats.SpellPower, 23)
		},

		4: func(agent core.Agent) {

		},

		6: func(agent core.Agent) {
			c := agent.GetCharacter()
			c.AddStat(stats.Stamina, 20)
		},
	},
})
View Source
var ItemSetChampionsRaiment = core.NewItemSet(core.ItemSet{
	Name: "Champion's Raiment",
	Bonuses: map[int32]core.ApplyEffect{

		2: func(agent core.Agent) {
			c := agent.GetCharacter()
			c.AddStat(stats.SpellPower, 23)
		},

		4: func(agent core.Agent) {

		},

		6: func(agent core.Agent) {
			c := agent.GetCharacter()
			c.AddStat(stats.Stamina, 15)
		},
	},
})
View Source
var ItemSetConfessorsRaiment = core.NewItemSet(core.ItemSet{
	Name: "Confessor's Raiment",
	Bonuses: map[int32]core.ApplyEffect{

		2: func(agent core.Agent) {
			c := agent.GetCharacter()
			c.AddStat(stats.HealingPower, 22)
		},

		3: func(agent core.Agent) {

		},

		5: func(agent core.Agent) {

		},
	},
})
View Source
var ItemSetFieldMarshalsRaiment = core.NewItemSet(core.ItemSet{
	Name: "Field Marshal's Raiment",
	Bonuses: map[int32]core.ApplyEffect{

		2: func(agent core.Agent) {
			c := agent.GetCharacter()
			c.AddStat(stats.Stamina, 20)
		},

		3: func(agent core.Agent) {

		},

		6: func(agent core.Agent) {
			c := agent.GetCharacter()
			c.AddStat(stats.SpellPower, 23)
		},
	},
})
View Source
var ItemSetGarmentsOfTheOracle = core.NewItemSet(core.ItemSet{
	Name: "Garments of the Oracle",
	Bonuses: map[int32]core.ApplyEffect{

		3: func(agent core.Agent) {

		},

		5: func(agent core.Agent) {

		},
	},
})
View Source
var ItemSetLieutenantCommandersInvestiture = core.NewItemSet(core.ItemSet{
	Name: "Lieutenant Commander's Investiture",
	Bonuses: map[int32]core.ApplyEffect{

		2: func(agent core.Agent) {
			c := agent.GetCharacter()
			c.AddStat(stats.SpellPower, 23)
		},

		4: func(agent core.Agent) {

		},

		6: func(agent core.Agent) {
			c := agent.GetCharacter()
			c.AddStat(stats.Stamina, 20)
		},
	},
})
View Source
var ItemSetLieutenantCommandersRaiment = core.NewItemSet(core.ItemSet{
	Name: "Lieutenant Commander's Raiment",
	Bonuses: map[int32]core.ApplyEffect{

		2: func(agent core.Agent) {
			c := agent.GetCharacter()
			c.AddStat(stats.SpellPower, 23)
		},

		4: func(agent core.Agent) {

		},

		6: func(agent core.Agent) {
			c := agent.GetCharacter()
			c.AddStat(stats.Stamina, 15)
		},
	},
})
View Source
var ItemSetVestmentsOfFaith = core.NewItemSet(core.ItemSet{
	Name: "Vestments of Faith",
	Bonuses: map[int32]core.ApplyEffect{

		2: func(agent core.Agent) {

		},

		4: func(agent core.Agent) {

		},

		6: func(agent core.Agent) {

		},

		8: func(agent core.Agent) {
			c := agent.GetCharacter()

			procAura := c.NewTemporaryStatsAura("Epiphany", core.ActionID{SpellID: 28802}, stats.Stats{stats.MP5: 24}, time.Second*30)
			core.MakeProcTriggerAura(&c.Unit, core.ProcTrigger{
				Name:       "Item - Epiphany Proc (Spell Cast)",
				Callback:   core.CallbackOnCastComplete,
				ProcMask:   core.ProcMaskSpellDamage,
				SpellFlags: core.SpellFlagHelpful,
				ProcChance: 0.05,
				Handler: func(sim *core.Simulation, spell *core.Spell, _ *core.SpellResult) {
					procAura.Activate(sim)
				},
			})
		},
	},
})
View Source
var ItemSetVestmentsOfProphecy = core.NewItemSet(core.ItemSet{
	Name: "Vestments of Prophecy",
	Bonuses: map[int32]core.ApplyEffect{

		3: func(agent core.Agent) {

		},

		5: func(agent core.Agent) {
			priest := agent.(PriestAgent).GetPriest()
			priest.PseudoStats.SchoolBonusCritChance[stats.SchoolIndexHoly] += 2 * core.SpellCritRatingPerCritChance
		},

		8: func(agent core.Agent) {

		},
	},
})
View Source
var ItemSetVestmentsOfTranscendence = core.NewItemSet(core.ItemSet{
	Name: "Vestments of Transcendence",
	Bonuses: map[int32]core.ApplyEffect{

		3: func(agent core.Agent) {
			c := agent.GetCharacter()
			c.PseudoStats.SpiritRegenRateCasting += .15
		},

		5: func(agent core.Agent) {

		},

		8: func(agent core.Agent) {

		},
	},
})
View Source
var ItemSetWarlordsRaiment = core.NewItemSet(core.ItemSet{
	Name: "Warlord's Raiment",
	Bonuses: map[int32]core.ApplyEffect{

		2: func(agent core.Agent) {
			c := agent.GetCharacter()
			c.AddStat(stats.Stamina, 20)
		},

		3: func(agent core.Agent) {

		},

		6: func(agent core.Agent) {
			c := agent.GetCharacter()
			c.AddStat(stats.SpellPower, 23)
		},
	},
})
View Source
var MindBlastBaseDamage = [MindBlastRanks + 1][]float64{{0}, {42, 46}, {76, 83}, {115, 124}, {174, 184}, {225, 239}, {279, 297}, {354, 375}, {437, 461}, {508, 537}}
View Source
var MindBlastLevel = [MindBlastRanks + 1]int{0, 10, 16, 22, 28, 34, 40, 46, 52, 58}
View Source
var MindBlastManaCost = [MindBlastRanks + 1]float64{0, 50, 80, 110, 150, 185, 225, 265, 310, 350}
View Source
var MindBlastSpellCoef = [MindBlastRanks + 1]float64{0, .268, .364, .429, .429, .429, .429, .429, .429, .429}
View Source
var MindBlastSpellId = [MindBlastRanks + 1]int32{0, 8092, 8102, 8103, 8104, 8105, 8106, 10945, 10946, 10947}
View Source
var MindFlayBaseDamage = [MindFlayRanks + 1]float64{0, 75, 126, 186, 261, 330, 426}
View Source
var MindFlayLevel = [MindFlayRanks + 1]int{0, 20, 28, 36, 44, 52, 60}
View Source
var MindFlayManaCost = [MindFlayRanks + 1]float64{0, 45, 70, 100, 135, 165, 205}
View Source
var MindFlaySpellId = [MindFlayRanks + 1]int32{0, 15407, 17311, 17312, 17313, 17314, 18807}
View Source
var MindFlayTickSpellId = [MindFlayRanks + 1]int32{0, 16568, 7378, 17316, 17317, 17318, 18808}
View Source
var ShadowWordPainBaseDamage = [ShadowWordPainRanks + 1]float64{0, 30, 66, 132, 234, 366, 510, 672, 852}
View Source
var ShadowWordPainLevel = [ShadowWordPainRanks + 1]int{0, 4, 10, 18, 26, 34, 42, 50, 58}
View Source
var ShadowWordPainManaCost = [ShadowWordPainRanks + 1]float64{0, 25, 50, 95, 155, 230, 305, 385, 470}
View Source
var ShadowWordPainSpellCoef = [ShadowWordPainRanks + 1]float64{0, 0.067, 0.104, 0.154, 0.167, 0.167, 0.167, 0.167, 0.167} // per tick
View Source
var ShadowWordPainSpellId = [ShadowWordPainRanks + 1]int32{0, 589, 594, 970, 992, 2767, 10892, 10893, 10894}
View Source
var SmiteBaseDamage = [SmiteRanks + 1][]float64{{0}, {15, 20}, {28, 34}, {58, 67}, {94, 109}, {158, 178}, {216, 244}, {296, 333}, {384, 429}}
View Source
var SmiteCastTime = [SmiteRanks + 1]int{0, 1500, 2000, 2500, 2500, 2500, 2500, 2500, 2500}
View Source
var SmiteLevel = [SmiteRanks + 1]int{0, 1, 6, 14, 22, 30, 38, 46, 54}
View Source
var SmiteManaCost = [SmiteRanks + 1]float64{0, 20, 30, 60, 95, 140, 185, 230, 280}
View Source
var SmiteSpellCoef = [SmiteRanks + 1]float64{0, 0.123, 0.271, 0.554, 0.714, 0.714, 0.714, 0.714, 0.714}
View Source
var SmiteSpellId = [SmiteRanks + 1]int32{0, 585, 591, 598, 984, 1004, 6060, 10933, 10934}
View Source
var StarshardsBaseDamage = [StarshardsRanks + 1]float64{0, 84, 162, 288, 414, 570, 756, 936}
View Source
var StarshardsLevel = [StarshardsRanks + 1]int{0, 10, 18, 26, 34, 42, 50, 58}
View Source
var StarshardsManaCost = [StarshardsRanks + 1]float64{0, 50, 85, 140, 190, 245, 300, 350}
View Source
var StarshardsSpellId = [StarshardsRanks + 1]int32{0, 10797, 19296, 19299, 19302, 19303, 19304, 19305}
View Source
var StarshardsTickSpellId = [StarshardsRanks + 1]int32{0, 19350, 19351, 19352, 19353, 19354, 19355, 19356}
View Source
var TalentTreeSizes = [3]int{15, 16, 16}

Functions

This section is empty.

Types

type Priest

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

	Latency float64

	CircleOfHealing   *core.Spell
	DevouringPlague   []*core.Spell
	EmpoweredRenew    *core.Spell
	FlashHeal         []*core.Spell
	GreaterHeal       []*core.Spell
	HolyFire          []*core.Spell
	InnerFocus        *core.Spell
	MindBlast         []*core.Spell
	MindFlay          [][]*core.Spell // 1 entry for each tick for each rank
	PowerWordShield   []*core.Spell
	PrayerOfHealing   []*core.Spell
	PrayerOfMending   *core.Spell
	Renew             []*core.Spell
	Shadowform        *core.Spell
	ShadowWeavingProc *core.Spell
	ShadowWordPain    []*core.Spell
	Smite             []*core.Spell
	Starshards        [][]*core.Spell
	VampiricEmbrace   *core.Spell

	InnerFocusAura *core.Aura
	ShadowformAura *core.Aura
	SpiritTapAura  *core.Aura

	ShadowWeavingAuras   core.AuraArray
	VampiricEmbraceAuras core.AuraArray
	WeakenedSouls        core.AuraArray

	ProcPrayerOfMending core.ApplySpellResults
}

func New

func New(character *core.Character, talents string) *Priest

func (*Priest) AddPartyBuffs

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

func (*Priest) AddRaidBuffs

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

func (*Priest) AddShadowWeavingStack

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

func (*Priest) ApplyTalents

func (priest *Priest) ApplyTalents()

func (*Priest) GetCharacter

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

func (*Priest) Initialize

func (priest *Priest) Initialize()

func (*Priest) RegisterHealingSpells

func (priest *Priest) RegisterHealingSpells()

type PriestAgent

type PriestAgent interface {
	GetPriest() *Priest
}

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

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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