rogue

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

View Source
const (
	SpellFlagBuilder      = core.SpellFlagAgentReserved1
	SpellFlagFinisher     = core.SpellFlagAgentReserved2
	SpellFlagRogueAbility = SpellFlagBuilder | SpellFlagFinisher
)
View Source
const (
	PlanNone = iota
	PlanOpener
	PlanExposeArmor
	PlanSliceASAP
	PlanFillBeforeEA
	PlanFillBeforeSND
	PlanMaximalSlice
)
View Source
const RuptureEnergyCost = 25.0
View Source
const SliceAndDiceEnergyCost = 25.0

Variables

View Source
var CombatTalents = &proto.RogueTalents{
	Malice:              5,
	Ruthlessness:        3,
	Murder:              2,
	RelentlessStrikes:   true,
	ImprovedExposeArmor: 2,
	Lethality:           5,
	VilePoisons:         2,

	ImprovedSinisterStrike:  2,
	ImprovedSliceAndDice:    3,
	Precision:               5,
	DualWieldSpecialization: 5,
	BladeFlurry:             true,
	SwordSpecialization:     5,
	WeaponExpertise:         2,
	Aggression:              3,
	Vitality:                2,
	AdrenalineRush:          true,
	CombatPotency:           5,
	SurpriseAttacks:         true,
}
View Source
var FullDebuffs = &proto.Debuffs{
	BloodFrenzy:               true,
	Mangle:                    true,
	SunderArmor:               true,
	FaerieFire:                proto.TristateEffect_TristateEffectImproved,
	ImprovedSealOfTheCrusader: true,
	Misery:                    true,
}
View Source
var FullIndividualBuffs = &proto.IndividualBuffs{
	BlessingOfKings: true,
	BlessingOfMight: proto.TristateEffect_TristateEffectImproved,
}
View Source
var FullPartyBuffs = &proto.PartyBuffs{
	Bloodlust: 1,
	Drums:     proto.Drums_DrumsOfBattle,

	BattleShout:       proto.TristateEffect_TristateEffectImproved,
	LeaderOfThePack:   proto.TristateEffect_TristateEffectImproved,
	GraceOfAirTotem:   proto.TristateEffect_TristateEffectRegular,
	WindfuryTotemRank: 5,
}
View Source
var FullRaidBuffs = &proto.RaidBuffs{
	GiftOfTheWild: proto.TristateEffect_TristateEffectImproved,
}
View Source
var HemoTalents = &proto.RogueTalents{
	ImprovedSinisterStrike:  2,
	ImprovedSliceAndDice:    3,
	Precision:               5,
	DualWieldSpecialization: 5,
	BladeFlurry:             true,
	SwordSpecialization:     5,
	WeaponExpertise:         2,
	Aggression:              3,
	Vitality:                2,
	AdrenalineRush:          true,
	CombatPotency:           5,

	SerratedBlades: 3,
	Hemorrhage:     true,
}
View Source
var ItemSetAssassination = core.NewItemSet(core.ItemSet{
	Name: "Assassination Armor",
	Bonuses: map[int32]core.ApplyEffect{
		2: func(agent core.Agent) {
		},
		4: func(agent core.Agent) {

		},
	},
})
View Source
var ItemSetDeathmantle = core.NewItemSet(core.ItemSet{
	Name: "Deathmantle",
	Bonuses: map[int32]core.ApplyEffect{
		2: func(agent core.Agent) {

		},
		4: func(agent core.Agent) {

			rogue := agent.(RogueAgent).GetRogue()

			rogue.DeathmantleProcAura = rogue.RegisterAura(core.Aura{
				Label:    "Deathmantle 4pc Proc",
				ActionID: core.ActionID{SpellID: 37171},
				Duration: time.Second * 15,
			})

			ppmm := rogue.AutoAttacks.NewPPMManager(1.0, core.ProcMaskMelee)

			rogue.RegisterAura(core.Aura{
				Label:    "Deathmantle 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.Landed() {
						return
					}

					if !spellEffect.ProcMask.Matches(core.ProcMaskMelee) {
						return
					}

					if !ppmm.Proc(sim, spellEffect.ProcMask, "Deathmantle 4pc") {
						return
					}

					rogue.DeathmantleProcAura.Activate(sim)
				},
			})
		},
	},
})
View Source
var ItemSetNetherblade = core.NewItemSet(core.ItemSet{
	Name: "Netherblade",
	Bonuses: map[int32]core.ApplyEffect{
		2: func(agent core.Agent) {

		},
		4: func(agent core.Agent) {

		},
	},
})
View Source
var ItemSetSlayers = core.NewItemSet(core.ItemSet{
	Name: "Slayer's Armor",
	Bonuses: map[int32]core.ApplyEffect{
		2: func(agent core.Agent) {

		},
		4: func(agent core.Agent) {

		},
	},
})
View Source
var MHOutcome = core.OutcomeHit
View Source
var MutilateP1Gear = items.EquipmentSpecFromJsonString(`{"items": [
	{
		"id": 29044,
		"enchant": 29192,
		"gems": [
			32409,
			24061
		]
	},
	{
		"id": 29381
	},
	{
		"id": 27797,
		"enchant": 28888,
		"gems": [
			24061,
			24055
		]
	},
	{
		"id": 28672,
		"enchant": 34004
	},
	{
		"id": 29045,
		"enchant": 24003,
		"gems": [
			24061,
			24051,
			24055
		]
	},
	{
		"id": 29246,
		"enchant": 34002
	},
	{
		"id": 27531,
		"enchant": 19445,
		"gems": [
			24061,
			24061
		]
	},
	{
		"id": 29247
	},
	{
		"id": 28741,
		"enchant": 29535,
		"gems": [
			24051,
			24051,
			24051
		]
	},
	{
		"id": 28545,
		"enchant": 28279,
		"gems": [
			24061,
			24051
		]
	},
	{
		"id": 28757
	},
	{
		"id": 28649
	},
	{
		"id": 29383
	},
	{
		"id": 28830
	},
	{
		"id": 28768,
		"enchant": 22559
	},
	{
		"id": 29182,
		"enchant": 22559
	},
	{
		"id": 28772
	}
]}`)
View Source
var MutilateTalents = &proto.RogueTalents{
	Malice:              5,
	Ruthlessness:        3,
	Murder:              2,
	PuncturingWounds:    3,
	RelentlessStrikes:   true,
	ImprovedExposeArmor: 2,
	Lethality:           5,
	ImprovedPoisons:     5,
	ColdBlood:           true,
	QuickRecovery:       2,
	SealFate:            5,
	Vigor:               true,
	FindWeakness:        5,
	Mutilate:            true,

	ImprovedSinisterStrike:  2,
	ImprovedSliceAndDice:    3,
	Precision:               5,
	DualWieldSpecialization: 5,
}
View Source
var OHOutcome = core.OutcomeHit
View Source
var P1Gear = items.EquipmentSpecFromJsonString(`{"items": [
	{
		"id": 29044,
		"enchant": 29192,
		"gems": [
			32409,
			24061
		]
	},
	{
		"id": 29381
	},
	{
		"id": 27797,
		"enchant": 28888,
		"gems": [
			24061,
			24055
		]
	},
	{
		"id": 28672,
		"enchant": 34004
	},
	{
		"id": 29045,
		"enchant": 24003,
		"gems": [
			24061,
			24051,
			24055
		]
	},
	{
		"id": 29246,
		"enchant": 34002
	},
	{
		"id": 27531,
		"enchant": 19445,
		"gems": [
			24061,
			24061
		]
	},
	{
		"id": 29247
	},
	{
		"id": 28741,
		"enchant": 29535,
		"gems": [
			24051,
			24051,
			24051
		]
	},
	{
		"id": 28545,
		"enchant": 28279,
		"gems": [
			24061,
			24051
		]
	},
	{
		"id": 28757
	},
	{
		"id": 28649
	},
	{
		"id": 29383
	},
	{
		"id": 28830
	},
	{
		"id": 28729,
		"enchant": 22559
	},
	{
		"id": 28189,
		"enchant": 22559
	},
	{
		"id": 28772
	}
]}`)
View Source
var PlayerOptionsBasic = &proto.Player_Rogue{
	Rogue: &proto.Rogue{
		Talents:  CombatTalents,
		Options:  basicOptions,
		Rotation: basicRotation,
	},
}
View Source
var PlayerOptionsHemo = &proto.Player_Rogue{
	Rogue: &proto.Rogue{
		Talents:  HemoTalents,
		Options:  basicOptions,
		Rotation: basicRotation,
	},
}
View Source
var PlayerOptionsMutilate = &proto.Player_Rogue{
	Rogue: &proto.Rogue{
		Talents:  MutilateTalents,
		Options:  basicOptions,
		Rotation: basicRotation,
	},
}
View Source
var SliceAndDiceActionID = core.ActionID{SpellID: 6774}

