rogue

package
v0.0.1 Latest Latest
Warning

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

Go to latest
Published: May 27, 2024 License: MIT Imports: 5 Imported by: 0

Documentation

Index

Constants

View Source
const (
	SpellFlagBuilder     = core.SpellFlagAgentReserved2
	SpellFlagFinisher    = core.SpellFlagAgentReserved3
	SpellFlagColdBlooded = core.SpellFlagAgentReserved4
)
View Source
const RogueBleedTag = "RogueBleed"
View Source
const RuptureEnergyCost = 25.0
View Source
const RuptureSpellID = 1943

Variables

View Source
var Arena = core.NewItemSet(core.ItemSet{
	Name: "Gladiator's Vestments",
	Bonuses: map[int32]core.ApplyEffect{
		2: func(agent core.Agent) {
			agent.GetCharacter().AddStat(stats.Resilience, 100)
			agent.GetCharacter().AddStat(stats.AttackPower, 50)
		},
		4: func(agent core.Agent) {
			agent.GetCharacter().AddStat(stats.AttackPower, 150)

		},
	},
})
View Source
var TalentTreeSizes = [3]int{19, 19, 19}
View Source
var Tier10 = core.NewItemSet(core.ItemSet{
	Name: "Shadowblade's Battlegear",
	Bonuses: map[int32]core.ApplyEffect{
		2: func(agent core.Agent) {

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

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

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

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

			t11Proc := rogue.RegisterAura(core.Aura{
				Label:    "Deadly Scheme Proc",
				ActionID: core.ActionID{SpellID: 90472},
				Duration: time.Second * 15,

				OnGain: func(aura *core.Aura, sim *core.Simulation) {
					rogue.Envenom.BonusCritRating += 100 * core.CritRatingPerCritChance
					rogue.Eviscerate.BonusCritRating += 100 * core.CritRatingPerCritChance
				},
				OnExpire: func(aura *core.Aura, sim *core.Simulation) {
					rogue.Envenom.BonusCritRating -= 100 * core.CritRatingPerCritChance
					rogue.Eviscerate.BonusCritRating -= 100 * core.CritRatingPerCritChance
				},
				OnSpellHitDealt: func(aura *core.Aura, sim *core.Simulation, spell *core.Spell, result *core.SpellResult) {
					if spell == rogue.Envenom || spell == rogue.Eviscerate {
						aura.Deactivate(sim)
					}
				},
			})

			core.MakeProcTriggerAura(&rogue.Unit, core.ProcTrigger{
				Name:       "Deadly Scheme Aura",
				Callback:   core.CallbackOnSpellHitDealt,
				ProcMask:   core.ProcMaskMeleeWhiteHit,
				Outcome:    core.OutcomeLanded,
				ProcChance: 0.01,
				Handler: func(sim *core.Simulation, spell *core.Spell, result *core.SpellResult) {
					t11Proc.Activate(sim)
				},
			})
		},
	},
})
View Source
var WoundPoisonActionID = core.ActionID{SpellID: 13219}

Functions

This section is empty.

Types

type PoisonProcSource

type PoisonProcSource int
const (
	NormalProc PoisonProcSource = iota
	DeadlyProc
	ShivProc
	VilePoisonsProc
)

type Rogue

