shadow

package
v1.9.3 Latest Latest
Warning

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

Go to latest
Published: Mar 13, 2026 License: MIT Imports: 6 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var FullConsumes = &proto.Consumes{
	Flask:              proto.Flask_FlaskOfPureDeath,
	Food:               proto.Food_FoodBlackenedBasilisk,
	DefaultPotion:      proto.Potions_SuperManaPotion,
	NumStartingPotions: 1,
	DefaultConjured:    proto.Conjured_ConjuredDarkRune,
	MainHandImbue:      proto.WeaponImbue_WeaponImbueBrilliantWizardOil,
}
View Source
var FullDebuffs = &proto.Debuffs{
	JudgementOfWisdom: true,
	CurseOfElements:   proto.TristateEffect_TristateEffectImproved,
}
View Source
var FullIndividualBuffs = &proto.IndividualBuffs{
	BlessingOfKings:  true,
	BlessingOfWisdom: proto.TristateEffect_TristateEffectImproved,
}
View Source
var FullPartyBuffs = &proto.PartyBuffs{
	MoonkinAura:     proto.TristateEffect_TristateEffectRegular,
	TotemOfWrath:    1,
	WrathOfAirTotem: proto.TristateEffect_TristateEffectImproved,
	ManaSpringTotem: proto.TristateEffect_TristateEffectRegular,
}
View Source
var FullRaidBuffs = &proto.RaidBuffs{
	ArcaneBrilliance: true,
	GiftOfTheWild:    proto.TristateEffect_TristateEffectImproved,
}
View Source
var P1Gear = items.EquipmentSpecFromJsonString(`{"items": [
	{
		"id": 24266,
		"enchant": 29191,
		"gems": [
			28118,
			24030,
			24030
		]
	},
	{
		"id": 30666
	},
	{
		"id": 21869,
		"enchant": 28886,
		"gems": [
			24030,
			24030
		]
	},
	{
		"id": 28570,
		"enchant": 33150
	},
	{
		"id": 21871,
		"enchant": 24003,
		"gems": [
			24030,
			24030
		]
	},
	{
		"id": 24250,
		"enchant": 22534,
		"gems": [
			24030
		]
	},
	{
		"id": 28507,
		"enchant": 28272,
		"gems": [
			24030,
			24030
		]
	},
	{
		"id": 28799,
		"gems": [
			24030,
			24030
		]
	},
	{
		"id": 24262,
		"enchant": 24274,
		"gems": [
			24030,
			24030,
			24030
		]
	},
	{
		"id": 21870,
		"enchant": 35297,
		"gems": [
			24030,
			24030
		]
	},
	{
		"id": 29352,
		"enchant": 22536
	},
	{
		"id": 28793,
		"enchant": 22536
	},
	{
		"id": 28789
	},
	{
		"id": 29370
	},
	{
		"id": 28770,
		"enchant": 22561
	},
	{
		"id": 29272
	},
	{
		"id": 29350
	}
]}`)
View Source
var P3Gear = items.EquipmentSpecFromJsonString(`{"items": [
	{
		"id": 31064,
		"enchant": 29191,
		"gems": [
			25893,
			32215
		]
	},
	{
		"id": 30666
	},
	{
		"id": 31070,
		"enchant": 28886,
		"gems": [
			32196,
			32196
		]
	},
	{
		"id": 32590,
		"enchant": 33150
	},
	{
		"id": 31065,
		"enchant": 24003,
		"gems": [
			32196,
			32196,
			32196
		]
	},
	{
		"id": 32586,
		"enchant": 22534
	},
	{
		"id": 31061,
		"enchant": 28272,
		"gems": [
			32196
		]
	},
	{
		"id": 32256
	},
	{
		"id": 30916,
		"enchant": 24274,
		"gems": [
			32196,
			32196,
			32196
		]
	},
	{
		"id": 32239,
		"enchant": 35297,
		"gems": [
			32196,
			32196
		]
	},
	{
		"id": 32527,
		"enchant": 22536
	},
	{
		"id": 32527,
		"enchant": 22536
	},
	{
		"id": 32483
	},
	{
		"id": 29370
	},
	{
		"id": 32374,
		"enchant": 22561
	},
	{
		"id": 29982
	}
]}`)
View Source
var PlayerOptionsBasic = &proto.Player_ShadowPriest{
	ShadowPriest: &proto.ShadowPriest{
		Talents: StandardTalents,
		Options: &proto.ShadowPriest_Options{
			UseShadowfiend: true,
		},
		Rotation: &proto.ShadowPriest_Rotation{
			RotationType: proto.ShadowPriest_Rotation_Basic,
			Latency:      50,
		},
	},
}
View Source
var PlayerOptionsClipping = &proto.Player_ShadowPriest{
	ShadowPriest: &proto.ShadowPriest{
		Talents: StandardTalents,
		Options: &proto.ShadowPriest_Options{
			UseShadowfiend: true,
		},
		Rotation: &proto.ShadowPriest_Rotation{
			RotationType: proto.ShadowPriest_Rotation_Clipping,
			PrecastVt:    true,
			Latency:      50,
		},
	},
}
View Source
var PlayerOptionsIdeal = &proto.Player_ShadowPriest{
	ShadowPriest: &proto.ShadowPriest{
		Talents: StandardTalents,
		Options: &proto.ShadowPriest_Options{
			UseShadowfiend: true,
		},
		Rotation: &proto.ShadowPriest_Rotation{
			RotationType: proto.ShadowPriest_Rotation_Ideal,
			PrecastVt:    true,
			Latency:      50,
		},
	},
}
View Source
var StandardTalents = &proto.PriestTalents{
	InnerFocus:             true,
	Meditation:             3,
	ShadowAffinity:         3,
	ImprovedShadowWordPain: 2,
	ShadowFocus:            5,
	ImprovedMindBlast:      5,
	MindFlay:               true,
	ShadowWeaving:          5,
	VampiricEmbrace:        true,
	FocusedMind:            3,
	Darkness:               5,
	Shadowform:             true,
	ShadowPower:            4,
	Misery:                 5,
	VampiricTouch:          true,
}

