priest

package
v0.0.13 Latest Latest
Warning

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

Go to latest
Published: Jun 10, 2024 License: MIT Imports: 8 Imported by: 0

Documentation

Index

Constants

View Source
const (
	SpellCode_PriestNone int32 = iota
	SpellCode_PriestFlashHeal
	SpellCode_PriestGreaterHeal
	SpellCode_PriestHeal
	SpellCode_PriestSmite
)
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 MindSearTicks = 5
View Source
const ShadowWordPainRanks = 8
View Source
const SmiteRanks = 8

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 ItemSetBenevolentProphetsVestments = core.NewItemSet(core.ItemSet{
	Name: "Benevolent Prophet's Vestments",
	Bonuses: map[int32]core.ApplyEffect{
		2: func(agent core.Agent) {
			c := agent.GetCharacter()
			c.AddStat(stats.MP5, 4)
		},
		3: func(agent core.Agent) {
			c := agent.GetCharacter()

			procAura := c.NewTemporaryStatsAura("Faith and Magic Proc", core.ActionID{SpellID: 449923}, stats.Stats{stats.SpellPower: 60}, time.Second*15)

			handler := func(sim *core.Simulation, spell *core.Spell, _ *core.SpellResult) {
				if spell.SpellSchool.Matches(core.SpellSchoolHoly) {
					procAura.Activate(sim)
				}
			}

			core.MakeProcTriggerAura(&c.Unit, core.ProcTrigger{
				ActionID:   core.ActionID{SpellID: 449921},
				Name:       "Faith and Magic",
				Callback:   core.CallbackOnCastComplete,
				ProcMask:   core.ProcMaskSpellDamage,
				ProcChance: 1,
				Handler:    handler,
			})
		},
	},
})

TODO: New Set Bonuses

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 TalentTreeSizes = [3]int{15, 16, 16}

Functions

This section is empty.

Types

type EyeOfTheVoid added in v0.0.7

type EyeOfTheVoid struct {
	core.Pet

	Priest     *Priest
	ShadowBolt *core.Spell
	// contains filtered or unexported fields
}

func (*EyeOfTheVoid) ExecuteCustomRotation added in v0.0.7

func (eyeOfTheVoid *EyeOfTheVoid) ExecuteCustomRotation(sim *core.Simulation)

func (*EyeOfTheVoid) GetPet added in v0.0.7

func (eyeOfTheVoid *EyeOfTheVoid) GetPet() *core.Pet

func (*EyeOfTheVoid) Initialize added in v0.0.7

func (eyeOfTheVoid *EyeOfTheVoid) Initialize()

func (*EyeOfTheVoid) OnPetDisable added in v0.0.7

func (eyeOfTheVoid *EyeOfTheVoid) OnPetDisable(sim *core.Simulation)

func (*EyeOfTheVoid) Reset added in v0.0.7

func (eyeOfTheVoid *EyeOfTheVoid) Reset(sim *core.Simulation)

type Homunculus

type Homunculus struct {
	core.Pet

	Priest       *Priest
	PrimarySpell *core.Spell
	// contains filtered or unexported fields
}

func (*Homunculus) ExecuteCustomRotation

func (homunculus *Homunculus) ExecuteCustomRotation(sim *core.Simulation)

func (*Homunculus) GetPet

func (homunculus *Homunculus) GetPet() *core.Pet

func (*Homunculus) Initialize

func (homunculus *Homunculus) Initialize()

func (*Homunculus) OnPetDisable

func (homunculus *Homunculus) OnPetDisable(sim *core.Simulation)

func (*Homunculus) Reset

func (homunculus *Homunculus) Reset(sim *core.Simulation)

type Priest

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

	Latency float64

	// Auras
	InnerFocusAura     *core.Aura
	ShadowWeavingAuras core.AuraArray
	WeakenedSouls      core.AuraArray

	ShadowWeavingProc *core.Spell

	// Base Damage Spells
	DevouringPlague []*core.Spell
	HolyFire        []*core.Spell
	MindBlast       []*core.Spell
	MindFlay        [][]*core.Spell
	ShadowWordPain  []*core.Spell
	Smite           []*core.Spell

	// Base Healing Spells
	FlashHeal       []*core.Spell
	GreaterHeal     []*core.Spell
	PowerWordShield []*core.Spell
	PrayerOfHealing []*core.Spell
	Renew           []*core.Spell

	// Other Base Spells
	InnerFocus *core.Spell

	// Runes
	CircleOfHealing             *core.Spell
	Dispersion                  *core.Spell
	DispersionAura              *core.Aura
	EmpoweredRenew              *core.Spell
	EyeOfTheVoid                *core.Spell
	EyeOfTheVoidAura            *core.Aura
	EyeOfTheVoidPet             *EyeOfTheVoid
	Homunculi                   *core.Spell
	HomunculiAura               *core.Aura
	HomunculiPets               []*Homunculus
	MindFlayModifier            float64 // For Twisted Faith
	MindBlastModifier           float64 // For Twisted Faith
	MindBlastCritChanceModifier float64
	MindSear                    []*core.Spell // 1 entry for each tick
	MindSpike                   *core.Spell
	MindSpikeAuras              core.AuraArray
	Penance                     *core.Spell
	PenanceHeal                 *core.Spell
	PrayerOfMending             *core.Spell
	Shadowfiend                 *core.Spell
	ShadowfiendAura             *core.Aura
	ShadowfiendPet              *Shadowfiend
	Shadowform                  *core.Spell
	ShadowformAura              *core.Aura
	ShadowWordDeath             *core.Spell
	SurgeOfLightAura            *core.Aura
	VoidPlague                  *core.Spell

	ProcPrayerOfMending core.ApplySpellResults

	DpInitMultiplier float64
}

func New

func New(char *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) ApplyRunes

func (priest *Priest) ApplyRunes()

func (*Priest) ApplyTalents

func (priest *Priest) ApplyTalents()

func (*Priest) GetCharacter

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

func (*Priest) HasRune

func (priest *Priest) HasRune(rune proto.PriestRune) bool

func (*Priest) Initialize

func (priest *Priest) Initialize()

func (*Priest) NewEyeOfTheVoid added in v0.0.7

func (priest *Priest) NewEyeOfTheVoid() *EyeOfTheVoid

func (*Priest) NewHomunculus

func (priest *Priest) NewHomunculus(idx int32, npcID int32) *Homunculus

func (*Priest) NewShadowfiend

func (priest *Priest) NewShadowfiend() *Shadowfiend

func (*Priest) RegisterHealingSpells

func (priest *Priest) RegisterHealingSpells()

func (*Priest) RegisterPenanceSpell

func (priest *Priest) RegisterPenanceSpell()

func (*Priest) RegisterSmiteSpell

func (priest *Priest) RegisterSmiteSpell()

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 Shadowfiend

type Shadowfiend struct {
	core.Pet

	Priest          *Priest
	Shadowcrawl     *core.Spell
	ShadowcrawlAura *core.Aura
}

func (*Shadowfiend) ExecuteCustomRotation

func (shadowfiend *Shadowfiend) ExecuteCustomRotation(sim *core.Simulation)

func (*Shadowfiend) GetPet

func (shadowfiend *Shadowfiend) GetPet() *core.Pet

func (*Shadowfiend) Initialize

func (shadowfiend *Shadowfiend) Initialize()

func (*Shadowfiend) OnPetDisable

func (shadowfiend *Shadowfiend) OnPetDisable(sim *core.Simulation)

func (*Shadowfiend) Reset

func (shadowfiend *Shadowfiend) Reset(sim *core.Simulation)

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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