rogue

package
v0.0.39 Latest Latest
Warning

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

Go to latest
Published: Jan 4, 2025 License: MIT Imports: 8 Imported by: 0

Documentation

Index

Constants

View Source
const (
	BloodSpatteredStilletto          = 216522
	ShadowflameSword                 = 228143
	DreamEater                       = 224122
	VenomousTotem                    = 230250
	RenatakisCharmofTrickery         = 231287
	ZandalarianShadowMasteryTalisman = 231336
)
View Source
const (
	SpellFlagBuilder      = core.SpellFlagAgentReserved1
	SpellFlagColdBlooded  = core.SpellFlagAgentReserved2
	SpellFlagDeadlyBrewed = core.SpellFlagAgentReserved3
	SpellFlagCarnage      = core.SpellFlagAgentReserved4 // for Carnage
	SpellFlagRoguePoison  = core.SpellFlagAgentReserved5 // RogueT1
)
View Source
const (
	SpellCode_RogueNone int32 = iota

	SpellCode_RogueAmbush
	SpellCode_RogueAdrenalineRush
	SpellCode_RogueBackstab
	SpellCode_RogueBetweentheEyes
	SpellCode_RogueBladeDance
	SpellCode_RogueBladeFlurry
	SpellCode_RogueCrimsonTempest
	SpellCode_RogueDeadlyPoisonTick
	SpellCode_RogueEnvenom
	SpellCode_RogueEviscerate
	SpellCode_RogueExposeArmor
	SpellCode_RogueGarrote
	SpellCode_RogueGhostlyStrike
	SpellCode_RogueHemorrhage
	SpellCode_RogueInstantPoison
	SpellCode_RogueMainGauche
	SpellCode_RogueMutilate
	SpellCode_RogueOccultPoisonTick
	SpellCode_RoguePoisonedKnife
	SpellCode_RogueRupture
	SpellCode_RogueSaberSlash
	SpellCode_RogueShadowStrike
	SpellCode_RogueSinisterStrike
	SpellCode_RogueSliceandDice
)
View Source
const FanOfKnivesSpellID int32 = 409240
View Source
const RogueBleedTag = "RogueBleed"

Variables

