warlock

package
v0.0.14 Latest Latest
Warning

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

Go to latest
Published: Jun 23, 2024 License: MIT Imports: 7 Imported by: 0

Documentation

Index

Constants

View Source
const (
	SpellCode_WarlockNone int32 = iota
	SpellCode_WarlockShadowCleave
	SpellCode_Corruption
	SpellCode_DrainLife
)
View Source
const SpellFlagHaunt = core.SpellFlagAgentReserved1
View Source
const SpellFlagLoF = core.SpellFlagAgentReserved2 // Spell is affected by Lake of Fire debuff

Variables

View Source
var ItemSetNightmareProphetsGarb = core.NewItemSet(core.ItemSet{
	Name: "Nightmare Prophet's Garb",
	Bonuses: map[int32]core.ApplyEffect{
		2: func(agent core.Agent) {
			c := agent.GetCharacter()
			c.AddStat(stats.MeleeHit, 1)
			c.AddStat(stats.SpellHit, 1)
		},
		3: func(agent core.Agent) {
			warlock := agent.(WarlockAgent).GetWarlock()

			warlock.shadowSparkAura = warlock.GetOrRegisterAura(core.Aura{
				Label:     "Shadow Spark Proc",
				ActionID:  core.ActionID{SpellID: 450013},
				Duration:  time.Second * 12,
				MaxStacks: 2,
			})

			core.MakePermanent(warlock.GetOrRegisterAura(core.Aura{
				Label: "Shadow Spark",
				OnSpellHitDealt: func(aura *core.Aura, sim *core.Simulation, spell *core.Spell, result *core.SpellResult) {
					if spell.SpellCode == SpellCode_WarlockShadowCleave && result.Landed() {
						warlock.shadowSparkAura.Activate(sim)
						warlock.shadowSparkAura.AddStack(sim)
					}
				},
			}))
		},
	},
})
View Source
var TalentTreeSizes = [3]int{17, 17, 16}

Functions

This section is empty.

Types

type APLValueWarlockCurrentPetMana added in v0.0.6

type APLValueWarlockCurrentPetMana struct {
	core.DefaultAPLValueImpl
	// contains filtered or unexported fields
}

func (*APLValueWarlockCurrentPetMana) GetFloat added in v0.0.6

func (value *APLValueWarlockCurrentPetMana) GetFloat(sim *core.Simulation) float64

func (*APLValueWarlockCurrentPetMana) String added in v0.0.6

func (value *APLValueWarlockCurrentPetMana) String() string

func (*APLValueWarlockCurrentPetMana) Type added in v0.0.6

type APLValueWarlockCurrentPetManaPercent added in v0.0.6

type APLValueWarlockCurrentPetManaPercent struct {
	core.DefaultAPLValueImpl
	// contains filtered or unexported fields
}

func (*APLValueWarlockCurrentPetManaPercent) GetFloat added in v0.0.6

func (*APLValueWarlockCurrentPetManaPercent) String added in v0.0.6

func (*APLValueWarlockCurrentPetManaPercent) Type added in v0.0.6

type APLValueWarlockShouldRecastDrainSoul

type APLValueWarlockShouldRecastDrainSoul struct {
	core.DefaultAPLValueImpl
	// contains filtered or unexported fields
}

func (*APLValueWarlockShouldRecastDrainSoul) GetBool

func (*APLValueWarlockShouldRecastDrainSoul) String

func (*APLValueWarlockShouldRecastDrainSoul) Type

type APLValueWarlockShouldRefreshCorruption

type APLValueWarlockShouldRefreshCorruption struct {
	core.DefaultAPLValueImpl
	// contains filtered or unexported fields
}

func (*APLValueWarlockShouldRefreshCorruption) GetBool

func (*APLValueWarlockShouldRefreshCorruption) String

func (*APLValueWarlockShouldRefreshCorruption) Type

type Warlock

