mage

package
v0.1.57 Latest Latest
Warning

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

Go to latest
Published: Nov 17, 2023 License: MIT Imports: 5 Imported by: 0

Documentation

Index

Constants

View Source
const (
	SpellFlagMage   = core.SpellFlagAgentReserved1
	BarrageSpells   = core.SpellFlagAgentReserved2
	HotStreakSpells = core.SpellFlagAgentReserved3
)
View Source
const ArcaneBlastBaseCastTime = time.Millisecond * 2500
View Source
const IgniteTicks = 2

If two spells proc Ignite at almost exactly the same time, the latter overwrites the former.

View Source
const T84PcProcChance = 0.2

Variables

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

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

		},
	},
})
View Source
var ItemSetFrostfireGarb = core.NewItemSet(core.ItemSet{
	Name: "Frostfire Garb",
	Bonuses: map[int32]core.ApplyEffect{
		2: func(agent core.Agent) {

		},
		4: func(agent core.Agent) {
			mage := agent.(MageAgent).GetMage()
			mage.bonusCritDamage += .05
		},
	},
})

T7 Naxx

View Source
var ItemSetGladiatorsRegalia = core.NewItemSet(core.ItemSet{
	Name: "Gladiator's Regalia",
	Bonuses: map[int32]core.ApplyEffect{
		2: func(agent core.Agent) {
			agent.GetCharacter().AddStat(stats.Resilience, 100)
			agent.GetCharacter().AddStat(stats.SpellPower, 29)
		},
		4: func(agent core.Agent) {
			agent.GetCharacter().AddStat(stats.SpellPower, 88)
		},
	},
})
View Source
var ItemSetKhadgarsRegalia = core.NewItemSet(core.ItemSet{
	Name:            "Khadgar's Regalia",
	AlternativeName: "Sunstrider's Regalia",
	Bonuses: map[int32]core.ApplyEffect{
		2: func(agent core.Agent) {

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

		},
	},
})

T9

View Source
var ItemSetKirinTorGarb = core.NewItemSet(core.ItemSet{
	Name:            "Kirin Tor Garb",
	AlternativeName: "Kirin'dor Garb",
	Bonuses: map[int32]core.ApplyEffect{
		2: func(agent core.Agent) {
			mage := agent.(MageAgent).GetMage()
			procAura := mage.NewTemporaryStatsAura("Kirin Tor 2pc", core.ActionID{SpellID: 64868}, stats.Stats{stats.SpellPower: 350}, 15*time.Second)

			icd := core.Cooldown{
				Timer:    agent.GetCharacter().NewTimer(),
				Duration: time.Second * 45,
			}
			procAura.Icd = &icd

			core.MakeProcTriggerAura(&mage.Unit, core.ProcTrigger{
				Name:       "Mage2pT8",
				Callback:   core.CallbackOnCastComplete,
				ProcChance: 0.25,
				Handler: func(sim *core.Simulation, spell *core.Spell, _ *core.SpellResult) {
					if !icd.IsReady(sim) {
						return
					}

					if spell == mage.ArcaneBlast || spell == mage.Fireball || spell == mage.FrostfireBolt || spell == mage.Frostbolt {
						icd.Use(sim)
						procAura.Activate(sim)
					}
				},
			})
		},
		4: func(agent core.Agent) {

		},
	},
})

T8 Ulduar

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

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

		},
	},
})

T6 Sunwell

View Source
var TalentTreeSizes = [3]int{30, 28, 28}

Functions

func RegisterMage

func RegisterMage()

Types

type Mage