View Source
var AdrenalineRushActionID = core.ActionID{SpellID: 13750}
View Source
var ItemSetBloodfangBattlearmor = core.NewItemSet(core.ItemSet{
	Name: "Bloodfang Battlearmor",
	Bonuses: map[int32]core.ApplyEffect{
		2: func(agent core.Agent) {
			rogue := agent.(RogueAgent).GetRogue()
			rogue.applyT2Tank2PBonus()
		},
		4: func(agent core.Agent) {
			rogue := agent.(RogueAgent).GetRogue()
			rogue.applyT2Tank4PBonus()
		},
		6: func(agent core.Agent) {
			rogue := agent.(RogueAgent).GetRogue()
			rogue.applyT2Tank6PBonus()
		},
	},
})
View Source
var ItemSetBloodfangThrill = core.NewItemSet(core.ItemSet{
	Name: "Bloodfang Thrill",
	Bonuses: map[int32]core.ApplyEffect{
		2: func(agent core.Agent) {
			rogue := agent.(RogueAgent).GetRogue()
			rogue.applyT2Damage2PBonus()
		},
		4: func(agent core.Agent) {
			rogue := agent.(RogueAgent).GetRogue()
			rogue.applyT2Damage4PBonus()
		},
		6: func(agent core.Agent) {
			rogue := agent.(RogueAgent).GetRogue()
			rogue.applyT2Damage6PBonus()
		},
	},
})
View Source
var ItemSetBonescytheArmor = core.NewItemSet(core.ItemSet{
	Name: "Bonescythe Armor",
	Bonuses: map[int32]core.ApplyEffect{
		2: func(agent core.Agent) {
			rogue := agent.(RogueAgent).GetRogue()
			rogue.applyNaxxramasDamage2PBonus()
		},
		4: func(agent core.Agent) {
			rogue := agent.(RogueAgent).GetRogue()
			rogue.applyNaxxramasDamage4PBonus()
		},
		6: func(agent core.Agent) {
			rogue := agent.(RogueAgent).GetRogue()
			rogue.applyNaxxramasDamage6PBonus()
		},
	},
})
View Source
var ItemSetBonescytheLeathers = core.NewItemSet(core.ItemSet{
	Name: "Bonescythe Leathers",
	Bonuses: map[int32]core.ApplyEffect{
		2: func(agent core.Agent) {
			rogue := agent.(RogueAgent).GetRogue()
			rogue.applyNaxxramasTank2PBonus()
		},
		4: func(agent core.Agent) {
			rogue := agent.(RogueAgent).GetRogue()
			rogue.applyNaxxramasTank4PBonus()
		},
		6: func(agent core.Agent) {
			rogue := agent.(RogueAgent).GetRogue()
			rogue.applyNaxxramasTank6PBonus()
		},
	},
})
View Source
var ItemSetChampionsVestments = core.NewItemSet(core.ItemSet{
	Name: "Champion's Vestments",
	Bonuses: map[int32]core.ApplyEffect{

		2: func(agent core.Agent) {
			c := agent.GetCharacter()
			c.AddStats(stats.Stats{
				stats.AttackPower:       40,
				stats.RangedAttackPower: 40,
			})
		},

		4: func(agent core.Agent) {

		},

		6: func(agent core.Agent) {
			c := agent.GetCharacter()
			c.AddStat(stats.Stamina, 20)
		},
	},
})
View Source
var ItemSetDarkmantleArmor = core.NewItemSet(core.ItemSet{
	Name: "Darkmantle Armor",
	Bonuses: map[int32]core.ApplyEffect{

		2: func(agent core.Agent) {
			c := agent.GetCharacter()
			c.AddStats(stats.Stats{
				stats.AttackPower:       40,
				stats.RangedAttackPower: 40,
			})
		},

		4: func(agent core.Agent) {
			c := agent.GetCharacter()
			actionID := core.ActionID{SpellID: 27787}
			energyMetrics := c.NewEnergyMetrics(actionID)

			core.MakeProcTriggerAura(&c.Unit, core.ProcTrigger{
				ActionID: actionID,
				Name:     "Rogue Armor Energize",
				Callback: core.CallbackOnSpellHitDealt,
				Outcome:  core.OutcomeLanded,
				ProcMask: core.ProcMaskMeleeWhiteHit,
				PPM:      1,
				Handler: func(sim *core.Simulation, spell *core.Spell, _ *core.SpellResult) {
					if c.HasEnergyBar() {
						c.AddEnergy(sim, 35, energyMetrics)
					}
				},
			})
		},

		6: func(agent core.Agent) {
			c := agent.GetCharacter()
			c.AddResistances(8)
		},

		8: func(agent core.Agent) {
			c := agent.GetCharacter()
			c.AddStat(stats.Armor, 200)
		},
	},
})
View Source
var ItemSetDeathdealersBattlearmor = core.NewItemSet(core.ItemSet{
	Name: "Deathdealer's Battlearmor",
	Bonuses: map[int32]core.ApplyEffect{
		2: func(agent core.Agent) {
			rogue := agent.(RogueAgent).GetRogue()
			rogue.applyTAQTank2PBonus()
		},
		4: func(agent core.Agent) {
			rogue := agent.(RogueAgent).GetRogue()
			rogue.applyTAQTank4PBonus()
		},
	},
})
View Source
var ItemSetDeathdealersThrill = core.NewItemSet(core.ItemSet{
	Name: "Deathdealer's Thrill",
	Bonuses: map[int32]core.ApplyEffect{
		2: func(agent core.Agent) {
			rogue := agent.(RogueAgent).GetRogue()
			rogue.applyTAQDamage2PBonus()
		},
		4: func(agent core.Agent) {
			rogue := agent.(RogueAgent).GetRogue()
			rogue.applyTAQDamage4PBonus()
		},
	},
})
View Source
var ItemSetEmblemsofVeiledShadows = core.NewItemSet(core.ItemSet{
	Name: "Emblems of Veiled Shadows",
	Bonuses: map[int32]core.ApplyEffect{
		3: func(agent core.Agent) {
			rogue := agent.(RogueAgent).GetRogue()
			rogue.applyRAQDamage3PBonus()
		},
	},
})
View Source
var ItemSetLieutenantCommandersVestments = core.NewItemSet(core.ItemSet{
	Name: "Lieutenant Commander's Vestments",
	Bonuses: map[int32]core.ApplyEffect{

		2: func(agent core.Agent) {
			c := agent.GetCharacter()
			c.AddStats(stats.Stats{
				stats.AttackPower:       40,
				stats.RangedAttackPower: 40,
			})
		},

		4: func(agent core.Agent) {

		},

		6: func(agent core.Agent) {
			c := agent.GetCharacter()
			c.AddStat(stats.Stamina, 20)
		},
	},
})
View Source
var ItemSetMadCapsOutfit = core.NewItemSet(core.ItemSet{
	Name: "Madcap's Outfit",
	Bonuses: map[int32]core.ApplyEffect{

		2: func(agent core.Agent) {
			c := agent.GetCharacter()
			c.AddStats(stats.Stats{
				stats.AttackPower:       20,
				stats.RangedAttackPower: 20,
			})
		},
		3: func(agent core.Agent) {
			rogue := agent.(RogueAgent).GetRogue()
			rogue.applyZGDagger3PBonus()
		},
		5: func(agent core.Agent) {
			rogue := agent.(RogueAgent).GetRogue()
			rogue.applyZGDagger5PBonus()
		},
	},
})
View Source
var ItemSetNightSlayerBattlearmor = core.NewItemSet(core.ItemSet{
	Name: "Nightslayer Battlearmor",
	Bonuses: map[int32]core.ApplyEffect{
		2: func(agent core.Agent) {
			rogue := agent.(RogueAgent).GetRogue()
			rogue.applyT1Tank2PBonus()
		},
		4: func(agent core.Agent) {
			rogue := agent.(RogueAgent).GetRogue()
			rogue.applyT1Tank4PBonus()
		},
		6: func(agent core.Agent) {
			rogue := agent.(RogueAgent).GetRogue()
			rogue.applyT1Tank6PBonus()
		},
	},
})
View Source
var ItemSetNightSlayerThrill = core.NewItemSet(core.ItemSet{
	Name: "Nightslayer Thrill",
	Bonuses: map[int32]core.ApplyEffect{

		2: func(agent core.Agent) {

		},
		4: func(agent core.Agent) {
			rogue := agent.(RogueAgent).GetRogue()
			rogue.applyT1Damage4PBonus()
		},
		6: func(agent core.Agent) {
			rogue := agent.(RogueAgent).GetRogue()
			rogue.applyT1Damage6PBonus()
		},
	},
})
View Source
var TalentTreeSizes = [3]int{15, 19, 17}

