Documentation
¶
Index ¶
- Variables
- func RegisterWarlock()
- type PetAbilityType
- type PetConfig
- type Warlock
- func (warlock *Warlock) AddPartyBuffs(partyBuffs *proto.PartyBuffs)
- func (warlock *Warlock) AddRaidBuffs(raidBuffs *proto.RaidBuffs)
- func (warlock *Warlock) ApplyTalents()
- func (warlock *Warlock) GetCharacter() *core.Character
- func (warlock *Warlock) GetWarlock() *Warlock
- func (warlock *Warlock) Initialize()
- func (warlock *Warlock) NewWarlockPet() *WarlockPet
- func (warlock *Warlock) OnGCDReady(sim *core.Simulation)
- func (warlock *Warlock) OnManaTick(sim *core.Simulation)
- func (warlock *Warlock) Reset(sim *core.Simulation)
- func (warlock *Warlock) ShouldCastCurseOfElements(sim *core.Simulation, target *core.Unit, curse proto.Warlock_Rotation_Curse) bool
- type WarlockAgent
- type WarlockPet
- func (wp *WarlockPet) GetPet() *core.Pet
- func (wp *WarlockPet) Initialize()
- func (wp *WarlockPet) NewPetAbility(abilityType PetAbilityType, isPrimary bool) *core.Spell
- func (wp *WarlockPet) OnGCDReady(sim *core.Simulation)
- func (wp *WarlockPet) Reset(sim *core.Simulation)
- func (wp *WarlockPet) TryCast(sim *core.Simulation, target *core.Unit, spell *core.Spell) bool
Constants ¶
This section is empty.
Variables ¶
View Source
var DefaultDestroWarlock = &proto.Player_Warlock{ Warlock: &proto.Warlock{ Talents: defaultDestroTalents, Options: defaultDestroOptions, Rotation: defaultDestroRotation, }, }
View Source
var FullConsumes = &proto.Consumes{ Flask: proto.Flask_FlaskOfPureDeath, DefaultPotion: proto.Potions_DestructionPotion, DefaultConjured: proto.Conjured_ConjuredDarkRune, Food: proto.Food_FoodBlackenedBasilisk, }
View Source
var FullDebuffs = &proto.Debuffs{ JudgementOfWisdom: true, Misery: true, BloodFrenzy: true, ExposeArmor: proto.TristateEffect_TristateEffectImproved, FaerieFire: proto.TristateEffect_TristateEffectImproved, CurseOfRecklessness: true, HuntersMark: proto.TristateEffect_TristateEffectImproved, ExposeWeaknessUptime: 1, ExposeWeaknessHunterAgility: 800, }
View Source
var FullIndividualBuffs = &proto.IndividualBuffs{ BlessingOfKings: true, BlessingOfSalvation: true, }
View Source
var FullPartyBuffs = &proto.PartyBuffs{ Bloodlust: 1, Drums: proto.Drums_DrumsOfBattle, ManaSpringTotem: proto.TristateEffect_TristateEffectRegular, WrathOfAirTotem: proto.TristateEffect_TristateEffectRegular, TotemOfWrath: 1, }
View Source
var FullRaidBuffs = &proto.RaidBuffs{ ArcaneBrilliance: true, GiftOfTheWild: proto.TristateEffect_TristateEffectImproved, DivineSpirit: proto.TristateEffect_TristateEffectImproved, }
View Source
var ItemSetCorruptorRaiment = core.NewItemSet(core.ItemSet{ Name: "Corruptor Raiment", Bonuses: map[int32]core.ApplyEffect{ 2: func(agent core.Agent) { }, 4: func(agent core.Agent) { }, }, })
View Source
var ItemSetMaleficRaiment = core.NewItemSet(core.ItemSet{ Name: "Malefic Raiment", Bonuses: map[int32]core.ApplyEffect{ 2: func(agent core.Agent) { }, 4: func(agent core.Agent) { }, }, })
View Source
var ItemSetOblivionRaiment = core.NewItemSet(core.ItemSet{ Name: "Oblivion Raiment", Bonuses: map[int32]core.ApplyEffect{ 2: func(agent core.Agent) { }, 4: func(agent core.Agent) { }, }, })
View Source
var ItemSetVoidheartRaiment = core.NewItemSet(core.ItemSet{ Name: "Voidheart Raiment", Bonuses: map[int32]core.ApplyEffect{ 2: func(agent core.Agent) { warlock := agent.(WarlockAgent).GetWarlock() shadowBonus := warlock.NewTemporaryStatsAura("Shadowflame", core.ActionID{SpellID: 37377}, stats.Stats{stats.ShadowSpellPower: 135}, time.Second*15) fireBonus := warlock.NewTemporaryStatsAura("Shadowflame Hellfire", core.ActionID{SpellID: 39437}, stats.Stats{stats.ShadowSpellPower: 135}, time.Second*15) warlock.RegisterAura(core.Aura{ Label: "Voidheart Raiment 2pc", Duration: core.NeverExpires, OnReset: func(aura *core.Aura, sim *core.Simulation) { aura.Activate(sim) }, OnCastComplete: func(aura *core.Aura, sim *core.Simulation, spell *core.Spell) { if sim.RandomFloat("cycl4p") > 0.05 { return } if spell.SpellSchool.Matches(core.SpellSchoolShadow) { shadowBonus.Activate(sim) } if spell.SpellSchool.Matches(core.SpellSchoolFire) { fireBonus.Activate(sim) } }, }) }, 4: func(agent core.Agent) { }, }, })
View Source
var PetConfigs = map[proto.Warlock_Options_Summon]PetConfig{ proto.Warlock_Options_Felgaurd: { Name: "Felguard", Melee: true, PrimaryAbility: Cleave, SecondaryAbility: Intercept, ManaIntRatio: 11.5, Stats: stats.Stats{ stats.AttackPower: 20, stats.Stamina: 280, stats.Strength: 153, stats.Agility: 108, stats.Intellect: 133, stats.Mana: 893, stats.Spirit: 122, stats.MP5: 48, }, }, proto.Warlock_Options_Imp: { Name: "Imp", ManaIntRatio: 4.9, Melee: false, PrimaryAbility: Firebolt, Stats: stats.Stats{ stats.MP5: 123, stats.Stamina: 101, stats.Strength: 145, stats.Agility: 38, stats.Intellect: 327, stats.Mana: 756, stats.Spirit: 263, }, }, proto.Warlock_Options_Succubus: { Name: "Succubus", ManaIntRatio: 11.5, Melee: true, PrimaryAbility: LashOfPain, Stats: stats.Stats{ stats.AttackPower: 20, stats.Stamina: 280, stats.Strength: 153, stats.Agility: 108, stats.Intellect: 133, stats.Mana: 893, stats.Spirit: 122, stats.MP5: 48, }, }, }
View Source
var Phase4Gear = items.EquipmentSpecFromJsonString(`{"items": [
{
"id": 31051,
"enchant": 29191,
"gems": [
34220,
32218
]
},
{
"id": 33281
},
{
"id": 31054,
"enchant": 28886,
"gems": [
32215,
32218
]
},
{
"id": 32524,
"enchant": 33150
},
{
"id": 30107,
"enchant": 24003,
"gems": [
32196,
32196,
32196
]
},
{
"id": 32586,
"enchant": 22534
},
{
"id": 31050,
"enchant": 28272,
"gems": [
32196
]
},
{
"id": 30888,
"gems": [
32196,
32196
]
},
{
"id": 31053,
"enchant": 24274,
"gems": [
32196
]
},
{
"id": 32239,
"enchant": 35297,
"gems": [
32218,
32215
]
},
{
"id": 32527,
"enchant": 22536
},
{
"id": 33497,
"enchant": 22536
},
{
"id": 32483
},
{
"id": 33829
},
{
"id": 32374,
"enchant": 22561
},
{},
{
"id": 33192,
"gems": [
32215
]
}
]}`)
Functions ¶
func RegisterWarlock ¶
func RegisterWarlock()
Types ¶
type PetAbilityType ¶
type PetAbilityType byte
const ( Unknown PetAbilityType = iota Cleave Intercept LashOfPain Firebolt )
type PetConfig ¶
type PetConfig struct {
Name string
// DamageMultiplier float64
Melee bool
Stats stats.Stats
ManaIntRatio float64
// Randomly select between abilities instead of using a prio.
RandomSelection bool
PrimaryAbility PetAbilityType
SecondaryAbility PetAbilityType
}
type Warlock ¶
type Warlock struct {
core.Character
Talents proto.WarlockTalents
Options proto.Warlock_Options
Rotation proto.Warlock_Rotation
Shadowbolt *core.Spell
Incinerate *core.Spell
Immolate *core.Spell
ImmolateDot *core.Dot
UnstableAff *core.Spell
UnstableAffDot *core.Dot
Corruption *core.Spell
CorruptionDot *core.Dot
SiphonLife *core.Spell
SiphonLifeDot *core.Dot
LifeTap *core.Spell
CurseOfElements *core.Spell
CurseOfElementsAura *core.Aura
CurseOfRecklessness *core.Spell
CurseOfRecklessnessAura *core.Aura
CurseOfTongues *core.Spell
CurseOfTonguesAura *core.Aura
CurseOfAgony *core.Spell
CurseOfAgonyDot *core.Dot
CurseOfDoom *core.Spell
CurseOfDoomDot *core.Dot
AmplifyCurse *core.Spell
AmplifyCurseAura *core.Aura
Seeds []*core.Spell
SeedDots []*core.Dot
NightfallProcAura *core.Aura
ImpShadowboltAura *core.Aura
Pet *WarlockPet
DoingRegen bool
}
func (*Warlock) AddPartyBuffs ¶
func (warlock *Warlock) AddPartyBuffs(partyBuffs *proto.PartyBuffs)
func (*Warlock) AddRaidBuffs ¶
func (*Warlock) ApplyTalents ¶
func (warlock *Warlock) ApplyTalents()
func (*Warlock) GetCharacter ¶
func (*Warlock) GetWarlock ¶
func (*Warlock) Initialize ¶
func (warlock *Warlock) Initialize()
func (*Warlock) NewWarlockPet ¶
func (warlock *Warlock) NewWarlockPet() *WarlockPet
func (*Warlock) OnGCDReady ¶
func (warlock *Warlock) OnGCDReady(sim *core.Simulation)
func (*Warlock) OnManaTick ¶
func (warlock *Warlock) OnManaTick(sim *core.Simulation)
func (*Warlock) Reset ¶
func (warlock *Warlock) Reset(sim *core.Simulation)
func (*Warlock) ShouldCastCurseOfElements ¶
func (warlock *Warlock) ShouldCastCurseOfElements(sim *core.Simulation, target *core.Unit, curse proto.Warlock_Rotation_Curse) bool
type WarlockAgent ¶
type WarlockAgent interface {
GetWarlock() *Warlock
}
Agent is a generic way to access underlying warlock on any of the agents.
type WarlockPet ¶
func (*WarlockPet) GetPet ¶
func (wp *WarlockPet) GetPet() *core.Pet
func (*WarlockPet) Initialize ¶
func (wp *WarlockPet) Initialize()
func (*WarlockPet) NewPetAbility ¶
func (wp *WarlockPet) NewPetAbility(abilityType PetAbilityType, isPrimary bool) *core.Spell
func (*WarlockPet) OnGCDReady ¶
func (wp *WarlockPet) OnGCDReady(sim *core.Simulation)
func (*WarlockPet) Reset ¶
func (wp *WarlockPet) Reset(sim *core.Simulation)
func (*WarlockPet) TryCast ¶
func (wp *WarlockPet) TryCast(sim *core.Simulation, target *core.Unit, spell *core.Spell) bool
Returns whether the ability was successfully cast.
Click to show internal directories.
Click to hide internal directories.