Functions

func RegisterShadowPriest

func RegisterShadowPriest()

Types

type ShadowPriest

type ShadowPriest struct {
	*priest.Priest
	// contains filtered or unexported fields
}

func NewShadowPriest

func NewShadowPriest(character core.Character, options proto.Player) *ShadowPriest

func (*ShadowPriest) BasicMindflayRotation

func (spriest *ShadowPriest) BasicMindflayRotation(sim *core.Simulation, allCDs []time.Duration, gcd time.Duration, tickLength time.Duration) int

Returns the number of MF ticks to use, or 0 to wait for next CD.

func (*ShadowPriest) ClippingMindflayRotation

func (spriest *ShadowPriest) ClippingMindflayRotation(sim *core.Simulation, allCDs []time.Duration, gcd time.Duration, tickLength time.Duration) int

ClippingMindflayRotation is to be a 'sweaty but not perfect' rotation.

It will prioritize casting MB / SWD by clipping.
If there is 4s until the next CD it will use a 2xMF2 instead of 3+1.
Returns the number of MF ticks to use, or 0 to wait for next CD.

func (*ShadowPriest) GetPriest

func (spriest *ShadowPriest) GetPriest() *priest.Priest

func (*ShadowPriest) IdealMindflayRotation

func (spriest *ShadowPriest) IdealMindflayRotation(sim *core.Simulation, allCDs []time.Duration, gcd time.Duration, tickLength time.Duration) int

Returns the number of MF ticks to use, or 0 to wait for next CD.

func (*ShadowPriest) OnGCDReady

func (spriest *ShadowPriest) OnGCDReady(sim *core.Simulation)

func (*ShadowPriest) OnManaTick

func (spriest *ShadowPriest) OnManaTick(sim *core.Simulation)

func (*ShadowPriest) Reset

func (spriest *ShadowPriest) Reset(sim *core.Simulation)

Jump to

Keyboard shortcuts

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