mage

package
v0.0.0 Latest Latest
Warning

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

Go to latest
Published: Jun 22, 2025 License: MIT Imports: 6 Imported by: 0

Documentation

Index

Constants

View Source
const (
	MageSpellFlagNone      int64 = 0
	MageSpellArcaneBarrage int64 = 1 << iota
	MageSpellArcaneBlast
	MageSpellArcaneExplosion
	MageSpellArcanePower
	MageSpellArcaneMissilesCast
	MageSpellArcaneMissilesTick
	MageSpellBlastWave
	MageSpellBlizzard
	MageSpellConeOfCold
	MageSpellDeepFreeze
	MageSpellDragonsBreath
	MageSpellEvocation
	MageSpellFireBlast
	MageSpellFireball
	MageSpellFlamestrike
	MageSpellFlameOrb
	MageSpellFocusMagic
	MageSpellFreeze
	MageSpellFrostArmor
	MageSpellFrostbolt
	MageSpellFrostBomb
	MageSpellFrostBombExplosion
	MageSpellFrostfireBolt
	MageSpellFrostfireOrb
	MageSpellFrostNova
	MageSpellFrozenOrb
	MageSpellFrozenOrbTick
	MageSpellIcicle
	MageSpellIceFloes
	MageSpellIceLance
	MageSpellIcyVeins
	MageSpellIgnite
	MageSpellLivingBombExplosion
	MageSpellLivingBombDot
	MageSpellMageArmor
	MageSpellManaGems
	MageSpellMirrorImage
	MageSpellMoltenArmor
	MageSpellNetherTempest
	MageSpellPresenceOfMind
	MageSpellPyroblast
	MageSpellPyroblastDot
	MagespellRuneOfPower
	MageSpellScorch
	MageSpellCombustion
	MageSpellCombustionApplication
	MageMirrorImageSpellArcaneBlast
	MageWaterElementalSpellWaterBolt
	MageSpellLast
	MageSpellsAll        = MageSpellLast<<1 - 1
	MageSpellLivingBomb  = MageSpellLivingBombDot | MageSpellLivingBombExplosion
	MageSpellFireMastery = MageSpellLivingBombDot | MageSpellPyroblastDot | MageSpellCombustion // Ignite done manually in spell due to unique mechanic
	MageSpellFire        = MageSpellBlastWave | MageSpellCombustionApplication | MageSpellDragonsBreath | MageSpellFireball |
		MageSpellFireBlast | MageSpellFlamestrike | MageSpellFrostfireBolt | MageSpellIgnite |
		MageSpellLivingBomb | MageSpellPyroblast | MageSpellScorch
	MageSpellChill        = MageSpellFrostbolt | MageSpellFrostfireBolt
	MageSpellBrainFreeze  = MageSpellFireball | MageSpellFrostfireBolt
	MageSpellsAllDamaging = MageSpellArcaneBarrage | MageSpellArcaneBlast | MageSpellArcaneExplosion | MageSpellArcaneMissilesTick | MageSpellBlastWave | MageSpellBlizzard | MageSpellDeepFreeze |
		MageSpellDragonsBreath | MageSpellFireBlast | MageSpellFireball | MageSpellFlamestrike | MageSpellFrostbolt | MageSpellFrostfireBolt |
		MageSpellFrostfireOrb | MageSpellIceLance | MageSpellLivingBombExplosion | MageSpellLivingBombDot | MageSpellPyroblast | MageSpellPyroblastDot | MageSpellScorch
	MageSpellInstantCast = MageSpellArcaneBarrage | MageSpellArcaneMissilesCast | MageSpellArcaneMissilesTick |
		MageSpellFireBlast | MageSpellArcaneExplosion | MageSpellBlastWave |
		MageSpellCombustionApplication | MageSpellConeOfCold | MageSpellDeepFreeze |
		MageSpellDragonsBreath | MageSpellIceLance | MageSpellManaGems | MageSpellMirrorImage |
		MageSpellPresenceOfMind | MageSpellLivingBombDot | MageSpellFrostBomb | MageSpellNetherTempest
	MageSpellExtraResult = MageSpellLivingBombExplosion | MageSpellArcaneMissilesTick | MageSpellBlizzard
)

Variables