type Warlock struct {
	core.Character
	Talents *proto.WarlockTalents
	Options *proto.WarlockOptions

	Pet *WarlockPet

	ChaosBolt          *core.Spell
	Conflagrate        *core.Spell
	Corruption         []*core.Spell
	DarkPact           *core.Spell
	DrainSoul          *core.Spell
	Haunt              *core.Spell
	Immolate           []*core.Spell
	Incinerate         *core.Spell
	LifeTap            *core.Spell
	SearingPain        *core.Spell
	ShadowBolt         *core.Spell
	ShadowCleave       []*core.Spell
	Shadowburn         *core.Spell
	SoulFire           *core.Spell
	DemonicGrace       *core.Spell
	DrainLife          *core.Spell
	RainOfFire         *core.Spell
	SiphonLife         *core.Spell
	DeathCoil          *core.Spell
	UnstableAffliction *core.Spell

	CurseOfElements          *core.Spell
	CurseOfElementsAuras     core.AuraArray
	CurseOfShadow            *core.Spell
	CurseOfShadowAuras       core.AuraArray
	CurseOfRecklessness      *core.Spell
	CurseOfRecklessnessAuras core.AuraArray
	CurseOfWeakness          *core.Spell
	CurseOfWeaknessAuras     core.AuraArray
	CurseOfTongues           *core.Spell
	CurseOfTonguesAuras      core.AuraArray
	CurseOfAgony             *core.Spell
	CurseOfDoom              *core.Spell
	AmplifyCurse             *core.Spell
	Shadowflame              *core.Spell
	ShadowflameDot           *core.Spell

	DemonicKnowledgeAura    *core.Aura
	HauntDebuffAuras        core.AuraArray
	ImmolationAura          *core.Spell
	IncinerateAura          *core.Aura
	Metamorphosis           *core.Spell
	MetamorphosisAura       *core.Aura
	NightfallProcAura       *core.Aura
	PyroclasmAura           *core.Aura
	DemonicGraceAura        *core.Aura
	AmplifyCurseAura        *core.Aura
	ImprovedShadowBoltAuras core.AuraArray
	LakeOfFireAuras         core.AuraArray

	// The sum total of demonic pact spell power * seconds.
	DPSPAggregate float64
	PreviousTime  time.Duration
	// contains filtered or unexported fields
}

func NewWarlock

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

func (*Warlock) AddRaidBuffs

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

func (*Warlock) ApplyRunes

func (warlock *Warlock) ApplyRunes()

func (*Warlock) ApplyTalents

func (warlock *Warlock) ApplyTalents()

func (*Warlock) EverlastingAfflictionRefresh

func (warlock *Warlock) EverlastingAfflictionRefresh(sim *core.Simulation, target *core.Unit)

func (*Warlock) GetCharacter

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

func (*Warlock) GetWarlock

func (warlock *Warlock) GetWarlock() *Warlock

func (*Warlock) HasRune

func (warlock *Warlock) HasRune(rune proto.WarlockRune) bool

func (*Warlock) Initialize

func (warlock *Warlock) Initialize()

func (*Warlock) InvocationRefresh

func (warlock *Warlock) InvocationRefresh(sim *core.Simulation, dot *core.Dot)

func (*Warlock) NewAPLValue

func (warlock *Warlock) NewAPLValue(rot *core.APLRotation, config *proto.APLValue) core.APLValue

func (*Warlock) NewWarlockPet

func (warlock *Warlock) NewWarlockPet() *WarlockPet

TODO: Classic warlock pet stats

func (*Warlock) OnGCDReady

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

func (*Warlock) Reset

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

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

func (wp *WarlockPet) ExecuteCustomRotation(sim *core.Simulation)

func (*WarlockPet) GetPet

func (wp *WarlockPet) GetPet() *core.Pet

func (*WarlockPet) Initialize

func (wp *WarlockPet) Initialize()

TODO: Classic warlock pet abilities

func (*WarlockPet) Reset

func (wp *WarlockPet) Reset(_ *core.Simulation)

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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