Documentation
¶
Index ¶
- Constants
- Variables
- func RegisterMage()
- type Mage
- func (mage *Mage) AddPartyBuffs(partyBuffs *proto.PartyBuffs)
- func (mage *Mage) AddRaidBuffs(raidBuffs *proto.RaidBuffs)
- func (mage *Mage) ApplyTalents()
- func (mage *Mage) ArcaneBlastCastTime(numStacks int32) time.Duration
- func (mage *Mage) ArcaneBlastManaCost(numStacks int32) float64
- func (mage *Mage) GetCharacter() *core.Character
- func (mage *Mage) GetMage() *Mage
- func (mage *Mage) Initialize()
- func (mage *Mage) NewWaterElemental(disobeyChance float64) *WaterElemental
- func (mage *Mage) OnGCDReady(sim *core.Simulation)
- func (mage *Mage) OnManaTick(sim *core.Simulation)
- func (mage *Mage) Reset(_ *core.Simulation)
- type MageAgent
- type WaterElemental
Constants ¶
View Source
const ArcaneBlastBaseCastTime = time.Millisecond * 2500
View Source
const ArcaneBlastBaseManaCost = 195.0
View Source
const SerpentCoilBraidID = 30720
View Source
const (
SpellFlagMage = core.SpellFlagAgentReserved1
)
Variables ¶
View Source
var ArcaneTalents = &proto.MageTalents{ ArcaneFocus: 5, ArcaneConcentration: 5, ArcaneImpact: 3, ArcaneMeditation: 3, PresenceOfMind: true, ArcaneMind: 5, ArcaneInstability: 3, ArcanePotency: 3, ArcanePower: true, SpellPower: 2, MindMastery: 5, ImprovedFrostbolt: 5, ElementalPrecision: 3, IceShards: 5, IcyVeins: true, PiercingIce: 5, FrostChanneling: 3, ColdSnap: true, }
View Source
var FireTalents = &proto.MageTalents{ ArcaneSubtlety: 2, ImprovedFireball: 5, Ignite: 5, Incineration: 2, Pyroblast: true, ImprovedScorch: 3, MasterOfElements: 3, PlayingWithFire: 3, CriticalMass: 3, BlastWave: true, FirePower: 5, Pyromaniac: 3, Combustion: true, MoltenFury: 2, EmpoweredFireball: 5, ImprovedFrostbolt: 4, ElementalPrecision: 3, IceShards: 5, IcyVeins: true, }
View Source
var FrostTalents = &proto.MageTalents{ ArcaneFocus: 5, ArcaneConcentration: 5, ArcaneImpact: 3, ArcaneMeditation: 3, ImprovedFrostbolt: 5, ElementalPrecision: 3, IceShards: 5, IcyVeins: true, PiercingIce: 5, FrostChanneling: 3, ColdSnap: true, ImprovedConeOfCold: 2, IceFloes: 2, WintersChill: 4, ArcticWinds: 5, EmpoweredFrostbolt: 5, SummonWaterElemental: true, }
View Source
var FullArcaneConsumes = &proto.Consumes{ Flask: proto.Flask_FlaskOfBlindingLight, Food: proto.Food_FoodBlackenedBasilisk, DefaultPotion: proto.Potions_SuperManaPotion, DefaultConjured: proto.Conjured_ConjuredMageManaEmerald, MainHandImbue: proto.WeaponImbue_WeaponImbueBrilliantWizardOil, }
View Source
var FullArcaneIndividualBuffs = &proto.IndividualBuffs{ BlessingOfKings: true, BlessingOfWisdom: proto.TristateEffect_TristateEffectImproved, Innervates: 1, }
View Source
var FullArcanePartyBuffs = &proto.PartyBuffs{ Drums: proto.Drums_DrumsOfBattle, Bloodlust: 1, MoonkinAura: proto.TristateEffect_TristateEffectRegular, ManaSpringTotem: proto.TristateEffect_TristateEffectImproved, ManaTideTotems: 1, WrathOfAirTotem: proto.TristateEffect_TristateEffectRegular, }
View Source
var FullDebuffs = &proto.Debuffs{ CurseOfElements: proto.TristateEffect_TristateEffectImproved, ImprovedSealOfTheCrusader: true, JudgementOfWisdom: true, Misery: true, }
View Source
var FullFireConsumes = &proto.Consumes{ Flask: proto.Flask_FlaskOfPureDeath, Food: proto.Food_FoodBlackenedBasilisk, DefaultPotion: proto.Potions_SuperManaPotion, DefaultConjured: proto.Conjured_ConjuredFlameCap, MainHandImbue: proto.WeaponImbue_WeaponImbueBrilliantWizardOil, }
View Source
var FullFirePartyBuffs = &proto.PartyBuffs{ Drums: proto.Drums_DrumsOfBattle, Bloodlust: 1, MoonkinAura: proto.TristateEffect_TristateEffectRegular, ManaSpringTotem: proto.TristateEffect_TristateEffectRegular, TotemOfWrath: 1, WrathOfAirTotem: proto.TristateEffect_TristateEffectRegular, }
View Source
var FullFrostConsumes = &proto.Consumes{ Flask: proto.Flask_FlaskOfPureDeath, Food: proto.Food_FoodBlackenedBasilisk, DefaultPotion: proto.Potions_SuperManaPotion, DefaultConjured: proto.Conjured_ConjuredMageManaEmerald, MainHandImbue: proto.WeaponImbue_WeaponImbueBrilliantWizardOil, }
View Source
var FullFrostPartyBuffs = FullFirePartyBuffs
View Source
var FullIndividualBuffs = &proto.IndividualBuffs{ BlessingOfKings: true, BlessingOfWisdom: proto.TristateEffect_TristateEffectImproved, }
View Source
var FullRaidBuffs = &proto.RaidBuffs{ GiftOfTheWild: proto.TristateEffect_TristateEffectImproved, }
View Source
var IgniteActionID = core.ActionID{SpellID: 12848}
View Source
var ItemSetAldorRegalia = core.NewItemSet(core.ItemSet{ Name: "Aldor Regalia", Bonuses: map[int32]core.ApplyEffect{ 2: func(agent core.Agent) { }, 4: func(agent core.Agent) { }, }, })
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) { }, }, })
View Source
var ItemSetTirisfalRegalia = core.NewItemSet(core.ItemSet{ Name: "Tirisfal Regalia", Bonuses: map[int32]core.ApplyEffect{ 2: func(agent core.Agent) { }, 4: func(agent core.Agent) { mage := agent.(MageAgent).GetMage() procAura := mage.NewTemporaryStatsAura("Tirisfal 4pc Proc", core.ActionID{SpellID: 37443}, stats.Stats{stats.SpellPower: 70}, time.Second*6) mage.RegisterAura(core.Aura{ Label: "Tirisfal 4pc", Duration: core.NeverExpires, OnReset: func(aura *core.Aura, sim *core.Simulation) { aura.Activate(sim) }, OnSpellHitDealt: func(aura *core.Aura, sim *core.Simulation, spell *core.Spell, spellEffect *core.SpellEffect) { if spellEffect.ProcMask.Matches(core.ProcMaskMeleeOrRanged) { return } if spellEffect.Outcome.Matches(core.OutcomeCrit) { procAura.Activate(sim) } }, }) }, }, })
View Source
var P1ArcaneGear = P1FireGear
View Source
var P1FireGear = items.EquipmentSpecFromJsonString(`{"items": [
{
"id": 29076,
"enchant": 29191,
"gems": [
34220,
24056
]
},
{
"id": 28134
},
{
"id": 29079,
"enchant": 28886,
"gems": [
31867,
24030
]
},
{
"id": 28766,
"enchant": 33150
},
{
"id": 21848,
"enchant": 24003,
"gems": [
31867,
31867
]
},
{
"id": 28411,
"enchant": 22534,
"gems": [
31867
]
},
{
"id": 21847,
"enchant": 28272,
"gems": [
31867,
24056
]
},
{
"id": 21846,
"gems": [
31867,
31867
]
},
{
"id": 24262,
"enchant": 24274,
"gems": [
31867,
31867,
31867
]
},
{
"id": 28517,
"enchant": 35297,
"gems": [
31867,
31867
]
},
{
"id": 28793,
"enchant": 22536
},
{
"id": 29172,
"enchant": 22536
},
{
"id": 29370
},
{
"id": 27683
},
{
"id": 28802,
"enchant": 22560
},
{
"id": 29270
},
{
"id": 28673
}
]}`)
View Source
var P1FrostGear = P1FireGear
View Source
var PlayerOptionsArcane = &proto.Player_Mage{ Mage: &proto.Mage{ Talents: ArcaneTalents, Options: arcaneMageOptions, Rotation: &proto.Mage_Rotation{ Type: proto.Mage_Rotation_Arcane, Arcane: &proto.Mage_Rotation_ArcaneRotation{ Filler: proto.Mage_Rotation_ArcaneRotation_ArcaneMissilesFrostbolt, ArcaneBlastsBetweenFillers: 3, StartRegenRotationPercent: 0.2, StopRegenRotationPercent: 0.3, }, }, }, }
View Source
var PlayerOptionsArcaneAOE = &proto.Player_Mage{ Mage: &proto.Mage{ Talents: ArcaneTalents, Options: arcaneMageOptions, Rotation: &proto.Mage_Rotation{ MultiTargetRotation: true, Aoe: &proto.Mage_Rotation_AoeRotation{ Rotation: proto.Mage_Rotation_AoeRotation_ArcaneExplosion, }, }, }, }
View Source
var PlayerOptionsFire = &proto.Player_Mage{ Mage: &proto.Mage{ Talents: FireTalents, Options: fireMageOptions, Rotation: &proto.Mage_Rotation{ Type: proto.Mage_Rotation_Fire, Fire: &proto.Mage_Rotation_FireRotation{ PrimarySpell: proto.Mage_Rotation_FireRotation_Fireball, MaintainImprovedScorch: true, WeaveFireBlast: true, }, }, }, }
View Source
var PlayerOptionsFireAOE = &proto.Player_Mage{ Mage: &proto.Mage{ Talents: FireTalents, Options: fireMageOptions, Rotation: &proto.Mage_Rotation{ MultiTargetRotation: true, Aoe: &proto.Mage_Rotation_AoeRotation{ Rotation: proto.Mage_Rotation_AoeRotation_Flamestrike, }, }, }, }
View Source
var PlayerOptionsFrost = &proto.Player_Mage{ Mage: &proto.Mage{ Talents: FrostTalents, Options: frostMageOptions, Rotation: &proto.Mage_Rotation{ Type: proto.Mage_Rotation_Frost, Frost: &proto.Mage_Rotation_FrostRotation{}, }, }, }
View Source
var PlayerOptionsFrostAOE = &proto.Player_Mage{ Mage: &proto.Mage{ Talents: FrostTalents, Options: frostMageOptions, Rotation: &proto.Mage_Rotation{ MultiTargetRotation: true, Aoe: &proto.Mage_Rotation_AoeRotation{ Rotation: proto.Mage_Rotation_AoeRotation_Blizzard, }, }, }, }
Functions ¶
func RegisterMage ¶
func RegisterMage()
Types ¶
type Mage ¶
type Mage struct {
core.Character
Talents proto.MageTalents
Options proto.Mage_Options
RotationType proto.Mage_Rotation_Type
ArcaneRotation proto.Mage_Rotation_ArcaneRotation
FireRotation proto.Mage_Rotation_FireRotation
FrostRotation proto.Mage_Rotation_FrostRotation
AoeRotation proto.Mage_Rotation_AoeRotation
UseAoeRotation bool
ArcaneBlast []*core.Spell
ArcaneExplosion *core.Spell
ArcaneMissiles *core.Spell
Blizzard *core.Spell
Ignite *core.Spell
Fireball *core.Spell
FireBlast *core.Spell
Flamestrike *core.Spell
Frostbolt *core.Spell
Pyroblast *core.Spell
Scorch *core.Spell
WintersChill *core.Spell
IcyVeins *core.Spell
SummonWaterElemental *core.Spell
ArcaneMissilesDot *core.Dot
IgniteDots []*core.Dot
FireballDot *core.Dot
FlamestrikeDot *core.Dot
PyroblastDot *core.Dot
ArcaneBlastAura *core.Aura
ClearcastingAura *core.Aura
ScorchAura *core.Aura
IgniteTickDamage []float64
// contains filtered or unexported fields
}
func (*Mage) AddPartyBuffs ¶
func (mage *Mage) AddPartyBuffs(partyBuffs *proto.PartyBuffs)
func (*Mage) AddRaidBuffs ¶
func (*Mage) ApplyTalents ¶
func (mage *Mage) ApplyTalents()
func (*Mage) ArcaneBlastCastTime ¶
func (*Mage) ArcaneBlastManaCost ¶
func (*Mage) GetCharacter ¶
func (*Mage) Initialize ¶
func (mage *Mage) Initialize()
func (*Mage) NewWaterElemental ¶
func (mage *Mage) NewWaterElemental(disobeyChance float64) *WaterElemental
func (*Mage) OnGCDReady ¶
func (mage *Mage) OnGCDReady(sim *core.Simulation)
func (*Mage) OnManaTick ¶
func (mage *Mage) OnManaTick(sim *core.Simulation)
func (*Mage) Reset ¶
func (mage *Mage) Reset(_ *core.Simulation)
type MageAgent ¶
type MageAgent interface {
GetMage() *Mage
}
Agent is a generic way to access underlying mage on any of the agents.
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(sim *core.Simulation)
Click to show internal directories.
Click to hide internal directories.