type Mage struct {
	core.Character

	Talents  *proto.MageTalents
	Options  *proto.Mage_Options
	Rotation *proto.Mage_Rotation

	ArcaneBarrage           *core.Spell
	ArcaneBlast             *core.Spell
	ArcaneExplosion         *core.Spell
	ArcaneMissiles          *core.Spell
	ArcaneMissilesTickSpell *core.Spell
	Blizzard                *core.Spell
	DeepFreeze              *core.Spell
	Ignite                  *core.Spell
	LivingBomb              *core.Spell
	Fireball                *core.Spell
	FireBlast               *core.Spell
	Flamestrike             *core.Spell
	FlamestrikeRank8        *core.Spell
	Frostbolt               *core.Spell
	FrostfireBolt           *core.Spell
	IceLance                *core.Spell
	Pyroblast               *core.Spell
	Scorch                  *core.Spell
	MirrorImage             *core.Spell
	BlastWave               *core.Spell
	DragonsBreath           *core.Spell

	IcyVeins             *core.Spell
	SummonWaterElemental *core.Spell

	ArcaneBlastAura    *core.Aura
	ArcanePotencyAura  *core.Aura
	ArcanePowerAura    *core.Aura
	MissileBarrageAura *core.Aura
	ClearcastingAura   *core.Aura
	ScorchAuras        core.AuraArray

	HotStreakAura      *core.Aura
	CombustionAura     *core.Aura
	FingersOfFrostAura *core.Aura
	BrainFreezeAura    *core.Aura

	CritDebuffCategories core.ExclusiveCategoryArray
	// contains filtered or unexported fields
}

func NewMage

func NewMage(character *core.Character, options *proto.Player) *Mage

func (*Mage) AddPartyBuffs

func (mage *Mage) AddPartyBuffs(partyBuffs *proto.PartyBuffs)

func (*Mage) AddRaidBuffs

func (mage *Mage) AddRaidBuffs(raidBuffs *proto.RaidBuffs)

func (*Mage) ApplyTalents

func (mage *Mage) ApplyTalents()

func (*Mage) BloodmagesRegalia2pcAura added in v0.1.7

func (mage *Mage) BloodmagesRegalia2pcAura() *core.Aura

func (*Mage) GetCharacter

func (mage *Mage) GetCharacter() *core.Character

func (*Mage) GetMage

func (mage *Mage) GetMage() *Mage

func (*Mage) HasMajorGlyph

func (mage *Mage) HasMajorGlyph(glyph proto.MageMajorGlyph) bool

func (*Mage) HasMinorGlyph

func (mage *Mage) HasMinorGlyph(glyph proto.MageMinorGlyph) bool

func (*Mage) Initialize

func (mage *Mage) Initialize()

func (*Mage) NewMirrorImage

func (mage *Mage) NewMirrorImage() *MirrorImage

func (*Mage) NewWaterElemental

func (mage *Mage) NewWaterElemental(disobeyChance float64) *WaterElemental

func (*Mage) OnGCDReady

func (mage *Mage) OnGCDReady(sim *core.Simulation)

func (*Mage) Reset

func (mage *Mage) Reset(sim *core.Simulation)

type MageAgent

type MageAgent interface {
	GetMage() *Mage
}

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

type MirrorImage

type MirrorImage struct {
	core.Pet

	Frostbolt *core.Spell
	Fireblast *core.Spell
	// contains filtered or unexported fields
}

func (*MirrorImage) GetPet

func (mi *MirrorImage) GetPet() *core.Pet

func (*MirrorImage) Initialize

func (mi *MirrorImage) Initialize()

func (*MirrorImage) OnGCDReady

func (mi *MirrorImage) OnGCDReady(sim *core.Simulation)

func (*MirrorImage) Reset

func (mi *MirrorImage) Reset(_ *core.Simulation)

type WaterElemental

type WaterElemental struct {
	core.Pet

	Waterbolt *core.Spell
	// contains filtered or unexported fields
}

func (*WaterElemental) GetPet

func (we *WaterElemental) GetPet() *core.Pet

func (*WaterElemental) Initialize

func (we *WaterElemental) Initialize()

func (*WaterElemental) OnGCDReady

func (we *WaterElemental) OnGCDReady(sim *core.Simulation)

func (*WaterElemental) Reset

func (we *WaterElemental) Reset(_ *core.Simulation)

Jump to

Keyboard shortcuts

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