Documentation
¶
Index ¶
- Constants
- Variables
- type PoisonProcSource
- type Rogue
- func (rogue *Rogue) AddPartyBuffs(_ *proto.PartyBuffs)
- func (rogue *Rogue) AddRaidBuffs(_ *proto.RaidBuffs)
- func (rogue *Rogue) ApplyCutToTheChase(sim *core.Simulation)
- func (rogue *Rogue) ApplyEnergyTickMultiplier(multiplier float64)
- func (rogue *Rogue) ApplyFallenRegalityRogueBonus(aura *core.Aura)
- func (rogue *Rogue) ApplyQueensfallRogueEffect(aura *core.Aura)
- func (rogue *Rogue) ApplyRegicideRogueEffect(itemID int32, aura *core.Aura)
- func (rogue *Rogue) ApplyRunes()
- func (rogue *Rogue) ApplyTalents()
- func (rogue *Rogue) BreakStealth(sim *core.Simulation)
- func (rogue *Rogue) CrimsonTempestDamage(comboPoints int32) float64
- func (rogue *Rogue) EnvenomDuration(comboPoints int32) time.Duration
- func (rogue *Rogue) GetCharacter() *core.Character
- func (rogue *Rogue) GetDeadlyPoisonProcChance() float64
- func (rogue *Rogue) GetInstantPoisonProcChance() float64
- func (rogue *Rogue) GetRogue() *Rogue
- func (rogue *Rogue) GetWoundPoisonProcChance() float64
- func (rogue *Rogue) HasDagger(hand core.Hand) bool
- func (rogue *Rogue) HasRune(rune proto.RogueRune) bool
- func (rogue *Rogue) Initialize()
- func (rogue *Rogue) IsStealthed() bool
- func (rogue *Rogue) RegisterEvasionSpell()
- func (rogue *Rogue) Reset(_ *core.Simulation)
- func (rogue *Rogue) RuptureDamage(comboPoints int32) float64
- func (rogue *Rogue) RuptureDuration(comboPoints int32) time.Duration
- func (rogue *Rogue) RuptureTicks(comboPoints int32) int32
- type RogueAgent
Constants ¶
const ( BloodSpatteredStilletto = 216522 ShadowflameSword = 228143 DreamEater = 224122 VenomousTotem = 230250 RenatakisCharmofTrickery = 231287 ZandalarianShadowMasteryTalisman = 231336 )
const ( SpellFlagBuilder = core.SpellFlagAgentReserved1 SpellFlagColdBlooded = core.SpellFlagAgentReserved2 SpellFlagDeadlyBrewed = core.SpellFlagAgentReserved3 SpellFlagCarnage = core.SpellFlagAgentReserved4 // for Carnage SpellFlagRoguePoison = core.SpellFlagAgentReserved5 // RogueT1 )
const ( ClassSpellMask_RogueNone uint64 = 0 ClassSpellMask_RogueAmbush uint64 = 1 << iota ClassSpellMask_RogueAdrenalineRush ClassSpellMask_RogueBackstab ClassSpellMask_RogueBetweentheEyes ClassSpellMask_RogueBladeDance ClassSpellMask_RogueBladeFlurry SpellClassMask_RogueBlunderbuss ClassSpellMask_RogueCrimsonTempest ClassSpellMask_RogueCrimsonTempestHit ClassSpellMask_RogueDeadlyPoisonTick ClassSpellMask_RogueEnvenom SpellClassMask_RogueEvasion ClassSpellMask_RogueEviscerate ClassSpellMask_RogueExposeArmor SpellClassMask_RogueFanOfKnives ClassSpellMask_RogueGarrote ClassSpellMask_RogueGhostlyStrike ClassSpellMask_RogueHemorrhage ClassSpellMask_RogueInstantPoison ClassSpellMask_RogueMainGauche ClassSpellMask_RogueMutilate ClassSpellMask_RogueMutilateHit ClassSpellMask_RogueOccultPoisonTick ClassSpellMask_RoguePoisonedKnife ClassSpellMask_RogueQuickdraw ClassSpellMask_RogueRupture ClassSpellMask_RogueSaberSlash ClassSpellMask_RogueShadowStrike ClassSpellMask_RogueShiv ClassSpellMask_RogueSinisterStrike ClassSpellMask_RogueSliceAndDice // Sinister Strike and spells that benefit from effects that benefit it ClassSpellMask_RogueSinisterStrikeDependent = ClassSpellMask_RogueSinisterStrike | ClassSpellMask_RogueSaberSlash | ClassSpellMask_RogueQuickdraw | ClassSpellMask_RoguePoisonedKnife | ClassSpellMask_RogueShiv | ClassSpellMask_RogueMainGauche // Backstab and spells that benefit from effects that benefit it ClassSpellMask_RogueBackstabDependent = ClassSpellMask_RogueBackstab | ClassSpellMask_RogueMutilate | ClassSpellMask_RogueMutilateHit // Rupture and spells that benefit from effects that benefit it ClassSpellMask_RogueRuptureDependent = ClassSpellMask_RogueRupture | ClassSpellMask_RogueCrimsonTempest | ClassSpellMask_RogueCrimsonTempestHit ClassSpellMask_RoguePoisonDependent = ClassSpellMask_RogueInstantPoison | ClassSpellMask_RogueDeadlyPoisonTick | ClassSpellMask_RogueOccultPoisonTick | ClassSpellMask_RogueEnvenom )
const FanOfKnivesSpellID int32 = 409240
const RogueBleedTag = "RogueBleed"
Variables ¶
var AdrenalineRushActionID = core.ActionID{SpellID: 13750}
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() }, }, })
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() }, }, })
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() }, }, })
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() }, }, })
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) }, }, })
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) }, }, })
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() }, }, })
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() }, }, })
var ItemSetDuskwraithArmor = core.NewItemSet(core.ItemSet{ Name: "Duskwraith Armor", Bonuses: map[int32]core.ApplyEffect{ 2: func(agent core.Agent) { rogue := agent.(RogueAgent).GetRogue() rogue.applyScarletEnclaveDamage2PBonus() }, 4: func(agent core.Agent) { rogue := agent.(RogueAgent).GetRogue() rogue.applyScarletEnclaveDamage4PBonus() }, 6: func(agent core.Agent) { rogue := agent.(RogueAgent).GetRogue() rogue.applyScarletEnclaveDamage6PBonus() }, }, })
var ItemSetDuskwraithLeathers = core.NewItemSet(core.ItemSet{ Name: "Duskwraith Leathers", Bonuses: map[int32]core.ApplyEffect{ 2: func(agent core.Agent) { rogue := agent.(RogueAgent).GetRogue() rogue.applyScarletEnclaveTank2PBonus() }, 4: func(agent core.Agent) { rogue := agent.(RogueAgent).GetRogue() rogue.applyScarletEnclaveTank4PBonus() }, 6: func(agent core.Agent) { rogue := agent.(RogueAgent).GetRogue() rogue.applyScarletEnclaveTank6PBonus() }, }, })
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() }, }, })
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) }, }, })
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() }, }, })
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() }, }, })
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() }, }, })
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
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
// p8 DPS tier bonus tracking
BleedsActive map[int32]int32
PoisonsActive map[int32]int32
// contains filtered or unexported fields
}
func (*Rogue) AddPartyBuffs ¶
func (rogue *Rogue) AddPartyBuffs(_ *proto.PartyBuffs)
func (*Rogue) AddRaidBuffs ¶
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) ApplyFallenRegalityRogueBonus ¶ added in v0.0.52
Damaging finishing moves have a 20% chance per combo point to restore 20 energy.
func (*Rogue) ApplyQueensfallRogueEffect ¶ added in v0.0.52
Your Backstab, Mutilate, and Saber Slash critical strikes set the duration of your Rupture and Crimson Tempest on the target to 16 secs
func (*Rogue) ApplyRegicideRogueEffect ¶ added in v0.0.53
Striking a higher level enemy applies a stack of Coup, increasing their damage taken from your next Envenom by 5% per stack, stacking up to 20 times.
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) EnvenomDuration ¶
func (*Rogue) GetCharacter ¶
func (*Rogue) GetDeadlyPoisonProcChance ¶
Used for all 30% proc poisons (Sebacious and others)
func (*Rogue) GetInstantPoisonProcChance ¶
func (*Rogue) GetWoundPoisonProcChance ¶
func (*Rogue) HasDagger ¶
Does the rogue have a dagger equipped in the specified hand (main or offhand)?
func (*Rogue) Initialize ¶
func (rogue *Rogue) Initialize()
func (*Rogue) IsStealthed ¶
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) RuptureDuration ¶
func (*Rogue) RuptureTicks ¶
type RogueAgent ¶
type RogueAgent interface {
GetRogue() *Rogue
}
Agent is a generic way to access underlying rogue on any of the agents.
Source Files
¶
- ambush.go
- backstab.go
- between_the_eyes.go
- blunderbuss.go
- carnage.go
- crimson_tempest.go
- envenom.go
- evasion.go
- eviscerate.go
- expose_armor.go
- fan_of_knives.go
- feint.go
- garrote.go
- ghostly_strike.go
- hemorrhage.go
- item_sets_phase_4.go
- item_sets_phase_5.go
- item_sets_phase_6.go
- item_sets_phase_7.go
- item_sets_phase_8.go
- items.go
- items_sets_pve.go
- items_sets_pvp.go
- main_gauche.go
- master_of_subtlety.go
- mutilate.go
- poisoned_knife.go
- poisons.go
- premeditation.go
- preparation.go
- quick_draw.go
- riposte.go
- rogue.go
- runes.go
- rupture.go
- saber_slash.go
- shadowstep.go
- shadowstrike.go
- shuriken_toss.go
- sinister_strike.go
- slice_and_dice.go
- stealth.go
- sword_specialization.go
- talents.go
- thistle_tea.go
- unfair_advantage.go
- vanish.go
- waylay.go