type Rogue struct {
	core.Character

	ClassSpellScaling float64

	Talents              *proto.RogueTalents
	Options              *proto.RogueOptions
	AssassinationOptions *proto.AssassinationRogue_Options
	CombatOptions        *proto.CombatRogue_Options
	SubtletyOptions      *proto.SubtletyRogue_Options

	SliceAndDiceBonus        float64
	AdditiveEnergyRegenBonus float64

	Backstab         *core.Spell
	BladeFlurry      *core.Spell
	DeadlyPoison     *core.Spell
	FanOfKnives      *core.Spell
	Feint            *core.Spell
	Garrote          *core.Spell
	Ambush           *core.Spell
	Hemorrhage       *core.Spell
	GhostlyStrike    *core.Spell
	HungerForBlood   *core.Spell
	InstantPoison    [4]*core.Spell
	WoundPoison      [4]*core.Spell
	Mutilate         *core.Spell
	MutilateMH       *core.Spell
	MutilateOH       *core.Spell
	Shiv             *core.Spell
	SinisterStrike   *core.Spell
	TricksOfTheTrade *core.Spell
	Shadowstep       *core.Spell
	Preparation      *core.Spell
	Premeditation    *core.Spell
	ShadowDance      *core.Spell
	ColdBlood        *core.Spell
	Vanish           *core.Spell
	VenomousWounds   *core.Spell
	Vendetta         *core.Spell
	RevealingStrike  *core.Spell
	KillingSpree     *core.Spell
	AdrenalineRush   *core.Spell
	Gouge            *core.Spell

	Envenom      *core.Spell
	Eviscerate   *core.Spell
	ExposeArmor  *core.Spell
	Rupture      *core.Spell
	SliceAndDice *core.Spell
	Recuperate   *core.Spell

	AdrenalineRushAura   *core.Aura
	BladeFlurryAura      *core.Aura
	EnvenomAura          *core.Aura
	ExposeArmorAuras     core.AuraArray
	HungerForBloodAura   *core.Aura
	KillingSpreeAura     *core.Aura
	OverkillAura         *core.Aura
	SliceAndDiceAura     *core.Aura
	RecuperateAura       *core.Aura
	MasterOfSubtletyAura *core.Aura
	ShadowstepAura       *core.Aura
	ShadowDanceAura      *core.Aura
	DirtyDeedsAura       *core.Aura
	HonorAmongThieves    *core.Aura
	StealthAura          *core.Aura
	BanditsGuileAura     *core.Aura
	RestlessBladesAura   *core.Aura

	MasterPoisonerDebuffAuras core.AuraArray
	SavageCombatDebuffAuras   core.AuraArray
	WoundPoisonDebuffAuras    core.AuraArray
	// contains filtered or unexported fields
}

func NewRogue

func NewRogue(character *core.Character, options *proto.RogueOptions, talents string) *Rogue

func (*Rogue) AddPartyBuffs

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

func (*Rogue) AddRaidBuffs

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

func (*Rogue) ApplyAdditiveEnergyRegenBonus

func (rogue *Rogue) ApplyAdditiveEnergyRegenBonus(sim *core.Simulation, increment float64)

func (*Rogue) ApplyCutToTheChase

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

Apply the effects of the Cut to the Chase talent TODO: Put a fresh instance of SnD rather than use the original as per client TODO (TheBackstabi, 3/16/2024) - Assassination only talent, to be moved?

func (*Rogue) ApplyFinisher

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

Apply the effect of successfully casting a finisher to combo points

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

func (rogue *Rogue) DWSMultiplier() float64

DWSMultiplier returns the offhand damage multiplier

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

func (*Rogue) GetGeneratorCostModifier

func (rogue *Rogue) GetGeneratorCostModifier(cost float64) float64

func (*Rogue) GetRogue

func (rogue *Rogue) GetRogue() *Rogue

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

func (rogue *Rogue) HasMajorGlyph(glyph proto.RogueMajorGlyph) bool

func (*Rogue) HasMinorGlyph

func (rogue *Rogue) HasMinorGlyph(glyph proto.RogueMinorGlyph) bool

func (*Rogue) HasPrimeGlyph

func (rogue *Rogue) HasPrimeGlyph(glyph proto.RoguePrimeGlyph) bool

func (*Rogue) HasThrown

func (rogue *Rogue) HasThrown() bool

Does the rogue have a thrown weapon equipped in the ranged slot?

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

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

func (*Rogue) Reset

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

func (*Rogue) SpellCritMultiplier

func (rogue *Rogue) SpellCritMultiplier() float64

func (*Rogue) UpdateInstantPoisonPPM

func (rogue *Rogue) UpdateInstantPoisonPPM(bonusChance float64)

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