warlock

package
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: Mar 1, 2023 License: MIT Imports: 5 Imported by: 0

Documentation

Overview

importing dependencies

Index

Constants

View Source
const PetExpertiseScale = 1.53

Variables

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

		},
	},
})

T6

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.RegisterAura(core.Aura{
				Label:    "Shadowflame",
				Duration: time.Second * 15,
				ActionID: core.ActionID{SpellID: 37377},
			})

			fireBonus := warlock.RegisterAura(core.Aura{
				Label:    "Shadowflame Hellfire",
				Duration: time.Second * 15,
				ActionID: core.ActionID{SpellID: 39437},
			})

			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 TalentTreeSizes = [3]int{28, 27, 26}

Functions

func RegisterWarlock

func RegisterWarlock()

Types

type CastReadyness

type CastReadyness func(*core.Simulation) time.Duration

type InfernalPet

type InfernalPet struct {
	core.Pet
	// contains filtered or unexported fields
}

func (*InfernalPet) GetPet

func (infernal *InfernalPet) GetPet() *core.Pet

func (*InfernalPet) Initialize

func (infernal *InfernalPet) Initialize()

func (*InfernalPet) OnGCDReady

func (infernal *InfernalPet) OnGCDReady(sim *core.Simulation)

func (*InfernalPet) Reset

func (infernal *InfernalPet) Reset(sim *core.Simulation)

type PetAbilityType

type PetAbilityType byte
const (
	Unknown PetAbilityType = iota
	Cleave
	Intercept
	LashOfPain
	ShadowBite
	Firebolt
)

type ProcTracker

type ProcTracker struct {
	// contains filtered or unexported fields
}

type SpellRotation

type SpellRotation struct {
	Spell    *core.Spell
	CastIn   CastReadyness
	Priority int
}

type Warlock

type Warlock struct {
	core.Character
	Talents  *proto.WarlockTalents
	Options  *proto.Warlock_Options
	Rotation *proto.Warlock_Rotation

	Pet *WarlockPet

	ShadowBolt         *core.Spell
	Incinerate         *core.Spell
	Immolate           *core.Spell
	UnstableAffliction *core.Spell
	Corruption         *core.Spell
	Haunt              *core.Spell
	LifeTap            *core.Spell
	DarkPact           *core.Spell
	ChaosBolt          *core.Spell
	SoulFire           *core.Spell
	Conflagrate        *core.Spell
	DrainSoul          *core.Spell
	Shadowburn         *core.Spell

	CurseOfElements      *core.Spell
	CurseOfElementsAuras core.AuraArray
	CurseOfWeakness      *core.Spell
	CurseOfWeaknessAuras core.AuraArray
	CurseOfTongues       *core.Spell
	CurseOfTonguesAuras  core.AuraArray
	CurseOfAgony         *core.Spell
	CurseOfDoom          *core.Spell
	Seed                 *core.Spell
	SeedDamageTracker    []float64

	NightfallProcAura      *core.Aura
	EradicationAura        *core.Aura
	DemonicEmpowerment     *core.Spell
	DemonicEmpowermentAura *core.Aura
	DemonicPactAura        *core.Aura
	DemonicSoulAura        *core.Aura
	Metamorphosis          *core.Spell
	MetamorphosisAura      *core.Aura
	ImmolationAura         *core.Spell
	HauntDebuffAuras       core.AuraArray
	MoltenCoreAura         *core.Aura
	DecimationAura         *core.Aura
	PyroclasmAura          *core.Aura
	BackdraftAura          *core.Aura
	EmpoweredImpAura       *core.Aura
	GlyphOfLifeTapAura     *core.Aura
	SpiritsoftheDamnedAura *core.Aura

	Infernal *InfernalPet
	Inferno  *core.Spell

	// Rotation related memory
	CorruptionRolloverPower float64
	DrainSoulRolloverPower  float64
	// The sum total of demonic pact spell power * seconds.
	DPSPAggregate  float64
	PreviousTime   time.Duration
	SpellsRotation []SpellRotation

	CritDebuffCategory *core.ExclusiveCategory
	// contains filtered or unexported fields
}

func NewWarlock

func NewWarlock(character core.Character, options *proto.Player) *Warlock

func (*Warlock) AddRaidBuffs

func (warlock *Warlock) AddRaidBuffs(raidBuffs *proto.RaidBuffs)

func (*Warlock) ApplyTalents

func (warlock *Warlock) ApplyTalents()

func (*Warlock) DSCooldownSync

func (warlock *Warlock) DSCooldownSync(actionID core.ActionID, isPotion bool)

func (*Warlock) DSProcCheck

func (warlock *Warlock) DSProcCheck(sim *core.Simulation, castTime time.Duration) bool

func (*Warlock) GetCharacter

func (warlock *Warlock) GetCharacter() *core.Character

func (*Warlock) GetWarlock

func (warlock *Warlock) GetWarlock() *Warlock

func (*Warlock) GrandFirestoneBonus

func (warlock *Warlock) GrandFirestoneBonus() float64

func (*Warlock) GrandSpellstoneBonus

func (warlock *Warlock) GrandSpellstoneBonus() float64

func (*Warlock) HasMajorGlyph

func (warlock *Warlock) HasMajorGlyph(glyph proto.WarlockMajorGlyph) bool

func (*Warlock) HasMinorGlyph

func (warlock *Warlock) HasMinorGlyph(glyph proto.WarlockMinorGlyph) bool

func (*Warlock) Initialize

func (warlock *Warlock) Initialize()

func (*Warlock) LifeTapOrDarkPact

func (warlock *Warlock) LifeTapOrDarkPact(sim *core.Simulation)

Regen Spells: Casts the regen spell that will give you the most mana, includes a error whenever we cast pact on full mana.

func (*Warlock) NewInfernal

func (warlock *Warlock) NewInfernal() *InfernalPet

func (*Warlock) NewWarlockPet

func (warlock *Warlock) NewWarlockPet() *WarlockPet

func (*Warlock) OnGCDReady

func (warlock *Warlock) OnGCDReady(sim *core.Simulation)

This function is an intermediary, it is used when sim has a GCD ready, not much to see here.

func (*Warlock) Reset

func (warlock *Warlock) Reset(sim *core.Simulation)

func (*Warlock) ShadowEmbraceDebuffAura

func (warlock *Warlock) ShadowEmbraceDebuffAura(target *core.Unit) *core.Aura

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

type WarlockPet struct {
	core.Pet

	DemonicEmpowermentAura *core.Aura
	// contains filtered or unexported fields
}

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

TODO: this seems pointless Returns whether the ability was successfully cast.

Jump to

Keyboard shortcuts

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