Functions

This section is empty.

Types

type PoisonProcSource

type PoisonProcSource int
const (
	NormalProc PoisonProcSource = iota
	ShivProc
	DeadlyBrewProc
)

type Rogue

type Rogue struct {
	core.Character

	Talents *proto.RogueTalents
	Options *proto.RogueOptions

	AdrenalineRush      *core.Spell
	Backstab            *core.Spell
	BladeFlurry         *core.Spell
	Feint               *core.Spell
	Garrote             *core.Spell
	Ambush              *core.Spell
	Hemorrhage          *core.Spell
	GhostlyStrike       *core.Spell
	HungerForBlood      *core.Spell
	Mutilate            *core.Spell
	MutilateMH          *core.Spell
	MutilateOH          *core.Spell
	Shiv                *core.Spell
	SinisterStrike      *core.Spell
	SaberSlash          *core.Spell
	MainGauche          *core.Spell
	Shadowstep          *core.Spell
	Preparation         *core.Spell
	Premeditation       *core.Spell
	ColdBlood           *core.Spell
	Vanish              *core.Spell
	Shadowstrike        *core.Spell
	QuickDraw           *core.Spell
	ShurikenToss        *core.Spell
	BetweenTheEyes      *core.Spell
	PoisonedKnife       *core.Spell
	Blunderbuss         *core.Spell
	FanOfKnives         *core.Spell
	CrimsonTempest      *core.Spell
	CrimsonTempestBleed *core.Spell

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

	Evasion    *core.Spell
	BladeDance *core.Spell

	DeadlyPoison [3]*core.Spell

	InstantPoison [3]*core.Spell
	WoundPoison   [2]*core.Spell
	OccultPoison  [3]*core.Spell

	SebaciousPoison [2]*core.Spell
	AtrophicPoison  [2]*core.Spell
	NumbingPoison   [2]*core.Spell

	AdrenalineRushAura            *core.Aura
	BladeDanceAura                *core.Aura
	BladeFlurryAura               *core.Aura
	CutthroatProcAura             *core.Aura
	EnvenomAura                   *core.Aura
	ExposeArmorAuras              core.AuraArray
	EvasionAura                   *core.Aura
	JustAFleshWoundAura           *core.Aura
	MasterOfSubtletyAura          *core.Aura
	RollingWithThePunchesAura     *core.Aura
	RollingWithThePunchesProcAura *core.Aura
	ShadowstepAura                *core.Aura
	ShadowDanceAura               *core.Aura
	SliceAndDiceAura              *core.Aura
	StealthAura                   *core.Aura
	WaylayAuras                   core.AuraArray

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

func NewRogue

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

func (*Rogue) AddPartyBuffs

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

func (*Rogue) AddRaidBuffs

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

func (*Rogue) ApplyCutToTheChase added in v0.0.3

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

Apply the effects of the Cut to the Chase talent

func (*Rogue) ApplyEnergyTickMultiplier

func (rogue *Rogue) ApplyEnergyTickMultiplier(multiplier float64)

func (*Rogue) ApplyRunes

func (rogue *Rogue) ApplyRunes()

func (*Rogue) ApplyTalents

func (rogue *Rogue) ApplyTalents()

func (*Rogue) BreakStealth

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

Deactivate Stealth if it is active. This must be added to all abilities that cause Stealth to fade.

func (*Rogue) CrimsonTempestDamage added in v0.0.16

func (rogue *Rogue) CrimsonTempestDamage(comboPoints int32) float64

func (*Rogue) EnvenomDuration

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

func (*Rogue) GetCharacter

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

func (*Rogue) GetDeadlyPoisonProcChance

func (rogue *Rogue) GetDeadlyPoisonProcChance() float64

Used for all 30% proc poisons (Sebacious and others)

func (*Rogue) GetInstantPoisonProcChance

func (rogue *Rogue) GetInstantPoisonProcChance() float64

func (*Rogue) GetRogue

func (rogue *Rogue) GetRogue() *Rogue

func (*Rogue) GetWoundPoisonProcChance

func (rogue *Rogue) GetWoundPoisonProcChance() float64

func (*Rogue) HasDagger

func (rogue *Rogue) HasDagger(hand core.Hand) bool

Does the rogue have a dagger equipped in the specified hand (main or offhand)?

func (*Rogue) HasRune

func (rogue *Rogue) HasRune(rune proto.RogueRune) bool

func (*Rogue) Initialize

func (rogue *Rogue) Initialize()

func (*Rogue) IsStealthed

func (rogue *Rogue) IsStealthed() bool

Check if the rogue is considered in "stealth" for the purpose of casting abilities

func (*Rogue) RegisterEvasionSpell added in v0.0.14

func (rogue *Rogue) RegisterEvasionSpell()

func (*Rogue) Reset

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

func (*Rogue) RuptureDamage

func (rogue *Rogue) RuptureDamage(comboPoints int32) float64

func (*Rogue) RuptureDuration

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

func (*Rogue) RuptureTicks

func (rogue *Rogue) RuptureTicks(comboPoints int32) int32

type RogueAgent

type RogueAgent interface {
	GetRogue() *Rogue
}

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

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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