Functions

func RegisterRogue

func RegisterRogue()

Types

type Rogue

type Rogue struct {
	core.Character

	Talents  proto.RogueTalents
	Options  proto.Rogue_Options
	Rotation proto.Rogue_Rotation

	// Assigned based on rotation, can be SS, Backstab, Hemo, etc
	Builder *core.Spell

	Backstab       *core.Spell
	DeadlyPoison   *core.Spell
	Hemorrhage     *core.Spell
	InstantPoison  *core.Spell
	Mutilate       *core.Spell
	Shiv           *core.Spell
	SinisterStrike *core.Spell

	Envenom      [6]*core.Spell
	Eviscerate   [6]*core.Spell
	ExposeArmor  *core.Spell
	Rupture      [6]*core.Spell
	SliceAndDice [6]*core.Spell

	DeadlyPoisonDot *core.Dot
	RuptureDot      *core.Dot

	AdrenalineRushAura  *core.Aura
	BladeFlurryAura     *core.Aura
	DeathmantleProcAura *core.Aura
	ExposeArmorAura     *core.Aura
	SliceAndDiceAura    *core.Aura

	QuickRecoveryMetrics *core.ResourceMetrics
	// contains filtered or unexported fields
}

func NewRogue

func NewRogue(character core.Character, options proto.Player) *Rogue