View Source
var ItemSetRegaliaOfTheBurningScroll = core.NewItemSet(core.ItemSet{
	Name: "Regalia of the Burning Scroll",
	Bonuses: map[int32]core.ApplySetBonus{

		2: func(_ core.Agent, setBonusAura *core.Aura) {
			setBonusAura.AttachSpellMod(core.SpellModConfig{
				Kind:       core.SpellMod_DamageDone_Pct,
				ClassMask:  MageSpellIceLance,
				FloatValue: 0.12,
			}).AttachSpellMod(core.SpellModConfig{
				Kind:       core.SpellMod_DamageDone_Pct,
				ClassMask:  MageSpellArcaneMissilesTick,
				FloatValue: 0.07,
			}).AttachSpellMod(core.SpellModConfig{
				Kind:       core.SpellMod_DamageDone_Pct,
				ClassMask:  MageSpellPyroblast | MageSpellPyroblastDot,
				FloatValue: 0.08,
			})
			setBonusAura.ExposeToAPL(123097)
		},

		4: func(agent core.Agent, setBonusAura *core.Aura) {
			mage := agent.(MageAgent).GetMage()
			mage.T14_4pc = setBonusAura

			setBonusAura.AttachSpellMod(core.SpellModConfig{
				FloatValue: 0.5,
				Kind:       core.SpellMod_Cooldown_Multiplier,
				ClassMask:  MageSpellIcyVeins,
			}).AttachSpellMod(core.SpellModConfig{
				FloatValue: 1 - 0.2,
				Kind:       core.SpellMod_Cooldown_Multiplier,
				ClassMask:  MageSpellCombustion,
			})
			setBonusAura.ExposeToAPL(123101)
		},
	},
})

T14

Functions

This section is empty.

Types

type Mage

type Mage struct {
	core.Character

	Talents       *proto.MageTalents
	Options       *proto.MageOptions
	ArcaneOptions *proto.ArcaneMage_Options
	FireOptions   *proto.FireMage_Options
	FrostOptions  *proto.FrostMage_Options

	Combustion           *core.Spell
	Ignite               *core.Spell
	LivingBomb           *core.Spell
	NetherTempest        *core.Spell
	FireBlast            *core.Spell
	FlameOrbExplode      *core.Spell
	Flamestrike          *core.Spell
	FlamestrikeBW        *core.Spell
	FrostfireOrb         *core.Spell
	Pyroblast            *core.Spell
	SummonWaterElemental *core.Spell
	SummonMirrorImages   *core.Spell
	IcyVeins             *core.Spell
	Icicle               *core.Spell

	InvocationAura     *core.Aura
	RuneOfPowerAura    *core.Aura
	PresenceOfMindAura *core.Aura
	FingersOfFrostAura *core.Aura
	BrainFreezeAura    *core.Aura
	IcyVeinsAura       *core.Aura
	IceFloesAura       *core.Aura
	IciclesAura        *core.Aura
	ArcaneChargesAura  *core.Aura

	ClassSpellScaling float64
	Icicles           []float64

	// Item sets
	T12_4pc *core.Aura
	T13_4pc *core.Aura
	T14_4pc *core.Aura
	// contains filtered or unexported fields
}

func NewMage

func NewMage(character *core.Character, options *proto.Player, mageOptions *proto.MageOptions) *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) GainIcicle

func (mage *Mage) GainIcicle(sim *core.Simulation, target *core.Unit, baseDamage float64)

func (*Mage) GetCharacter

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

func (*Mage) GetFlameStrikeConfig

func (mage *Mage) GetFlameStrikeConfig(spellId int32, isProc bool) core.SpellConfig

func (*Mage) GetFrostMasteryBonus

func (mage *Mage) GetFrostMasteryBonus() float64

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) ProcFingersOfFrost

func (mage *Mage) ProcFingersOfFrost(sim *core.Simulation, spell *core.Spell)

func (*Mage) Reset

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

func (*Mage) SpendIcicle

func (mage *Mage) SpendIcicle(sim *core.Simulation, target *core.Unit, damage float64)

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
	Fireball    *core.Spell
	ArcaneBlast *core.Spell
	// contains filtered or unexported fields
}

func (*MirrorImage) ExecuteCustomRotation

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

func (*MirrorImage) GetPet

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

func (*MirrorImage) Initialize

func (mi *MirrorImage) Initialize()

func (*MirrorImage) Reset

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

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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