func (*Rogue) AddPartyBuffs

func (rogue *Rogue) AddPartyBuffs(partyBuffs *proto.PartyBuffs)

func (*Rogue) AddRaidBuffs

func (rogue *Rogue) AddRaidBuffs(raidBuffs *proto.RaidBuffs)

func (*Rogue) ApplyFinisher

func (rogue *Rogue) ApplyFinisher(sim *core.Simulation, spell *core.Spell)

func (*Rogue) ApplyTalents

func (rogue *Rogue) ApplyTalents()

func (*Rogue) GetCharacter

func (rogue *Rogue) GetCharacter() *core.Character

func (*Rogue) GetRogue

func (rogue *Rogue) GetRogue() *Rogue

func (*Rogue) Initialize

func (rogue *Rogue) Initialize()

func (*Rogue) MaintainingExpose

func (rogue *Rogue) MaintainingExpose(target *core.Unit) bool

func (*Rogue) MeleeCritMultiplier

func (rogue *Rogue) MeleeCritMultiplier(isMH bool, applyLethality bool) float64

func (*Rogue) OnGCDReady

func (rogue *Rogue) OnGCDReady(sim *core.Simulation)

func (*Rogue) Reset

func (rogue *Rogue) Reset(sim *core.Simulation)

func (*Rogue) RuptureDuration

func (rogue *Rogue) RuptureDuration(comboPoints int32) time.Duration

func (*Rogue) SinisterStrikeEnergyCost

func (rogue *Rogue) SinisterStrikeEnergyCost() float64

func (*Rogue) SpellCritMultiplier

func (rogue *Rogue) SpellCritMultiplier() float64

type RogueAgent

type RogueAgent interface {
	GetRogue() *Rogue
}

Agent is a generic way to access underlying rogue on any of the agents.

Jump to

Keyboard shortcuts

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